Sign up

Log in

كيفية ربط WooCommerce مع شركة التوصيل عبر API في المغرب

· 11 min read · 👁 1 قراءة

كيفية ربط WooCommerce مع شركة التوصيل عبر API في المغرب

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

بدل أن تقوم كل مرة بنسخ اسم الزبون ورقم الهاتف والعنوان والمدينة وإرسال المعلومات إلى شركة التوصيل، يمكنك ربط متجر WooCommerce مع شركة التوصيل باستعمال API.

بهذه الطريقة يمكن أن تصبح عملية معالجة الطلبات أكثر تنظيمًا، ويمكن Send معلومات الطلب إلى شركة التوصيل مباشرة من المتجر، ثم استقبال معلومات التتبع وتحديث حالة الطلبات حسب الإمكانيات التي توفرها شركة التوصيل.

---

ما هو API؟

API هو اختصار لـ Application Programming Interface.

بشكل بسيط، API يسمح لموقعين أو نظامين مختلفين بالتواصل مع بعضهما البعض.

مثلاً:

WooCommerce → API → شركة التوصيل

عندما يقوم الزبون بإنشاء طلب في متجرك، يمكن للمتجر Send معلومات مثل:

  • اسم الزبون
  • رقم الهاتف
  • City
  • العنوان
  • المنتجات
  • الكمية
  • مبلغ الطلب
  • ملاحظات الزبون

إلى نظام شركة التوصيل.

وبعد Create الشحنة، يمكن لشركة التوصيل أن ترجع رقم التتبع أو معلومات أخرى إلى المتجر.

كيف يعمل API بين WooCommerce وشركة التوصيل

---

لماذا ربط WooCommerce مع شركة التوصيل مفيد؟

إذا كان عندك عدد قليل من الطلبات، يمكن أن يكون العمل اليدوي مقبولًا.

لكن عندما يبدأ المتجر في استقبال عشرات الطلبات يوميًا، يصبح نسخ البيانات وإعادة إدخالها في نظام شركة التوصيل مضيعة للوقت وقد يؤدي إلى أخطاء.

الربط عبر API يمكن أن يساعدك في:

  • تقليل إدخال البيانات يدويًا.
  • Send الطلبات بسرعة أكبر.
  • تقليل أخطاء رقم الهاتف والعنوان.
  • الحصول على رقم التتبع.
  • تحديث حالة الطلب.
  • تنظيم عمليات الشحن.
  • تقليل الوقت الذي يحتاجه فريق خدمة العملاء.

إذا كنت تعمل بنظام الدفع عند الاستلام، فمن المهم أيضًا أن تكون لديك عملية واضحة لإدارة الطلبات والمرتجعات. يمكنك الاطلاع على هذا الدليل:

كيفاش تقلل المرتجعات في التجارة الإلكترونية بالمغرب؟ 15 طريقة عملية

---

ماذا تحتاج قبل البدء؟

قبل تطوير الربط، يجب أن تتأكد من أن شركة التوصيل التي تتعامل معها توفر API أو طريقة رسمية للتكامل.

عادةً ستحتاج إلى معلومات مثل:

  • API URL
  • API Key
  • Token
  • Username
  • Password
  • Client ID
  • Secret Key

حسب System الذي تستعمله شركة التوصيل.

ليس هناك معيار واحد لجميع شركات التوصيل؛ كل شركة يمكن أن توفر API بطريقة مختلفة.

لذلك أول خطوة ليست كتابة الكود، وإنما الحصول على Documentation الخاصة بالـ API.

---

كيف تكون العملية؟

يمكن أن يكون السيناريو بهذا الشكل:

```text
الزبون
↓
WooCommerce
↓
Create الطلب
↓
Send البيانات عبر API
↓
شركة التوصيل
↓
Create الشحنة
↓
رقم التتبع
↓
WooCommerce
↓
تحديث الطلب
```

مثلاً إذا قام زبون بطلب منتج بقيمة 299 درهم، يمكن للنظام Send:

