تخطَّ إلى المحتوى

نظرة عامة للمطورين

تم تصميم PrimoCRM ليكون قابلاً للتوسعة. توثق هذه النمطية الخطافات العامة، واجهة برمجة تطبيقات REST، والسجلات التي تستخدمها لإضافة وظائف جديدة دون تعديل الملفات الأساسية.

لمحة سريعة عن البنية الهندسية

Section titled “لمحة سريعة عن البنية الهندسية”
  • واجهة المشرف (Admin UI): تطبيق صفحة واحدة (SPA) مبني بـ React يتواصل مع متحكمات REST البرمجية بلغة PHP. توجد صفحة إدارة واحدة مع توجيه من جانب العميل.
  • متحكمات REST: يسجل كل وحدة نمطية مساراتها ضمن مساحة الاسم primocrm/v1 عند خطاف rest_api_init. انظر واجهة برمجة تطبيقات REST.
  • محرك المهام في الخلفية: جميع العمليات التي تستغرق وقتاً طويلاً (إرسال الحملات، تتابع الرسائل، خطوات التشغيل الآلي، عمليات الاستيراد) يتم تنفيذها عبر عمال cron الذين يعيدون جدولة أنفسهم ويملكون ميزانية زمنية محددة، ولا يتم تنفيذها أبداً ضمن طلب الصفحة. عندما تضيف أي شيء يتصل بواجهة برمجة تطبيقات خارجية أو يعالج عدداً كبيراً من السطور، اتبع نفس نمط صف الانتظار بدلاً من استخدام استدعاء يحظر المعالجة.
  • السجلات ومرشحات البيانات (Filters): مشغلات الأحداث، والإجراءات، وحقول النماذج، ومصادر الترحيل، ومرسلو البريد الإلكتروني، يتم جمعها جميعاً من خلال مرشحات ووردبريس، لذا تقوم الإضافات بتسجيل نفسها فيها دون أي تعديلات على الملفات الأساسية. انظر توسعة PrimoCRM.

النسخة المجانية والنسخة الاحترافية (Pro)

Section titled “النسخة المجانية والنسخة الاحترافية (Pro)”

يتم توفير PrimoCRM في شكل إضافتين. الإبن الأساسي المجاني يمثل نظام إدارة علاقات العملاء (CRM) كاملاً ويعمل بشكل مستقل. أما الإضافة الاحترافية (Pro) فتعرف ثابتاً برمجياً يقوم بفتح القدرات المتقدمة وتسجيل مشغلات وإجراءات ومراسلي بريد إضافيين من خلال نفس المرشحات العامة التي ستستخدمها شيفرتك الخاصة.

لأن النسخة الاحترافية تستخدم نقاط التوسعة العامة، فإن الأنماط الواردة في هذا القسم تمثل بالضبط الطريقة التي تُبنى بها ميزات النسخة الاحترافية الأساسية. إذا كان بإمكان النسخة الاحترافية إضافة مشغّل أحداث لـ WooCommerce من خلال primocrm_automation_triggers، فيمكنك فعل ذلك أيضاً.

نموذج البيانات باختصار

Section titled “نموذج البيانات باختصار”
  • جهات الاتصال: تحمل حقولاً قياسية بالإضافة إلى حقول مخصصة مخزنة كبيانات وصفية (meta) لجهة الاتصال، وحالة تتحكم في إمكانية إرسال البريد إليها.
  • القوائم والوسوم: تقوم بتجميع جهات الاتصال من خلال جداول ربط (pivot tables).
  • الحملات، التتابعات، والعمليات الآلية: يمتلك كل منها جداول خاصة به ويتم تشغيلها بواسطة محرك الخلفية.

قيم الحقول المخصصة قابلة للقراءة في رسائل البريد الإلكتروني بالشكل {{contact.meta.KEY}} وقابلة للكتابة بواسطة العمليات الآلية، وهو نقاط الوصل التي تستخدمها ميزة الذكاء الاصطناعي في النسخة الاحترافية. انظر التخصيص والأكواد الذكية.

  • تسمية المساحات (Namespacing): قم بوضع بادئة لخطافاتك، خياراتك، ومفاتيحك حتى لا تتداخل مع غيرها. يستخدم PrimoCRM البادئة primocrm_ لخطافات PHP و primocrm/v1 لطلبات REST.
  • الصلاحيات (Capabilities): تقوم نقاط نهاية REST بالتحقق من الصلاحيات في دالة رد الاتصال الخاصة بالأمان. احترم نفس النموذج في أي شيء تضيفه.
  • لا شيء مقفل: لا يحتوي PrimoCRM على قائمة سماح للنسخ المجانية أو المدفوعة. ما يتم تسجيله، يتم تنفيذه. إذا كان المشغّل أو الإجراء الخاص بك يتطلب إضافة غير مثبتة، فقم بتسجيلها على أي حال مع نص requires_plugin، وسيقوم PrimoCRM بعرضها كغير متوفرة بدلاً من إخفائها.