انتقل إلى المحتوى الرئيسي

استيراد طلب Shopify إلى Odoo: دليل الأتمتة الكامل

دليل خطوة بخطوة لأتمتة استيراد طلبات Shopify إلى Odoo — مزامنة العملاء، وحالة الدفع، وإعادة كتابة الاستيفاء، ومعالجة الأخطاء، والطلبات الجزئية.

E
ECOSIRE Research and Development Team
|23 مارس 202619 دقائق قراءة3.7k كلمات|

يعد كل طلب من 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.

خوارزمية مطابقة العملاء

يتبع منطق المطابقة الموصى به تسلسل الأولوية هذا:

  1. مطابقة تامة للبريد الإلكتروني: ابحث في جهات اتصال Odoo عن عنوان البريد الإلكتروني من طلب Shopify. البريد الإلكتروني هو المعرف الفريد الأكثر موثوقية.
  2. مطابقة الهاتف (في حالة عدم تطابق البريد الإلكتروني): قد لا تحتوي بعض طلبات B2B أو طلبات نقاط البيع على بريد إلكتروني. ارجع إلى مطابقة رقم الهاتف مع التسوية (المسافات الشريطية والشرطات وتسوية رمز البلد).
  3. إنشاء جهة اتصال جديدة: إذا لم يتم العثور على أي تطابق، فقم بإنشاء جهة اتصال جديدة على 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_atdate_orderتاريخ الطلب
order.customer.emailمعرف الشريكتم حلها في المرحلة 2
order.shipping_addressPartner_shipping_idعنوان التسليم جهة الاتصال
order.billing_addressPartner_invoice_idعنوان الفاتورة الاتصال
النظام.العملةمعرف العملةخريطة لعملة Odoo
طلب.ملاحظةملاحظةملاحظات العملاء
العلاماتtag_idsمزامنة العلامات الاختيارية

تعيين عناصر الخط

مجال شوبيفايحقل خط أمر بيع Odooملاحظات
line_item.variant_idمعرف المنتجتم حلها في المرحلة 3
line_item.quantityProduct_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].titleProduct_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_idsline_itemsقم بربط منتجات Odoo مرة أخرى بمعرفات عناصر Shopify
date_done—Shopify الطوابع الزمنية تلقائيا

التعامل مع الاستيفاء الجزئي

يحدث الاستيفاء الجزئي عندما يتم شحن الطلب في حزم متعددة، من مستودعات متعددة، أو عندما يتم طلب بعض العناصر متأخرًا. يدعم Shopify عمليات الاستيفاء الجزئية محليًا - يمكنك تنفيذ عناصر محددة مع ترك العناصر الأخرى غير مستوفاة. يجب أن يتتبع التكامل عناصر Shopify التي تتوافق مع بنود أمر تسليم Odoo، وإرسال العناصر التي تم الوفاء بها فقط في كل استدعاء لواجهة برمجة التطبيقات (API) للوفاء. يؤدي إرسال استيفاء للعناصر التي تم استيفاؤها بالفعل إلى حدوث خطأ في واجهة برمجة التطبيقات.

التعامل مع الشحنات المقسمة

عندما يقوم Odoo بتقسيم أمر التسليم إلى شحنات متعددة (سيناريو الطلب المؤجل)، تقوم كل شحنة بإنشاء أمر تسليم منفصل. التكامل يجب أن:

  1. اكتشف أن أمر التسليم الجديد هو أمر مؤجل (متعلق بنفس أمر البيع)
  2. حدد العناصر الموجودة في هذه الشحنة
  3. قم بإنشاء استيفاء جزئي على Shopify لتلك العناصر فقط
  4. قم بتضمين رقم التتبع الصحيح لهذه الشحنة المحددة

استيفاء استيفاء طلبات 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 على مستوى الإنتاج التعامل مع العشرات من حالات التخزين المؤقت التي لا تكون واضحة حتى تواجهها في الإنتاج - الدفعات الجزئية، والطلبات التي تحتوي على كل من العناصر الرقمية والمادية، والولايات القضائية الضريبية المعقدة، والتوجيه متعدد المستودعات، واستيفاء البائع للشحن.

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

بالنسبة للشركات التي تتطلع أيضًا إلى أتمتة الجانب المالي، راجع دليلنا إلى Shopify + Odoo Accounting Integration، أو قارن خياراتك مع مقارنة موصل Shopify-Odoo.

حدد موعدًا لاستشارة لمناقشة متطلبات أتمتة الطلب في Shopify مع فريق التكامل لدينا.

مشاركة:
E

بقلم

ECOSIRE Research and Development Team

الكتابة التقنية

يغطي فريق الكتابة التقنية في ECOSIRE موضوعات Odoo ERP والتجارة الإلكترونية عبر Shopify ووكلاء الذكاء الاصطناعي وتحليلات Power BI والأتمتة عبر GoHighLevel وأفضل ممارسات برمجيات المؤسسات. تساعد أدلتنا الشركات على اتخاذ قرارات تقنية مدروسة.

ECOSIRE

قم بتحويل أعمالك باستخدام Odoo ERP

تنفيذ وتخصيص ودعم خبير Odoo لتبسيط عملياتك.