إذا كنت تملك متجرًا إلكترونيًا في المغرب وتعتمد على الدفع عند الاستلام COD، فمن الطبيعي أن تبدأ بعد فترة في البحث عن طريقة لتقليل العمل اليدوي في معالجة الطلبات.
بدل أن تقوم كل مرة بنسخ اسم الزبون ورقم الهاتف والعنوان والمدينة وإرسال المعلومات إلى شركة التوصيل، يمكنك ربط متجر WooCommerce مع شركة التوصيل باستعمال API.
بهذه الطريقة يمكن أن تصبح عملية معالجة الطلبات أكثر تنظيمًا، ويمكن إرسال معلومات الطلب إلى شركة التوصيل مباشرة من المتجر، ثم استقبال معلومات التتبع وتحديث حالة الطلبات حسب الإمكانيات التي توفرها شركة التوصيل.
---
ما هو API؟
API هو اختصار لـ Application Programming Interface.
بشكل بسيط، API يسمح لموقعين أو نظامين مختلفين بالتواصل مع بعضهما البعض.
مثلاً:
WooCommerce → API → شركة التوصيل
عندما يقوم الزبون بإنشاء طلب في متجرك، يمكن للمتجر إرسال معلومات مثل:
- اسم الزبون
- رقم الهاتف
- المدينة
- العنوان
- المنتجات
- الكمية
- مبلغ الطلب
- ملاحظات الزبون
إلى نظام شركة التوصيل.
وبعد إنشاء الشحنة، يمكن لشركة التوصيل أن ترجع رقم التتبع أو معلومات أخرى إلى المتجر.