```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.

---

ما هي أهم البيانات التي يجب إرسالها؟

قبل كتابة التكامل، حدد المعلومات التي تحتاج شركة التوصيل إليها.

غالبًا ستكون:

معلومات الزبون

  • Name الكامل
  • رقم الهاتف
  • Email إذا كان مطلوبًا

معلومات العنوان

  • City
  • الحي
  • العنوان
  • الرمز البريدي إذا كان System يستعمله

معلومات الطلب

  • رقم الطلب
  • المنتجات
  • الكمية
  • الوزن إذا كان مطلوبًا
  • مبلغ الدفع عند الاستلام
  • ملاحظات

معلومات الشحن

  • نوع الخدمة
  • الدفع عند الاستلام
  • نقطة التسليم أو المنزل
  • قيمة الشحن

يجب عدم Send بيانات إضافية لا تحتاجها شركة التوصيل، خصوصًا عندما لا تكون لها علاقة بتنفيذ الطلب.

---

مثال على طلب 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`.

مثلاً يمكن Create 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.

---

متى يتم Send الطلب إلى شركة التوصيل؟

هنا توجد عدة اختيارات.

الطريقة الأولى: بعد Create الطلب

بمجرد Create الطلب، يتم إرساله مباشرة إلى شركة التوصيل.

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

الطريقة الثانية: بعد تغيير حالة الطلب

مثلاً:

```text
Pending
↓
Processing
↓
Confirmed
↓
Sent to delivery
```

عند وصول الطلب إلى حالة معينة، يتم استدعاء API.

هذه الطريقة مناسبة جدًا لمتاجر COD التي تقوم بتأكيد الطلبات قبل الشحن.

الطريقة الثالثة: زر يدوي

يمكن Add زر داخل صفحة الطلب:

Send إلى شركة التوصيل

وعند الضغط عليه يتم Create الشحنة.

هذه الطريقة مفيدة عندما تريد أن يبقى القرار بيد صاحب المتجر.

---

ماذا يحدث إذا فشل API؟

هذه نقطة مهمة جدًا.

لا يجب أن يعتبر WooCommerce أن الطلب فشل فقط لأن API الخاصة بشركة التوصيل لم تستجب.

مثلاً:

```text
WooCommerce
↓
API Request
↓
Timeout
```

يجب Sign up الخطأ، وليس Remove الطلب.

يمكن تخزين:

```text
delivery_api_status = failed
delivery_api_error = timeout
```

ثم إعادة المحاولة لاحقًا.

---

يجب استعمال Logs

من أفضل الممارسات Sign up عمليات الاتصال بالـ 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
```

هذا يجعل اكتشاف المشاكل أسهل بكثير.

---

ماذا عن تحديث حالة الشحنة؟

الربط لا يجب أن يتوقف عند Create الشحنة.

إذا كانت شركة التوصيل توفر Tracking API، يمكن للمتجر جلب حالة الشحنة.

مثلاً:

```text
جديد
↓
تم استلام الشحنة
↓
في الطريق
↓
تم التسليم
```

أو:

```text
تم الإرجاع
```

وبعدها يمكن تحويل الحالة داخل WooCommerce تلقائيًا.

مثلاً:

| شركة التوصيل | WooCommerce |
| ------------ | ----------- |
| Picked Up | Processing |
| In Transit | Shipped |
| Delivered | Completed |
| Returned | Returned |

لكن أسماء الحالات تختلف حسب System الذي تستعمله.

---

Webhook أفضل من الفحص المستمر عندما يكون متوفرًا

إذا كانت شركة التوصيل توفر Webhook، فهذا يمكن أن يكون حلًا أفضل من طلب حالة كل شحنة باستمرار.

مثلاً:

```text
شركة التوصيل
↓
Webhook
↓
WooCommerce
↓
تحديث الطلب
```

عندما تتغير حالة الشحنة، تقوم شركة التوصيل بإرسال إشعار إلى موقعك.

هذا يقلل الحاجة إلى استدعاءات API المتكررة.

---

ماذا عن المدن المغربية؟

هذه نقطة مهمة جدًا في التجارة الإلكترونية بالمغرب.

قد تجد اختلافات في طريقة كتابة City:

```text
Casablanca
الدار البيضاء
Casa
Casablanca Centre
```

لذلك من الأفضل توحيد المدن داخل المتجر.

مثلاً:

```text
Casablanca
Rabat
Marrakech
Agadir
Tangier
Fes
Meknes
Oujda
```

ثم ربط كل مدينة بالقيمة التي تتطلبها شركة التوصيل.

هذا مهم خصوصًا إذا كانت API تعتمد على City ID بدل اسم City.

---

لا تعتمد على اسم City فقط

مثلاً يمكن أن يكون عند شركة التوصيل:

```text
city_id = 101
city_name = Casablanca
```

بينما متجر WooCommerce يحتفظ بـ:

```text
Casablanca
```

لذلك من الأفضل Create Mapping:

```php
$cities = [
'Casablanca' => 101,
'Rabat' => 102,
'Marrakech' => 103
];
```

وعند Send الطلب، يستعمل System الـ ID المطلوب من شركة التوصيل.

هذه الطريقة أفضل من محاولة Send اسم City مباشرة في كل مرة.

---

ماذا عن رقم الهاتف؟

في المغرب، من الأفضل توحيد صيغة أرقام الهاتف قبل إرسالها.

مثلاً قد يدخل الزبون:

```text
0612345678
```

أو:

```text
+212612345678
```

أو:

```text
212612345678
```

ويجب أن يقوم System بتحويلها إلى الصيغة التي تقبلها شركة التوصيل.

كما يجب التحقق من رقم الهاتف قبل Create الشحنة حتى لا يتم Send طلب بمعلومات ناقصة.

---

لا ترسل الطلبات المكررة

من المشاكل الخطيرة في تكامل API Create نفس الشحنة مرتين.

مثلاً:

```text
Order #1524
↓
API
↓
Shipment created
```

إذا ضغط المستخدم على الزر مرة أخرى، قد يتم Create:

```text
Shipment #A
Shipment #B
```

لنفس الطلب.

لذلك يجب تخزين معرف الشحنة داخل الطلب، والتحقق منه قبل Create شحنة جديدة.

مثلاً:

```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: أيهما أفضل للمتاجر المغربية؟

