استيراد طلب Shopify إلى Odoo: دليل الأتمتة الكامل
يعد كل طلب من Shopify يتطلب إعادة الإدخال اليدوي إلى Odoo بمثابة مسؤولية — فرصة لحدوث أخطاء في إدخال البيانات، والتأخير في معالجة التنفيذ، واستنزاف وقت الموظفين الذي يتفاقم مع كل طلب إضافي. بالنسبة لمتجر يعالج 200 طلب يوميًا، يستهلك استيراد الطلب اليدوي ما يقرب من 3 إلى 4 ساعات من وقت الموظفين يوميًا ويقدم معدل خطأ يتراوح بين 2 إلى 5% يتدرج عبر المخزون والشحن والمحاسبة.
تعمل أتمتة مسار الطلب من Shopify-to-Odoo على إزالة هذا الاختناق تمامًا. تصل الطلبات إلى Odoo في غضون ثوانٍ من تقديمها، ويتم دمج سجلات العملاء تلقائيًا، وتتم مزامنة حالات الدفع في الوقت الفعلي، ويتم إرسال تحديثات التنفيذ إلى Shopify مع أرقام التتبع، ويتم اكتشاف حالات الخطأ ووضعها في قائمة الانتظار لحلها بدلاً من إسقاطها بصمت.
يغطي هذا الدليل أتمتة استيراد الطلب بالكامل - من خطاف الويب Shopify الذي يبدأ العملية من خلال إعادة كتابة الاستيفاء التي تغلق الحلقة. تتضمن كل خطوة تعيينات البيانات المحددة وحالات الحافة وأوضاع الفشل التي تحتاج إلى التعامل معها من أجل التنفيذ على مستوى الإنتاج.
الوجبات الرئيسية
- توفر خطافات الويب الخاصة بـ Shopify أحداث الطلب في الوقت الفعلي - الطلبات/الإنشاء، والطلبات/التحديث، والطلبات/الإلغاء - التي تؤدي إلى تشغيل مسار الاستيراد
- تستخدم مزامنة العملاء البريد الإلكتروني كمفتاح المطابقة الأساسي، مع الإنشاء التلقائي للعملاء الجدد ودمج الحقول للعملاء الحاليين
- يقوم تعيين حالة الدفع بترجمة حالات الدفع في Shopify (مصرح به، مدفوع، مدفوع جزئيًا، مسترد) إلى سجلات دفع Odoo
- تعمل مطابقة المنتج على ربط عناصر Shopify بمنتجات Odoo باستخدام SKU كمعرف أساسي - تعد المطابقة على مستوى المتغير أمرًا ضروريًا
- تُرسل عملية رد الاستيفاء تأكيد تسليم Odoo مرة أخرى إلى Shopify مع أرقام التتبع، ومعلومات شركة النقل، وبيانات استيفاء كل عنصر
- تتطلب عمليات التنفيذ الجزئي (الشحنات المقسمة من مستودعات متعددة) تتبع التنفيذ على مستوى الصنف، وليس على مستوى الطلب
- يجب أن تتضمن معالجة الأخطاء قوائم انتظار إعادة المحاولة، ومعالجة الرسائل الميتة، والتنبيه - تعتبر حالات الفشل الصامتة هي أخطر حالات الفشل
- تمنع مفاتيح Idempotency (معرف طلب Shopify) الطلبات المكررة من إعادة محاولة خطاف الويب
الهندسة المعمارية: خط أنابيب استيراد الطلبات
يشتمل مسار استيراد الطلب الكامل على ست مراحل، تحتوي كل منها على تحويلات بيانات محددة وأنماط فشل:
Stage 1: Webhook Reception
Shopify → orders/create webhook → Integration endpoint
Stage 2: Customer Resolution
Find or create Odoo customer from Shopify customer data
Stage 3: Product Matching
Map Shopify line items to Odoo products by SKU/variant
Stage 4: Order Creation
Create Odoo sale order with lines, taxes, shipping, discounts
Stage 5: Payment Recording
Record payment status based on Shopify financial_status
Stage 6: Fulfillment Writeback
Odoo delivery → Shopify fulfillment with tracking
كل مرحلة عبارة عن عملية متميزة يمكن أن تفشل بشكل مستقل. يعالج التنفيذ القوي هذه الأمور كمسار مع نقاط فحص - إذا فشلت المرحلة 4، فلن تتم إعادة تنفيذ المراحل 1-3 عند إعادة المحاولة.
المرحلة 1: استلام خطافات الطلب على Shopify
Shopify webhooks هي الأساس لاستيراد الطلب في الوقت الحقيقي. عند حدوث حدث طلب، يرسل Shopify طلب HTTP POST إلى نقطة النهاية المسجلة لديك مع حمولة الطلب الكاملة.
اشتراكات Webhook المطلوبة
| موضوع الويب هوك | الغرض | عندما تشتعل |
|---|---|---|
| أوامر/إنشاء | تم تقديم طلب جديد | يكمل العميل الخروج |
| الطلبات/محدثة | تم تعديل الطلب | تم القبض على الدفع، وأضاف التنفيذ، وتم إجراء التعديلات |
| الطلبات/الملغاة | تم إلغاء الطلب | التاجر أو العميل يلغي |
| المبالغ المستردة/إنشاء | تم إصدار المبلغ المسترد | تمت معالجة استرداد الأموال بالكامل أو جزئيًا |
التحقق من خطاف الويب
يجب التحقق من كل خطاف ويب وارد باستخدام توقيع Shopify's HMAC-SHA256. تم توقيع حمولة خطاف الويب باستخدام السر المشترك لتطبيقك - تحقق من التوقيع قبل المعالجة. يجب رفض خطافات الويب التي لم يتم التحقق منها من خلال الرد 401.
التعامل مع ضمانات تسليم Webhook
يضمن Shopify التسليم مرة واحدة على الأقل، مما يعني أنه قد يتم إرسال نفس خطاف الويب عدة مرات - بعد انتهاء مهلة الشبكة، أو أثناء دورة إعادة محاولة Shopify، أو أثناء التعافي من الحادث. يجب أن تكون نقطة النهاية الخاصة بك غير فعالة: يجب ألا يؤدي تلقي نفس الطلبات/إنشاء خطاف ويب مرتين إلى إنشاء أمرين من Odoo.
نمط التنفيذ: استخدم معرف طلب Shopify كمفتاح للعجز. قبل إنشاء طلب Odoo، تحقق مما إذا كان الطلب بمرجع Shopify موجود بالفعل. إذا كان الأمر كذلك، فتخطى الإنشاء وأعد استجابة 200 حتى يتوقف Shopify عن إعادة المحاولة.
متطلبات وقت الاستجابة
Shopify يتوقع استجابة 200 في غضون 5 ثواني. إذا استغرقت نقطة النهاية وقتًا أطول، يضع Shopify علامة على التسليم على أنه فشل ويعيد المحاولة. لهذا السبب، يجب أن تقبل نقطة نهاية خطاف الويب الحمولة، وتتحقق من صحة توقيع HMAC، وتضع الأمر في قائمة الانتظار للمعالجة غير المتزامنة، وتعيد 200 على الفور. يحدث إنشاء الطلب الفعلي في عامل الخلفية.
المرحلة الثانية: حل مشكلة العملاء
يتضمن كل طلب من Shopify بيانات العميل — البريد الإلكتروني والاسم والهاتف وعنوان الشحن وعنوان إرسال الفواتير. يجب أن يحل التكامل هذه المشكلة في قاعدة بيانات جهات الاتصال الخاصة بـ Odoo.
خوارزمية مطابقة العملاء
يتبع منطق المطابقة الموصى به تسلسل الأولوية هذا:
- مطابقة تامة للبريد الإلكتروني: ابحث في جهات اتصال Odoo عن عنوان البريد الإلكتروني من طلب Shopify. البريد الإلكتروني هو المعرف الفريد الأكثر موثوقية.
- مطابقة الهاتف (في حالة عدم تطابق البريد الإلكتروني): قد لا تحتوي بعض طلبات B2B أو طلبات نقاط البيع على بريد إلكتروني. ارجع إلى مطابقة رقم الهاتف مع التسوية (المسافات الشريطية والشرطات وتسوية رمز البلد).
- إنشاء جهة اتصال جديدة: إذا لم يتم العثور على أي تطابق، فقم بإنشاء جهة اتصال جديدة على Odoo تتضمن جميع البيانات المتاحة من طلب Shopify.
دمج الحقول للعملاء الحاليين
عند مطابقة عميل Odoo الحالي، يجب أن يقوم التكامل بتحديث (وليس استبدال) الحقول المفقودة:
If Odoo contact has no phone but Shopify order does → add phone
If Odoo contact has phone and Shopify order has different phone → keep Odoo (source of truth)
If Shopify order has new shipping address → add as child contact (delivery address)
التعامل مع العناوين
تتضمن طلبات Shopify كلاً من عنوان إرسال الفواتير وعنوان الشحن. في Odoo، يتم تعيين هذه الأنواع لأنواع جهات اتصال مختلفة. يجب أن يكون عنوان إرسال الفواتير مرتبطًا بسجل الشريك الرئيسي (أو جهة اتصال فرعية من النوع "عنوان الفاتورة"). يجب أن يكون عنوان الشحن عبارة عن جهة اتصال فرعية من النوع "عنوان التسليم". إذا استخدم العميل عناوين شحن متعددة عبر طلبات مختلفة، فيجب أن يكون كل عنوان فريد بمثابة جهة اتصال منفصلة للطفل - مما يتيح تحديد العنوان للطلبات اليدوية المستقبلية.
التعامل مع العملاء B2B
بالنسبة لطلبات B2B (ميزات Shopify Plus B2B)، يجب أن يقوم التكامل بتعيين شركة Shopify إلى جهة اتصال من نوع شركة Odoo، مع المشتري الفردي كجهة اتصال فرعية. وهذا يحافظ على العلاقة بين الشركة والفرد التي تتطلبها عمليات B2B فيما يتعلق بشروط الائتمان وتسعير الحجم وإدارة الحساب.
المرحلة الثالثة: مطابقة المنتج
يجب أن يتطابق كل عنصر في طلب Shopify مع منتج في Odoo. هذه المطابقة هي المكان الذي تفشل فيه العديد من عمليات التكامل، لأن Shopify وOdoo يمثلان المنتجات بشكل مختلف.
المطابقة القائمة على SKU
SKU هو مفتاح المطابقة الأساسي الموصى به. عند إدارة المنتجات في Odoo ومزامنتها مع Shopify، يجب تعيين مرجع Odoo الداخلي (SKU) على كل من متغير منتج Odoo ومتغير Shopify. يطابق التكامل SKU لعنصر Shopify مع المرجع الداخلي لمتغير منتج Odoo.
تعقيد مطابقة المتغير
يجب أن تتطابق متغيرات Shopify (الحجم: كبير، اللون: أزرق) مع متغيرات منتج Odoo ذات قيم السمات المكافئة. يكون هذا واضحًا عندما تكون وحدات SKU متسقة، ولكنها تنقطع عندما تختلف وحدات SKU بين الأنظمة، أو عندما يكون لدى Shopify متغيرات غير موجودة في Odoo (على سبيل المثال، متغير جديد مضاف على Shopify ولكن لم تتم مزامنته بعد مع Odoo)، أو عندما تستخدم منتجات Odoo سمات قابلة للتكوين بينما يستخدم Shopify متغيرات محددة مسبقًا.
التعامل مع المنتجات غير المتطابقة: عندما لا يمكن مطابقة أحد عناصر Shopify مع منتج Odoo، فلا ينبغي للتكامل تخطيه بصمت. بدلاً من ذلك، يجب إنشاء الطلب باستخدام خط منتج نائب (على سبيل المثال، عنصر "منتج Shopify غير متطابق" مع عنوان متغير Shopify في الوصف)، ووضع علامة على الطلب للمراجعة، وتنبيه فريق العمليات.
منتجات الحزمة والعدة
إذا كنت تبيع حزمًا على Shopify (على سبيل المثال، "مجموعة المبتدئين" التي يتم شحنها كثلاثة منتجات منفصلة)، فإن التكامل يحتاج إلى معرفة ما إذا كان سيتم إنشاء سطر طلب Odoo واحد (لمنتج الحزمة) أو خطوط متعددة (للمنتجات المكونة). يعتمد هذا على إعداد مخزون Odoo الخاص بك — سواء كنت تقوم بتتبع منتجات الحزمة كعنصر واحد أو كمكونات فردية.
المرحلة الرابعة: إنشاء الطلب في أودو
بعد حل مشكلة العميل ومطابقة المنتجات، يقوم التكامل بإنشاء أمر بيع Odoo. هذه هي المرحلة الأكثر كثافة للبيانات، وتتطلب رسم خرائط ميدانية دقيقة.
رسم الخرائط الميدانية: Shopify لطلب بيع Odoo
| مجال شوبيفاي | حقل اودو | ملاحظات |
|---|---|---|
| معرف الطلب | x_shopify_order_id | حقل مخصص كمرجع |
| اسم الطلب | client_order_ref | على سبيل المثال، "#1042" |
| order.created_at | date_order | تاريخ الطلب |
| order.customer.email | معرف الشريك | تم حلها في المرحلة 2 |
| order.shipping_address | Partner_shipping_id | عنوان التسليم جهة الاتصال |
| order.billing_address | Partner_invoice_id | عنوان الفاتورة الاتصال |
| النظام.العملة | معرف العملة | خريطة لعملة Odoo |
| طلب.ملاحظة | ملاحظة | ملاحظات العملاء |
| العلامات | tag_ids | مزامنة العلامات الاختيارية |
تعيين عناصر الخط
| مجال شوبيفاي | حقل خط أمر بيع Odoo | ملاحظات |
|---|---|---|
| line_item.variant_id | معرف المنتج | تم حلها في المرحلة 3 |
| line_item.quantity | Product_uom_qty | كمية الطلب |
| line_item.price | سعر_الوحدة | سعر الوحدة |
| line_item.total_discount | خصم | تحويل إلى نسبة مئوية |
| line_item.tax_lines | معرف الضريبة | خريطة للوضع المالي لـ Odoo |
التعامل مع الخصم
يمثل Shopify الخصومات بشكل مختلف عن Odoo. يوفر Shopify مبلغ خصم لكل عنصر ورمز خصم شامل على مستوى الطلب. يتوقع Odoo نسبة خصم لكل سطر.
التحويل: discount_percentage = (shopify_discount_amount / (quantity * unit_price)) * 100
بالنسبة للخصومات على مستوى الطلب (على سبيل المثال، "خصم 10% على الطلب بالكامل")، يجب توزيع الخصم عبر العناصر بشكل متناسب. تضيف بعض التطبيقات بندًا منفصلاً ذو مبلغ سالب للخصومات على مستوى الطلب بدلاً من التوزيع - كلا الطريقتين صالحتان، لكن التوزيع التناسبي ينتج تحليل هامش أكثر وضوحًا لكل بند.
خط الشحن
يجب أن يتم ربط رسوم الشحن في Shopify بمنتج Odoo مخصص (على سبيل المثال، "Shopify Shipping") في سطر طلب منفصل. يؤدي هذا إلى إبقاء إيرادات الشحن متميزة عن إيرادات المنتج في التقارير.
| مجال شوبيفاي | خط اودو | ملاحظات |
|---|---|---|
| Shipping_lines[0].title | Product_id → "Shopify الشحن" | الوصف من Shopify |
| Shipping_lines[0].السعر | سعر_الوحدة | مبلغ الشحن |
| Shipping_lines[0].tax_lines | معرف الضريبة | ضريبة الشحن إن وجدت |
تأكيد الطلب
بعد إنشاء أمر البيع في حالة المسودة، يجب أن يؤكده التكامل تلقائيًا (action_confirm) لتشغيل مسارات العمل النهائية - إنشاء أمر التسليم، وأوامر التصنيع (لمنتجات MTO)، وأوامر الشراء (لمنتجات التسليم المباشر). قم فقط بالتأكيد تلقائيًا إذا كانت حالة الدفع "مدفوعة" أو "مصرح بها" - قم بتعليق مسودات الأوامر لحالات الدفع "المعلقة".
المرحلة الخامسة: تسجيل الدفع
يشير الحقل financial_status الخاص بـ Shopify إلى حالة الدفع الخاصة بالطلب. ويجب أن يترجم التكامل ذلك إلى سجلات دفع Odoo.
تعيين حالة الدفع
| Shopify الوضع المالي | عمل أودو | ملاحظات |
|---|---|---|
| مدفوعة | تسجيل الدفع (كامل) | إنشاء فاتورة مطابقة الدفع |
| أذن | لا يوجد دفع بعد | تم القبض على الدفع في وقت لاحق |
| جزئيا_مدفوع | تسجيل الدفع الجزئي | مبلغ قياسي تم دفعه حتى الآن |
| في انتظار | عقد في المسودة | في انتظار تأكيد الدفع |
| مستردة | تسجيل الدفع + مذكرة الائتمان | سيناريو استرداد كامل |
| تم استرداده جزئيًا | تسجيل الدفع + رصيد جزئي | سيناريو الاسترداد الجزئي |
| باطلة | إلغاء الطلب | تم إلغاء إذن الدفع |
إنشاء الفاتورة تلقائيًا
بالنسبة للطلبات "المدفوعة"، يجب أن يقوم التكامل بإنشاء فاتورة Odoo والتحقق من صحتها تلقائيًا، ثم تسجيل الدفعة مقابلها. يؤدي هذا إلى إبقاء الحسابات المدينة نظيفة - يجب أن يكون رصيد طلبات Shopify المدفوعة بالكامل صفرًا في رصيد الواقع المعزز في Odoo.
بالنسبة للطلبات "المصرح بها" (الأمر الشائع مع Shopify Payments عند تمكين الالتقاط اليدوي)، يجب أن يؤدي التكامل إلى إنشاء أمر البيع وليس الفاتورة. عندما يتم التقاط الدفعة لاحقًا (تشغيل الطلبات/خطاف الويب المحدث مع تغيير الحالة المالية إلى "مدفوع")، يقوم التكامل بإنشاء الفاتورة وتسجيل الدفعة.
تكوين طريقة الدفع
قم بإنشاء دفتر يومية دفع Odoo مخصص لمدفوعات Shopify (على سبيل المثال، دفتر يومية "Shopify Payments" من النوع "بنك"). يجب على جميع تسجيلات الدفع الآلي استخدام هذه المجلة. يؤدي هذا إلى إبقاء سجلات الدفع في Shopify منفصلة عن طرق الدفع الأخرى ويبسط التسوية المصرفية.
المرحلة السادسة: إعادة كتابة الاستيفاء
تغلق المرحلة النهائية الحلقة - عندما يتم تنفيذ الطلب في Odoo (تم التحقق من صحة طلب التسليم)، يرسل التكامل بيانات التنفيذ مرة أخرى إلى Shopify، وتحديث حالة الطلب وتزويد العميل بمعلومات التتبع.
تفعيل عملية إعادة الكتابة
في Odoo، حدث التنفيذ هو التحقق من صحة أمر التسليم (stock.picking). يجب أن يستمع التكامل إلى أحداث تأكيد أمر التسليم ويطلق استدعاء Shopify لواجهة برمجة التطبيقات (API).
رسم خرائط بيانات الاستيفاء
| مجال تسليم اودو | Shopify حقل الوفاء | ملاحظات |
|---|---|---|
| Carrier_tracking_ref | رقم التتبع | رقم تتبع الناقل |
| carrier_id.name | شركة تتبع | على سبيل المثال، "UPS"، "FedEx" |
| move_line_ids | line_items | قم بربط منتجات Odoo مرة أخرى بمعرفات عناصر Shopify |
| date_done | — | Shopify الطوابع الزمنية تلقائيا |
التعامل مع الاستيفاء الجزئي
يحدث الاستيفاء الجزئي عندما يتم شحن الطلب في حزم متعددة، من مستودعات متعددة، أو عندما يتم طلب بعض العناصر متأخرًا. يدعم Shopify عمليات الاستيفاء الجزئية محليًا - يمكنك تنفيذ عناصر محددة مع ترك العناصر الأخرى غير مستوفاة. يجب أن يتتبع التكامل عناصر Shopify التي تتوافق مع بنود أمر تسليم Odoo، وإرسال العناصر التي تم الوفاء بها فقط في كل استدعاء لواجهة برمجة التطبيقات (API) للوفاء. يؤدي إرسال استيفاء للعناصر التي تم استيفاؤها بالفعل إلى حدوث خطأ في واجهة برمجة التطبيقات.
التعامل مع الشحنات المقسمة
عندما يقوم Odoo بتقسيم أمر التسليم إلى شحنات متعددة (سيناريو الطلب المؤجل)، تقوم كل شحنة بإنشاء أمر تسليم منفصل. التكامل يجب أن:
- اكتشف أن أمر التسليم الجديد هو أمر مؤجل (متعلق بنفس أمر البيع)
- حدد العناصر الموجودة في هذه الشحنة
- قم بإنشاء استيفاء جزئي على Shopify لتلك العناصر فقط
- قم بتضمين رقم التتبع الصحيح لهذه الشحنة المحددة
استيفاء استيفاء طلبات Dropship
بالنسبة لعمليات الشحن المباشر (حيث يقوم المورد بالشحن مباشرة إلى العميل)، تأتي معلومات التتبع من إيصال أمر الشراء، وليس من أمر تسليم المستودع. يجب أن يقوم التكامل بمراقبة تأكيدات إيصال الشراء لأوامر الشحن واستخدام رقم تتبع المورد لتحقيق Shopify.
معالجة الأخطاء واستعادتها
تنقسم الأخطاء في مسار استيراد الطلب إلى ثلاث فئات، تتطلب كل منها استراتيجية استرداد مختلفة.
أخطاء عابرة (إعادة المحاولة تلقائيًا)
مهلات الشبكة، وحدود معدل واجهة برمجة التطبيقات (API)، وعدم توفر الخدمة المؤقتة - يتم حل هذه المشكلات من تلقاء نفسها. يجب أن يقوم التكامل بتنفيذ إعادة محاولة التراجع الأسي: أعد المحاولة أولاً بعد 30 ثانية، والثانية بعد دقيقتين، والثالثة بعد 10 دقائق، حتى الحد الأقصى لعدد مرات إعادة المحاولة القابلة للتكوين (عادةً 5-10).
أخطاء في البيانات (العزل للمراجعة)
منتجات غير متطابقة، وعناوين غير صالحة، وحقول مطلوبة مفقودة — وهي تتطلب تدخلًا بشريًا. يجب أن يقوم التكامل بعزل الطلب في قائمة انتظار المراجعة مع وصف واضح لما فشل، وإنشاء نشاط Odoo أو إشعار لفريق العمليات، وتوفير آلية إعادة المحاولة بنقرة واحدة بعد إصلاح مشكلة البيانات.
الأخطاء النظامية (التنبيه الفوري)
فشل المصادقة، وتغييرات أذونات واجهة برمجة التطبيقات، وأخطاء تكوين الموصل - تؤثر هذه الأمور على جميع الطلبات، وليس على طلب واحد فقط. يجب أن يكشف التكامل عن الأنماط (على سبيل المثال، 5 حالات فشل متتالية) ويتصاعد فورًا عبر البريد الإلكتروني وتنبيه لوحة المعلومات.
قائمة انتظار الرسائل الميتة
تنتقل الطلبات التي تفشل في جميع محاولات إعادة المحاولة إلى قائمة انتظار الرسائل الميتة - وهو سجل مستمر للطلبات غير القابلة للمعالجة. يجب مراقبة قائمة الانتظار هذه يوميًا. تتضمن الأسباب الشائعة للأحرف الميتة المنتجات الموجودة في Shopify ولكن لم تتم مزامنتها مطلقًا مع Odoo، وبيانات العملاء التي تحتوي على أحرف غير صالحة يرفضها Odoo، والطلبات ذات العناصر ذات السعر الصفري التي تفشل في التحقق من صحة Odoo، وعدم تطابق العملة عندما لا يتم تكوين عملة Shopify جديدة في Odoo.
اختبار خط أنابيب استيراد الطلب
قبل بدء البث المباشر، اختبر كل مسار عبر المسار:
سيناريوهات الاختبار الوظيفي
| السيناريو | النتيجة المتوقعة |
|---|---|
| الطلب المدفوع القياسي | تم إنشاء Odoo SO، وتأكيده، وإصدار فاتورة به، وتسجيل الدفعة |
| اطلب برمز الخصم | الخصم موزع عبر الخطوط بشكل صحيح |
| اطلب بمتغيرات متعددة | يقوم كل متغير بتعيين منتج Odoo الصحيح |
| طلب للعميل الجديد | تم إنشاء جهة اتصال جديدة في Odoo بجميع العناوين |
| طلب للعميل الحالي | تم العثور على جهة اتصال موجودة، وتم دمج الحقول |
| طلب متعدد العملات | مسجلة بعملة العرض، وتم تحويلها إلى عملة وظيفية |
| الوفاء الجزئي | عروض Shopify مستوفاة جزئيًا بالعناصر الصحيحة |
| الوفاء الكامل | عروض Shopify مستوفاة برقم التتبع |
| إلغاء الطلب | تم إلغاء Odoo SO، واستعادة المخزون |
| استرداد (كامل) | تم إنشاء إشعار الائتمان، وتم إلغاء الدفع |
| استرداد (جزئي) | إشعار دائن جزئي لبنود محددة |
| خطاف ويب مكرر | لا يؤدي خطاف الويب الثاني إلى إنشاء طلب مكرر |
| المنتج ليس في أودو | الطلب محجور مع التنبيه |
| وصل حد معدل API | تمت إعادة محاولة الطلب بعد فترة التراجع |
اختبار التحميل
إذا كان متجرك يعالج كميات كبيرة (أكثر من 500 طلب في اليوم)، فاختبر التحميل مسار الاستيراد باستخدام أحجام بيانات شبيهة بالإنتاج. تأكد من أن خط الأنابيب يتعامل مع حركة المرور المتقطعة (مبيعات الفلاش)، وأن أقفال قاعدة البيانات لا تؤدي إلى اختناقات، وأن حدود معدلات Shopify وOdoo API يتم احترامها.
تحسين الأداء
معالجة الدفعات للواردات التاريخية
عند إعداد التكامل أو استيراد الطلبات التاريخية في البداية، استخدم Shopify's REST API لجلب الطلبات على دفعات مكونة من 250 (الحد الأقصى لحجم الصفحة) بدلاً من معالجة كل طلب على حدة. قم بإنشاء سجلات Odoo على دفعات باستخدام طريقة إنشاء ORM مع قائمة القيم.
التخزين المؤقت لعمليات البحث عن المنتجات والعملاء
تتضمن مطابقة المنتج (المرحلة 3) وحل العميل (المرحلة 2) عمليات بحث في قاعدة البيانات لكل طلب. تصل ذاكرة التخزين المؤقت إلى المنتجات والعملاء بشكل متكرر لتقليل مكالمات Odoo API. قم بإبطال ذاكرة التخزين المؤقت عند تحديث المنتجات أو العملاء.
تزامن معالجة Webhook
بالنسبة للمتاجر كبيرة الحجم، قم بمعالجة خطافات الويب بشكل متزامن - حيث يقوم العديد من العاملين بالسحب من قائمة انتظار الرسائل في وقت واحد. تأكد من سلامة التزامن باستخدام القفل على مستوى قاعدة البيانات في فحص مفتاح الفاعلية لمنع عاملين من إنشاء نفس الطلب في وقت واحد.
الأسئلة المتداولة
ما مدى سرعة ظهور طلبات Shopify في Odoo باستخدام الأتمتة المستندة إلى الويب؟
من خلال التكامل القائم على الويب هوك الذي تم تكوينه بشكل صحيح، تظهر طلبات Shopify في Odoo خلال 2 إلى 10 ثوانٍ من تقديم الطلب. يتضمن ذلك تسليم خطاف الويب، والتحقق من HMAC، وحل العملاء، ومطابقة المنتج، وإنشاء أمر البيع. تضيف البدائل المستندة إلى Cron تأخيرًا يتراوح من 5 إلى 60 دقيقة اعتمادًا على الفاصل الزمني للاستقصاء.
ماذا يحدث إذا كان Odoo معطلاً عند وصول طلب Shopify؟
تحتفظ قائمة انتظار رسائل التكامل بحمولة خطاف الويب للطلب حتى يتوفر Odoo. عندما يعود Odoo إلى الإنترنت مرة أخرى، تقوم قائمة الانتظار بمعالجة جميع الأوامر المعلقة بالتسلسل. يقوم Shopify أيضًا بإعادة محاولة عمليات تسليم خطاف الويب الفاشلة لمدة تصل إلى 48 ساعة، مما يوفر شبكة أمان ثانوية. لن يتم فقدان الطلبات أبدًا إذا كان التكامل يستخدم قائمة انتظار رسائل مستمرة.
هل يمكنني استيراد الطلبات من متاجر Shopify المتعددة إلى مثيل Odoo واحد؟
نعم. يتصل كل متجر Shopify عبر مجموعته الخاصة من بيانات اعتماد واجهة برمجة التطبيقات (API) واشتراكات الويب هوك. يقوم التكامل بوضع علامة على كل طلب في المتجر المصدر (باستخدام حقل مخصص أو فريق مبيعات Odoo) حتى تتمكن من الإبلاغ حسب المتجر. يمكن مشاركة المنتجات عبر المتاجر أو في متجر محدد، اعتمادًا على استراتيجية الكتالوج الخاص بك.
كيف يتعامل التكامل مع مسودات طلبات Shopify؟
يجب استيراد مسودات الطلبات (التي أنشأها التجار لطلبات الهاتف أو عروض أسعار B2B) عند اكتمالها (المدفوعة)، وليس عند إنشائها كمسودات. اشترك في الطلبات/أنشئ خطافًا على الويب، والذي يتم تفعيله عند تحويل مسودة أمر إلى أمر حقيقي. وبدلاً من ذلك، اشترك في Draft_orders/update وقم بالاستيراد فقط عندما تتغير الحالة إلى "مكتمل".
ماذا عن طلبات Shopify POS - هل تتبع نفس المسار؟
تقوم أوامر Shopify POS بتشغيل نفس الطلبات/إنشاء خطاف ويب مثل الطلبات عبر الإنترنت. يمكن للتكامل معالجتها بشكل متماثل، على الرغم من أنك قد ترغب في وضع علامة على أوامر نقطة البيع مع فريق مبيعات Odoo مختلف أو مصدر لإعداد التقارير. قد تتضمن أوامر نقطة البيع أيضًا طرق دفع نقدية أو طرق دفع طرفية خارجية، والتي تتطلب تكوينات مختلفة لدفتر يومية دفع Odoo.
كيف أتعامل مع تعديلات الطلب بعد الاستيراد (على سبيل المثال، يقوم التاجر بتعديل الطلب على Shopify)؟
يقوم Shopify بإطلاق خطاف أوامر/خطاف ويب محدث عند تحرير الطلب. يجب أن يقوم التكامل بمقارنة الأمر المحدث بأمر بيع Odoo الحالي وتطبيق الاختلافات — البنود المضافة، أو العناصر المحذوفة، أو تغييرات الكمية، أو تعديلات الأسعار. يعد هذا أحد أكثر أجزاء التكامل تعقيدًا، وتتعامل معه بعض التطبيقات عن طريق إلغاء Odoo SO وإعادة إنشائه، وهو أمر أبسط ولكنه يؤدي إلى إنشاء المزيد من الإدخالات المحاسبية.
هل يمكن للأتمتة التعامل مع طلبات الاشتراك من تطبيقات Shopify Subscriptions؟
تقوم أوامر الاشتراك (من إعادة الشحن، أو الاشتراكات الجريئة، أو الاشتراكات الأصلية في Shopify) بتشغيل الطلبات القياسية/إنشاء خطافات الويب لكل رسوم متكررة. يستوردها التكامل مثل أي طلب آخر. لربط الطلبات المتكررة بسجل اشتراك Odoo، استخدم معرف الاشتراك من الحقل التعريفي للتطبيق كمرجع، واربط جميع أوامر بيع Odoo ذات الصلة باشتراك Odoo واحد.
التنفيذ مع ECOSIRE
يتطلب إنشاء خط أنابيب لاستيراد طلبات Shopify-to-Odoo على مستوى الإنتاج التعامل مع العشرات من حالات التخزين المؤقت التي لا تكون واضحة حتى تواجهها في الإنتاج - الدفعات الجزئية، والطلبات التي تحتوي على كل من العناصر الرقمية والمادية، والولايات القضائية الضريبية المعقدة، والتوجيه متعدد المستودعات، واستيفاء البائع للشحن.
قامت ECOSIRE بتنفيذ خط الأنابيب هذا لمئات من تجار Shopify. تشتمل خدمات التكامل في Shopify على أتمتة كاملة للطلبات مع المسار الكامل الموضح في هذا الدليل، والمعالجة المعدة مسبقًا لجميع حالات الحافة الشائعة، والمراقبة والتنبيه في الوقت الفعلي، والصيانة المستمرة مع تطور واجهات برمجة التطبيقات.
بالنسبة للشركات التي تتطلع أيضًا إلى أتمتة الجانب المالي، راجع دليلنا إلى Shopify + Odoo Accounting Integration، أو قارن خياراتك مع مقارنة موصل Shopify-Odoo.
حدد موعدًا لاستشارة لمناقشة متطلبات أتمتة الطلب في Shopify مع فريق التكامل لدينا.
بقلم
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
مقالات ذات صلة
أتمتة المحاسبة: القضاء على مسك الدفاتر اليدوي في عام 2026
قم بأتمتة مسك الدفاتر من خلال أتمتة تغذية البنك، ومسح الإيصالات، ومطابقة الفواتير، وأتمتة AP/AR، وتسريع الإغلاق في نهاية الشهر في عام 2026.
وكلاء الذكاء الاصطناعي للأعمال: الدليل النهائي (2026)
دليل شامل لوكلاء الذكاء الاصطناعي للأعمال: كيفية عملهم، وحالات الاستخدام، وخريطة طريق التنفيذ، وتحليل التكاليف، والحوكمة، والاتجاهات المستقبلية لعام 2026.
وكلاء الذكاء الاصطناعي مقابل تقنية RPA: ما هي تقنية الأتمتة المناسبة لشركتك؟
مقارنة عميقة بين وكلاء الذكاء الاصطناعي المعتمدين على LLM مقابل روبوتات RPA التقليدية - القدرات والتكاليف وحالات الاستخدام ومصفوفة القرار لاختيار النهج الصحيح.