---
لماذا ربط WooCommerce مع شركة التوصيل مفيد؟
إذا كان عندك عدد قليل من الطلبات، يمكن أن يكون العمل اليدوي مقبولًا.
لكن عندما يبدأ المتجر في استقبال عشرات الطلبات يوميًا، يصبح نسخ البيانات وإعادة إدخالها في نظام شركة التوصيل مضيعة للوقت وقد يؤدي إلى أخطاء.
الربط عبر API يمكن أن يساعدك في:
- تقليل إدخال البيانات يدويًا.
- إرسال الطلبات بسرعة أكبر.
- تقليل أخطاء رقم الهاتف والعنوان.
- الحصول على رقم التتبع.
- تحديث حالة الطلب.
- تنظيم عمليات الشحن.
- تقليل الوقت الذي يحتاجه فريق خدمة العملاء.
إذا كنت تعمل بنظام الدفع عند الاستلام، فمن المهم أيضًا أن تكون لديك عملية واضحة لإدارة الطلبات والمرتجعات. يمكنك الاطلاع على هذا الدليل:
كيفاش تقلل المرتجعات في التجارة الإلكترونية بالمغرب؟ 15 طريقة عملية
---
ماذا تحتاج قبل البدء؟
قبل تطوير الربط، يجب أن تتأكد من أن شركة التوصيل التي تتعامل معها توفر API أو طريقة رسمية للتكامل.
عادةً ستحتاج إلى معلومات مثل:
- API URL
- API Key
- Token
- Username
- Password
- Client ID
- Secret Key
حسب النظام الذي تستعمله شركة التوصيل.
ليس هناك معيار واحد لجميع شركات التوصيل؛ كل شركة يمكن أن توفر API بطريقة مختلفة.
لذلك أول خطوة ليست كتابة الكود، وإنما الحصول على Documentation الخاصة بالـ API.
---
كيف تكون العملية؟
يمكن أن يكون السيناريو بهذا الشكل:
```text
الزبون
↓
WooCommerce
↓
إنشاء الطلب
↓
إرسال البيانات عبر API
↓
شركة التوصيل
↓
إنشاء الشحنة
↓
رقم التتبع
↓
WooCommerce
↓
تحديث الطلب
```
مثلاً إذا قام زبون بطلب منتج بقيمة 299 درهم، يمكن للنظام إرسال:
```text
Customer:
Ahmed
Phone:
0612345678
City:
Casablanca
Address:
Maarif, Casablanca
Amount:
299 MAD
Payment:
COD
```
إلى API الخاصة بشركة التوصيل.
إذا قبلت الشركة الطلب، يمكن أن ترجع شيئًا مثل:
```json
{
"success": true,
"tracking_number": "123456789",
"shipment_id": "98765"
}
```
بعدها يمكن تخزين رقم التتبع داخل طلب WooCommerce.
---
ما هي أهم البيانات التي يجب إرسالها؟
قبل كتابة التكامل، حدد المعلومات التي تحتاج شركة التوصيل إليها.
غالبًا ستكون:
معلومات الزبون
- الاسم الكامل
- رقم الهاتف
- البريد الإلكتروني إذا كان مطلوبًا
معلومات العنوان
- المدينة
- الحي
- العنوان
- الرمز البريدي إذا كان النظام يستعمله
معلومات الطلب
- رقم الطلب
- المنتجات
- الكمية
- الوزن إذا كان مطلوبًا
- مبلغ الدفع عند الاستلام
- ملاحظات
معلومات الشحن
- نوع الخدمة
- الدفع عند الاستلام
- نقطة التسليم أو المنزل
- قيمة الشحن
يجب عدم إرسال بيانات إضافية لا تحتاجها شركة التوصيل، خصوصًا عندما لا تكون لها علاقة بتنفيذ الطلب.
---
مثال على طلب API باستعمال PHP
إذا كانت شركة التوصيل تستعمل API تعتمد على JSON، يمكن أن يكون المبدأ البرمجي شبيهًا بهذا:
```php
$data = [
'name' => $customer_name,
'phone' => $customer_phone,
'city' => $customer_city,
'address' => $customer_address,
'amount' => $order_total
];
$ch = curl_init('https://example.com/api/orders');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Authorization: Bearer YOUR_API_TOKEN'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
```
هذا مجرد مثال توضيحي.
لا يجب استعماله كما هو قبل معرفة طريقة المصادقة والـ endpoint والحقول المطلوبة من شركة التوصيل.
---
أين نضع التكامل داخل WooCommerce؟
يمكن تطوير التكامل كـ Plugin خاص بـ WooCommerce.
وهذا غالبًا أفضل من وضع جميع الأكواد داخل `functions.php`.
مثلاً يمكن إنشاء Plugin باسم:
```text
woocommerce-delivery-api
```
ويحتوي على:
```text
woocommerce-delivery-api/
│
├── woocommerce-delivery-api.php
├── includes/
│ ├── api.php
│ ├── orders.php
│ └── tracking.php
│
└── admin/
└── settings.php
```
بهذه الطريقة يصبح الكود منظمًا وأسهل في التطوير والصيانة.
إذا كان مشروعك يحتاج تطويرًا أكبر، يمكنك أيضًا الاستفادة من المقال السابق حول أفضل إضافات WooCommerce للمتاجر المغربية في 2026.
---
متى يتم إرسال الطلب إلى شركة التوصيل؟
هنا توجد عدة اختيارات.
الطريقة الأولى: بعد إنشاء الطلب
بمجرد إنشاء الطلب، يتم إرساله مباشرة إلى شركة التوصيل.
هذه الطريقة سريعة، لكنها قد تكون غير مناسبة إذا كنت تريد أولًا الاتصال بالزبون لتأكيد الطلب.
الطريقة الثانية: بعد تغيير حالة الطلب
مثلاً:
```text
Pending
↓
Processing
↓
Confirmed
↓
Sent to delivery
```
عند وصول الطلب إلى حالة معينة، يتم استدعاء API.
هذه الطريقة مناسبة جدًا لمتاجر COD التي تقوم بتأكيد الطلبات قبل الشحن.
الطريقة الثالثة: زر يدوي
يمكن إضافة زر داخل صفحة الطلب:
إرسال إلى شركة التوصيل
وعند الضغط عليه يتم إنشاء الشحنة.
هذه الطريقة مفيدة عندما تريد أن يبقى القرار بيد صاحب المتجر.
---
ماذا يحدث إذا فشل API؟
هذه نقطة مهمة جدًا.
لا يجب أن يعتبر WooCommerce أن الطلب فشل فقط لأن API الخاصة بشركة التوصيل لم تستجب.
مثلاً:
```text
WooCommerce
↓
API Request
↓
Timeout
```
يجب تسجيل الخطأ، وليس حذف الطلب.
يمكن تخزين:
```text
delivery_api_status = failed
delivery_api_error = timeout
```
ثم إعادة المحاولة لاحقًا.
---
يجب استعمال Logs
من أفضل الممارسات تسجيل عمليات الاتصال بالـ API.
مثلاً:
```text
2026-10-04 21:30
Order: #1524
API: create shipment
Status: success
Tracking: ABC12345
```
وفي حالة الخطأ:
```text
2026-10-04 21:35
Order: #1525
API: create shipment
Status: failed
Error: Invalid phone number
```
هذا يجعل اكتشاف المشاكل أسهل بكثير.
---
ماذا عن تحديث حالة الشحنة؟
الربط لا يجب أن يتوقف عند إنشاء الشحنة.
إذا كانت شركة التوصيل توفر Tracking API، يمكن للمتجر جلب حالة الشحنة.
مثلاً:
```text
جديد
↓
تم استلام الشحنة
↓
في الطريق
↓
تم التسليم
```
أو:
```text
تم الإرجاع
```
وبعدها يمكن تحويل الحالة داخل WooCommerce تلقائيًا.
مثلاً:
| شركة التوصيل | WooCommerce |
| ------------ | ----------- |
| Picked Up | Processing |
| In Transit | Shipped |
| Delivered | Completed |
| Returned | Returned |
لكن أسماء الحالات تختلف حسب النظام الذي تستعمله.
---
Webhook أفضل من الفحص المستمر عندما يكون متوفرًا
إذا كانت شركة التوصيل توفر Webhook، فهذا يمكن أن يكون حلًا أفضل من طلب حالة كل شحنة باستمرار.
مثلاً:
```text
شركة التوصيل
↓
Webhook
↓
WooCommerce
↓
تحديث الطلب
```
عندما تتغير حالة الشحنة، تقوم شركة التوصيل بإرسال إشعار إلى موقعك.
هذا يقلل الحاجة إلى استدعاءات API المتكررة.
---
ماذا عن المدن المغربية؟
هذه نقطة مهمة جدًا في التجارة الإلكترونية بالمغرب.
قد تجد اختلافات في طريقة كتابة المدينة:
```text
Casablanca
الدار البيضاء
Casa
Casablanca Centre
```
لذلك من الأفضل توحيد المدن داخل المتجر.
مثلاً:
```text
Casablanca
Rabat
Marrakech
Agadir
Tangier
Fes
Meknes
Oujda
```
ثم ربط كل مدينة بالقيمة التي تتطلبها شركة التوصيل.
هذا مهم خصوصًا إذا كانت API تعتمد على City ID بدل اسم المدينة.
---
لا تعتمد على اسم المدينة فقط
مثلاً يمكن أن يكون عند شركة التوصيل:
```text
city_id = 101
city_name = Casablanca
```
بينما متجر WooCommerce يحتفظ بـ:
```text
Casablanca
```
لذلك من الأفضل إنشاء Mapping:
```php
$cities = [
'Casablanca' => 101,
'Rabat' => 102,
'Marrakech' => 103
];
```
وعند إرسال الطلب، يستعمل النظام الـ ID المطلوب من شركة التوصيل.
هذه الطريقة أفضل من محاولة إرسال اسم المدينة مباشرة في كل مرة.
---
ماذا عن رقم الهاتف؟
في المغرب، من الأفضل توحيد صيغة أرقام الهاتف قبل إرسالها.
مثلاً قد يدخل الزبون:
```text
0612345678
```
أو:
```text
+212612345678
```
أو:
```text
212612345678
```
ويجب أن يقوم النظام بتحويلها إلى الصيغة التي تقبلها شركة التوصيل.
كما يجب التحقق من رقم الهاتف قبل إنشاء الشحنة حتى لا يتم إرسال طلب بمعلومات ناقصة.
---
لا ترسل الطلبات المكررة
من المشاكل الخطيرة في تكامل API إنشاء نفس الشحنة مرتين.
مثلاً:
```text
Order #1524
↓
API
↓
Shipment created
```
إذا ضغط المستخدم على الزر مرة أخرى، قد يتم إنشاء:
```text
Shipment #A
Shipment #B
```
لنفس الطلب.
لذلك يجب تخزين معرف الشحنة داخل الطلب، والتحقق منه قبل إنشاء شحنة جديدة.
مثلاً:
```text
_delivery_shipment_id
```
إذا كانت القيمة موجودة، لا تنشئ شحنة جديدة إلا إذا كان هناك سبب واضح لذلك.
---
الأمن مهم جدًا
لا تضع API Key مباشرة داخل الواجهة أو JavaScript.
خطأ:
```javascript
const apiKey = "SECRET_API_KEY";
```
أي شخص يستطيع رؤية الكود يمكنه الحصول على المفتاح.
الأفضل أن تتم عملية الاتصال من السيرفر:
```text
Browser
↓
WordPress
↓
PHP
↓
Delivery API
```
وتخزين المفاتيح في مكان آمن داخل إعدادات السيرفر أو إعدادات WordPress المناسبة.
---
HTTPS ضروري
موقع التجارة الإلكترونية يجب أن يعمل عبر HTTPS، خصوصًا عند التعامل مع بيانات الزبائن وعمليات API.
كما يجب التأكد من أن endpoint الخاص بشركة التوصيل يستخدم اتصالًا آمنًا.
---
هل API مناسبة لكل متجر؟
ليس بالضرورة.
إذا كان المتجر يستقبل عددًا قليلاً جدًا من الطلبات، قد يكون الإدخال اليدوي كافيًا.
لكن عندما يصبح لديك:
- عدد كبير من الطلبات
- أكثر من موظف
- عدة شركات توصيل
- Tracking
- COD
- مرتجعات
- تحديثات تلقائية
فإن الأتمتة تبدأ في إعطاء قيمة أكبر.
وهنا يمكن أن يصبح تطوير نظام مخصص أفضل من الاعتماد على عمليات يدوية كثيرة.
---
WooCommerce أم نظام مخصص؟
WooCommerce مناسب جدًا إذا كنت تريد بناء متجر بسرعة والاستفادة من منظومة WordPress والإضافات.
أما إذا كان المشروع يحتاج منطقًا خاصًا جدًا للطلبات والتوصيل والمدن والمخزون والتتبع، فقد يكون تطوير نظام مخصص بـ PHP/MySQL خيارًا مناسبًا.
إذا كنت محتارًا بين WooCommerce وShopify، يمكنك قراءة:
WooCommerce أم Shopify: أيهما أفضل للمتاجر المغربية؟
أما إذا كنت تريد معرفة تكلفة بناء متجر إلكتروني من البداية، فهذا المقال سيساعدك:
تكلفة إنشاء موقع إلكتروني في المغرب سنة 2026
---
API ليست فقط للتوصيل
نفس الفكرة يمكن استعمالها لربط WooCommerce مع خدمات أخرى.
مثلاً:
```text
WooCommerce
├── Delivery API
├── Payment API
├── WhatsApp API
├── CRM API
├── Google Sheets API
└── Accounting API
```
وبذلك يمكن تحويل المتجر من مجرد موقع لعرض المنتجات إلى نظام متكامل لإدارة التجارة الإلكترونية.
---
مثال عملي لمتجر مغربي
لنفترض أن لديك متجرًا يبيع منتجًا بـ:
299 درهم
والزبون قام بإنشاء طلب في الموقع.
العملية يمكن أن تكون:
```text
1. الزبون يملأ الطلب
↓
2. WooCommerce ينشئ Order
↓
3. الموظف يؤكد الطلب
↓
4. WooCommerce يستدعي Delivery API
↓
5. شركة التوصيل تنشئ الشحنة
↓
6. WooCommerce يحصل على Tracking Number
↓
7. يتم حفظ Tracking Number
↓
8. شركة التوصيل تحدث الحالة
↓
9. WooCommerce يحدث Order Status
```
وهكذا يصبح جزء كبير من العملية أوتوماتيكيًا.