أما إذا كنت تريد معرفة تكلفة بناء متجر إلكتروني من البداية، فهذا المقال سيساعدك:

تكلفة Create موقع إلكتروني في المغرب years 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. يتم Save Tracking Number
↓
8. شركة التوصيل تحدث الحالة
↓
9. WooCommerce يحدث Order Status
```

وهكذا يصبح جزء كبير من العملية أوتوماتيكيًا.

أتمتة طلبات WooCommerce والتوصيل

---

Checklist قبل إطلاق الربط

قبل تشغيل System على الطلبات الحقيقية، اختبر:

  • [ ] API Authentication
  • [ ] Create طلب تجريبي
  • [ ] رقم الهاتف
  • [ ] City
  • [ ] العنوان
  • [ ] مبلغ COD
  • [ ] المنتجات
  • [ ] رقم التتبع
  • [ ] تحديث الحالة
  • [ ] Webhook إن كان متوفرًا
  • [ ] التعامل مع الأخطاء
  • [ ] منع الطلبات المكررة
  • [ ] Sign up Logs
  • [ ] حماية API Keys
  • [ ] اختبار الطلب المرتجع
  • [ ] اختبار Cancel request

لا تبدأ بإرسال جميع الطلبات الحقيقية قبل تجربة التكامل بشكل كامل.

---

الخلاصة

ربط WooCommerce مع شركة التوصيل عبر API يمكن أن يوفر الكثير من الوقت للمتاجر الإلكترونية المغربية، خصوصًا عندما يرتفع عدد الطلبات ويصبح إدخال البيانات يدويًا مرهقًا.

الفكرة الأساسية هي:

WooCommerce → API → شركة التوصيل → Tracking/Webhook → WooCommerce

لكن نجاح المشروع لا يعتمد فقط على كتابة كود API. يجب أيضًا الاهتمام بتوحيد المدن وأرقام الهاتف، منع الطلبات المكررة، Sign up الأخطاء، حماية مفاتيح API، واختبار جميع السيناريوهات قبل تشغيل System.

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

كما أن تنظيم بنية الموقع والتنقل بين الصفحات يساعد المستخدم ومحركات البحث على فهم Content؛ Google توضح أن البيانات المنظمة يمكن أن تساعدها على فهم محتوى الصفحات، كما أن Breadcrumbs توضح موقع الصفحة داخل بنية الموقع.

وفي المقابل، يبقى الهدف الأساسي هو بناء تجربة مفيدة للمستخدم، وليس Add تقنيات SEO لمجرد الترتيب؛ Google تؤكد على Content الموجه للناس وتجربة الصفحة الجيدة.

مقالات مرتبطة

📬 NewsletterGet new articles by email. Unsubscribe anytime.

Comments 0

Be the first to comment.

Add a comment

Comments are reviewed before they appear.

← All articles