# الهيكلية

توضح هذه الصفحة الهيكلية الفنية لـ WCPOS للمطورين والمستخدمين المتقدمين.

## نظام ذو جزءين[​](#two-part-system "رابط مباشر إلى نظام ذو جزءين")

تم تصميم WCPOS كنظام ذو جزءين:

1. **إضافة PHP:** مستضافة على خادمك، وهي إضافة صغيرة نسبيًا توسع [واجهة برمجة التطبيقات REST الخاصة بـ WooCommerce](/ar/reference/wc-rest-api.md).

2. **عميل JavaScript:** يعمل محليًا في متصفحك أو تطبيق سطح المكتب، وقريبًا على تطبيقات iOS و Android.

يمكنك التفكير فيه كعالمين منفصلين:

* *عالم PHP* حيث تحدث إدارة البيانات باستخدام WordPress و WooCommerce.
* *عالم JavaScript* يكرر متجرك على WooCommerce محليًا، محسنًا للبحث السريع والاستخدام في وضع عدم الاتصال.

SVG not found

## مزامنة البيانات[​](#data-synchronization "رابط مباشر إلى مزامنة البيانات")

يتم جلب البيانات من WooCommerce باستخدام [واجهة برمجة التطبيقات REST الخاصة بـ WooCommerce](https://woocommerce.github.io/woocommerce-rest-api-docs/). وهذا يعني أن نظام نقاط البيع يجب أن يقوم بتنزيل كل منتج، بديل، فئة منتجات، عميل، معدل ضريبة، وأكثر لتخزينها محليًا.

على الرغم من أن هذا قد يستغرق وقتًا طويلاً في البداية، إلا أنه بمجرد التنزيل، تكون متاحة على الفور دون الحاجة إلى الاستمرار في الجلب من الخادم.

### ما الذي يتم مزامنته؟[​](#what-gets-synced "رابط مباشر إلى ما الذي يتم مزامنته؟")

* المنتجات والبدائل
* فئات المنتجات والعلامات
* العملاء
* معدلات الضريبة وفئات الضريبة
* بوابات الدفع (للخروج)
* الطلبات (لتاريخ الطلبات في Pro)

### استراتيجية المزامنة[​](#sync-strategy "رابط مباشر إلى استراتيجية المزامنة")

يستخدم WCPOS استراتيجية مزامنة تزايدية:

1. **المزامنة الأولية:** تنزيل جميع البيانات عند التحميل الأول
2. **التحديثات التزايدية:** فقط جلب التغييرات منذ آخر مزامنة
3. **المزامنة في الخلفية:** التحقق دوريًا من التحديثات
4. **المزامنة اليدوية:** يمكن للمستخدم بدء مزامنة في أي وقت

## مزايا وعيوب الهيكلية[​](#architecture-pros-and-cons "رابط مباشر إلى مزايا وعيوب الهيكلية")

| جيد 😊                                                        | سيء 😟                                                  |
| ------------------------------------------------------------- | ------------------------------------------------------- |
| البحث في البيانات المحلية فوري                                | الحفاظ على البيانات في حالة تزامن يمثل تحديًا           |
| البيانات المخبأة متاحة في وضع عدم الاتصال                     | مقيدة بواجهة برمجة التطبيقات REST الخاصة بـ WooCommerce |
| القدرة على إنشاء تطبيقات أصلية أفضل لسطح المكتب وiOS وAndroid | لا يمكن تخصيص التطبيق بواسطة سمات WordPress والخطافات   |

## قاعدة بيانات محلية[​](#local-database "رابط مباشر إلى قاعدة بيانات محلية")

يخزن عميل JavaScript البيانات في IndexedDB، وهي قاعدة بيانات تعتمد على المتصفح. وهذا يوفر:

* **الاستمرارية:** البيانات تبقى صامدة بعد إعادة تشغيل المتصفح
* **الأداء:** استعلامات سريعة دون تأخير الشبكة
* **التصفح في وضع عدم الاتصال:** تبقى البيانات المخزنة متاحة دون الحاجة إلى الإنترنت

## هيكلية الخروج[​](#checkout-architecture "رابط مباشر إلى هيكلية الخروج")

تستخدم عملية الخروج iframe/webview الذي يقوم بتحميل صفحة دفع الطلب الخاصة بـ WooCommerce. هذه الطريقة:

* **تستفيد من بوابات الدفع الموجودة:** يمكن لأي بوابة دفع خاصة بـ WooCommerce العمل في نظام نقاط البيع
* **تحافظ على الأمان:** تتم معالجة الدفع من خلال بنية WooCommerce التحتية الآمنة
* **تقلل من التعقيد:** ليست هناك حاجة لإعادة تنفيذ تكاملات بوابة الدفع

## توسيعات واجهة برمجة التطبيقات[​](#api-extensions "رابط مباشر إلى توسيعات واجهة برمجة التطبيقات")

تمتد إضافة PHP لواجهة برمجة التطبيقات REST الخاصة بـ WooCommerce مع نقاط نهاية إضافية لوظائف محددة لنقاط البيع. راجع [واجهة برمجة التطبيقات REST الخاصة بـ WooCommerce](/ar/reference/wc-rest-api.md) لمزيد من التفاصيل.

***