---
Checklist قبل إطلاق الربط
قبل تشغيل النظام على الطلبات الحقيقية، اختبر:
- [ ] API Authentication
- [ ] إنشاء طلب تجريبي
- [ ] رقم الهاتف
- [ ] المدينة
- [ ] العنوان
- [ ] مبلغ COD
- [ ] المنتجات
- [ ] رقم التتبع
- [ ] تحديث الحالة
- [ ] Webhook إن كان متوفرًا
- [ ] التعامل مع الأخطاء
- [ ] منع الطلبات المكررة
- [ ] تسجيل Logs
- [ ] حماية API Keys
- [ ] اختبار الطلب المرتجع
- [ ] اختبار إلغاء الطلب
لا تبدأ بإرسال جميع الطلبات الحقيقية قبل تجربة التكامل بشكل كامل.
---
الخلاصة
ربط WooCommerce مع شركة التوصيل عبر API يمكن أن يوفر الكثير من الوقت للمتاجر الإلكترونية المغربية، خصوصًا عندما يرتفع عدد الطلبات ويصبح إدخال البيانات يدويًا مرهقًا.
الفكرة الأساسية هي:
WooCommerce → API → شركة التوصيل → Tracking/Webhook → WooCommerce
لكن نجاح المشروع لا يعتمد فقط على كتابة كود API. يجب أيضًا الاهتمام بتوحيد المدن وأرقام الهاتف، منع الطلبات المكررة، تسجيل الأخطاء، حماية مفاتيح API، واختبار جميع السيناريوهات قبل تشغيل النظام.
وبالنسبة لمتجر مغربي يعتمد على COD، فإن هذا النوع من الأتمتة يمكن أن يكون خطوة مهمة للانتقال من إدارة الطلبات يدويًا إلى نظام أكثر تنظيمًا وقابلية للتوسع.
كما أن تنظيم بنية الموقع والتنقل بين الصفحات يساعد المستخدم ومحركات البحث على فهم المحتوى؛ Google توضح أن البيانات المنظمة يمكن أن تساعدها على فهم محتوى الصفحات، كما أن Breadcrumbs توضح موقع الصفحة داخل بنية الموقع.
وفي المقابل، يبقى الهدف الأساسي هو بناء تجربة مفيدة للمستخدم، وليس إضافة تقنيات SEO لمجرد الترتيب؛ Google تؤكد على المحتوى الموجه للناس وتجربة الصفحة الجيدة.
مقالات مرتبطة
- شركات التوصيل في المغرب 2026: دليل اختيار شركة التوصيل المناسبة للمتاجر الإلكترونية
- كيفاش تخدم بالدفع عند الاستلام COD في المغرب وتقلل الطلبات المرتجعة؟
- أفضل إضافات WooCommerce للمتاجر المغربية في 2026
- استرجاع السلة المهجورة في المتاجر الإلكترونية بالمغرب
التعليقات 0
كن أول من يعلق.