eCommerce Automation with OpenClaw + Shopify

Automate Shopify operations with OpenClaw AI agents. Order processing, inventory sync, customer service, fraud detection, and personalization at scale.

E
ECOSIRE Research and Development Team
|19 مارس 202610 دقائق قراءة2.2k كلمات|

أتمتة التجارة الإلكترونية باستخدام OpenClaw + Shopify

Shopify هي المنصة. OpenClaw هو استخبارات العمليات التي تعمل فوقه. بينما يتعامل Shopify مع واجهة المتجر، والخروج، ومعالجة الدفع، فإن التعقيد التشغيلي لتشغيل متجر Shopify على نطاق واسع - إدارة الطلبات، وتحسين المخزون، والتواصل مع العملاء، وفحص الاحتيال، ومعالجة المرتجعات، والتخصيص - يتطلب أتمتة تتجاوز ما توفره التدفقات الأصلية لـ Shopify.

يتكامل وكلاء OpenClaw مع Shopify من خلال webhooks وواجهة برمجة التطبيقات Admin API للتعامل مع الطبقة التشغيلية بشكل مستقل. يغطي هذا الدليل ثمانية مجالات للأتمتة: معالجة الطلبات، واكتشاف الاحتيال، وإدارة المخزون، ودعم العملاء، والتخصيص، والمرتجعات والمبالغ المستردة، وأتمتة التسويق، وتنسيق البائعين.

الوجبات الرئيسية

  • OpenClaw subscribes to Shopify webhooks in real time, enabling sub-second response to order events, inventory changes, and customer actions.
  • يتعامل وكيل معالجة الطلب مع توجيه التنفيذ وإنشاء ملصق الشحن واختيار شركة النقل وإشعارات العملاء من البداية إلى النهاية.
  • يقوم وكيل كشف الاحتيال بفحص كل طلب باستخدام الإشارات السلوكية، والتحقق من صحة العنوان، وفحوصات السرعة، ودرجات مخاطر الطرف الثالث قبل بدء التنفيذ.
  • يراقب وكيل الجرد مستويات المخزون عبر المستودعات ومواقع Shopify، ويطلق عمليات إعادة الطلب، ويدير رسائل انخفاض المخزون على واجهة المتجر.
  • يتعامل وكيل خدمة العملاء مع الاستفسارات الخاصة بحالة الطلب وطلبات الإرجاع وأسئلة الدعم الشائعة تلقائيًا بصوت علامتك التجارية.
  • يقوم وكيل التخصيص بإنشاء توصيات المنتج ورسائل استرداد سلة التسوق وتسلسلات ما بعد الشراء المصممة خصيصًا لسجل العميل الفردي.
  • يمكن ملاحظة جميع عمليات الأتمتة: يظهر كل إجراء للوكيل في لوحة المعلومات مع مسار تدقيق كامل.
  • تقوم ECOSIRE ببناء وإدارة تكاملات OpenClaw Shopify لمتاجر Shopify المتنامية وعلى مستوى المؤسسات.

هندسة التكامل

يتصل OpenClaw بـ Shopify من خلال ثلاث قنوات:

Shopify Webhooks: القناة الأساسية في الوقت الفعلي. يسجل OpenClaw نقاط نهاية خطاف الويب لأنواع الأحداث التي يحتاج إلى الاستجابة لها: orders/create، orders/updated، orders/fulfilled، inventory_levels/update، customers/create، refunds/create، والمزيد. Shopify يوقع جميع حمولات webhook باستخدام HMAC-SHA256؛ يتحقق OpenClaw من التوقيع قبل المعالجة.

Shopify Admin API: واجهات برمجة تطبيقات REST وGraphQL للاستعلام عن البيانات غير المتوفرة في خطافات الويب ولإنشاء/تحديث سجلات Shopify. تتم إدارة حدود الأسعار بواسطة محول أداة Shopify الخاص بـ OpenClaw باستخدام خوارزمية الجرافة المتسربة.

Shopify Storefront API: لميزات التخصيص التي تضخ التوصيات والمحتوى الديناميكي في واجهة المتجر.

export const ShopifyTool = defineTool({
  name: "shopify",
  type: "rest",
  baseUrl: `https://${process.env.SHOPIFY_SHOP_DOMAIN}/admin/api/2024-01`,
  auth: {
    type: "header",
    header: "X-Shopify-Access-Token",
    value: "${SHOPIFY_ACCESS_TOKEN}", // Vault reference
  },
  rateLimiting: {
    type: "leaky-bucket",
    bucketSize: 40,
    refillRate: 2, // 2 requests per second (REST API rate limit)
  },
  webhookVerification: {
    secret: "${SHOPIFY_WEBHOOK_SECRET}",
    algorithm: "hmac-sha256",
  },
});

وكيل معالجة الطلب: التنفيذ بسرعة الماكينة

كل دقيقة بين تقديم الطلب وبدء التنفيذ هي دقيقة يمكن أن يحدث فيها خطأ ما - حيث يتم بيع المخزون، وتنتهي فترة انقطاع شركة الشحن، ويتضاءل حماس العميل. يبدأ وكيل معالجة الطلب تسلسل التنفيذ لحظة إنشاء الطلب.

سير عمل الإنجاز:

الخطوة 1 — التحقق من صحة الطلب: التحقق من توفر المخزون مقابل بنود الطلب. إذا كان هناك أي عنصر غير متوفر في المخزون، فتحقق مما إذا كان من الممكن تنفيذه من موقع بديل قبل بدء الطلب المؤجل.

الخطوة 2 — فحص الاحتيال: قم بتوجيه الطلب إلى وكيل كشف الاحتيال (الموضح أدناه). قم بتعليق الاستيفاء حتى اكتمال التحقق من الاحتيال (عادةً أقل من ثانيتين).

الخطوة 3 — توجيه المستودع: بالنسبة للتجار الذين لديهم مواقع تنفيذ متعددة، حدد المستودع الأمثل بناءً على توفر المخزون، والقرب من عنوان الشحن، وعبء العمل الحالي.

الخطوة 4 — اختيار شركة النقل: استنادًا إلى خدمة الشحن التي اختارها العميل وأبعاد المنتج ووزنه والوجهة، حدد خدمة شركة النقل المحددة وقم بإنشاء ملصق الشحن.

الخطوة 5 — إشعار العميل: أرسل تأكيد الطلب مع رابط التتبع لحظة إنشاء الملصق. قم بتحديث Shopify برقم التنفيذ والتتبع.

export const ProcessOrder = defineSkill({
  name: "process-order",
  tools: ["shopify", "warehouse", "shipping", "email"],
  async run({ input, tools }) {
    const order = await tools.shopify.get(`/orders/${input.orderId}.json`);

    // Check inventory
    const stockCheck = await checkInventoryForOrder(tools.shopify, order.line_items);
    if (!stockCheck.allAvailable) {
      return { processed: false, reason: "INVENTORY_SHORTAGE", shortItems: stockCheck.shortItems };
    }

    // Warehouse routing
    const warehouse = await selectWarehouse(tools.warehouse, order, stockCheck.locations);

    // Generate shipping label
    const label = await tools.shipping.createLabel({
      fromAddress: warehouse.address,
      toAddress: order.shipping_address,
      packages: buildPackages(order.line_items),
      service: order.shipping_lines[0]?.code ?? "GROUND",
    });

    // Fulfill in Shopify
    await tools.shopify.post(`/orders/${input.orderId}/fulfillments.json`, {
      fulfillment: {
        location_id: warehouse.shopifyLocationId,
        tracking_number: label.trackingNumber,
        tracking_company: label.carrier,
        tracking_urls: [label.trackingUrl],
        line_items: order.line_items.map((li) => ({ id: li.id, quantity: li.quantity })),
        notify_customer: false, // We send our own notification
      },
    });

    // Send customer notification
    await tools.email.send({
      to: order.email,
      template: "order-shipped",
      data: { order, trackingNumber: label.trackingNumber, trackingUrl: label.trackingUrl },
    });

    return { processed: true, trackingNumber: label.trackingNumber, warehouse: warehouse.name };
  },
});

وكيل كشف الاحتيال: فحص كل طلب في الوقت الفعلي

تكلف الطلبات الاحتيالية تجار Shopify ما يقرب من 0.5 إلى 2٪ من الإيرادات في عمليات رد المبالغ المدفوعة وخسائر البضائع. يقوم وكيل كشف الاحتيال بفحص كل طلب باستخدام نموذج المخاطر متعدد العوامل قبل بدء التنفيذ.

عوامل الخطر التي تم تقييمها:

عاملكيف يتم تقييمها
سرعة العنوانطلبات متعددة لنفس العنوان من طرق دفع مختلفة خلال 24 ساعة
التحقق من بطاقة BINبلد إصدار البطاقة يطابق بلد عنوان إرسال الفواتير
IP مقابل مطابقة الفواتيرتحديد الموقع الجغرافي IP يتوافق مع عنوان الفواتير
شذوذ قيمة الطلبقيمة الطلب أعلى بكثير من تاريخ العميل
مخاطر مجال البريد الإلكترونيمجال بريد إلكتروني يمكن التخلص منه أو مجال مسجل حديثًا
شحنالشحن إلى عنوان شحن معروف
عدم تطابق الاسماسم الفاتورة لا يتطابق مع اسم حامل البطاقة (إن وجد)
السرعة على البريد الإلكترونيأكثر من 3 طلبات من نفس البريد الإلكتروني في 7 أيام
export const ScreenForFraud = defineSkill({
  name: "screen-for-fraud",
  tools: ["shopify", "ipinfo", "fraud-db"],
  async run({ input, tools }) {
    const order = input.order;
    const risks: RiskFactor[] = [];

    // Address velocity
    const addressOrders = await tools.shopify.get(
      `/orders.json?shipping_address=${encodeURIComponent(order.shipping_address.address1)}&created_at_min=${hoursAgo(24)}`
    );
    if (addressOrders.orders.length > 3) {
      risks.push({ factor: "ADDRESS_VELOCITY", score: 30, detail: `${addressOrders.orders.length} orders to same address in 24h` });
    }

    // IP geolocation
    const ipInfo = await tools.ipinfo.lookup(order.browser_ip);
    if (ipInfo.country !== order.billing_address.country_code) {
      risks.push({ factor: "IP_BILLING_MISMATCH", score: 25, detail: `IP country ${ipInfo.country} vs billing ${order.billing_address.country_code}` });
    }

    // Known fraud patterns
    const fraudMatch = await tools.fraudDb.check({
      email: order.email,
      ip: order.browser_ip,
      phone: order.phone,
    });
    if (fraudMatch.known) {
      risks.push({ factor: "KNOWN_FRAUD_SIGNAL", score: 80, detail: fraudMatch.reason });
    }

    const totalRiskScore = risks.reduce((sum, r) => sum + r.score, 0);
    const recommendation = totalRiskScore >= 80 ? "cancel"
      : totalRiskScore >= 40 ? "hold-for-review"
      : "approve";

    return { recommendation, riskScore: totalRiskScore, risks };
  },
});

وكيل إدارة المخزون: لا ينفد المخزون أبدًا، ولا يتراكم أبدًا

يراقب وكيل الجرد Shopify مستويات المخزون في جميع المواقع وينسق عملية التجديد قبل حدوث نفاذ المخزون.

السلوكيات الرئيسية:

تنبيهات انخفاض المخزون: عندما ينخفض ​​مخزون أحد المنتجات إلى ما دون نقطة إعادة الطلب، يقوم الوكيل بإنشاء مهمة تجديد — إما أمر شراء (للمنتجات التي يتم الحصول عليها من الموردين) أو طلب نقل (للمنتجات المتوفرة في موقع آخر).

إدارة واجهة المتجر: عندما يصل المخزون إلى مستوى منخفض للغاية، يقوم الوكيل بتحديث رسائل واجهة المتجر الخاصة بالمنتج ("يتبقى 3 فقط!") لإثارة الحاجة الملحة. عندما ينفد مخزون أحد المنتجات، يمكن تعيينه على "مواصلة البيع" مع تاريخ تسليم تقديري محدث، أو يمكن إخفاء المنتج إذا كانت هذه هي السياسة التي تم تكوينها.

التعديل الموسمي: قبل فترات الطلب المرتفع (العطلات والمناسبات الترويجية)، يقوم الوكيل بتعديل نقاط إعادة الطلب لأعلى بناءً على أنماط الطلب التاريخية من السنوات السابقة.

export const ManageInventoryLevel = defineSkill({
  name: "manage-inventory-level",
  tools: ["shopify"],
  async run({ input, tools }) {
    const product = await tools.shopify.get(`/products/${input.productId}.json`);
    const level = await tools.shopify.get(
      `/inventory_levels.json?inventory_item_ids=${product.variants.map(v => v.inventory_item_id).join(",")}`
    );

    const totalAvailable = level.inventory_levels.reduce((sum, l) => sum + l.available, 0);

    if (totalAvailable <= input.reorderPoint && totalAvailable > 0) {
      // Low stock — update storefront
      await tools.shopify.put(`/products/${input.productId}.json`, {
        product: { metafields: [{ namespace: "inventory", key: "stock_urgency", value: `Only ${totalAvailable} left in stock!` }] },
      });
      return { action: "LOW_STOCK_FLAGGED", available: totalAvailable };
    }

    if (totalAvailable === 0) {
      await tools.shopify.put(`/variants/${product.variants[0].id}.json`, {
        variant: { inventory_policy: "continue", inventory_management: "shopify" },
      });
      return { action: "OUT_OF_STOCK_CONTINUE_SELLING", available: 0 };
    }

    return { action: "NONE", available: totalAvailable };
  },
});

وكيل خدمة العملاء: الاستجابات الصوتية للعلامة التجارية على نطاق واسع

يتعامل وكيل خدمة العملاء مع أهم خمسة أنواع من استفسارات العملاء والتي تمثل 80%+ من حجم تذاكر الدعم:

  1. حالة الطلب: الاستعلام عن الطلب في Shopify والرد بالحالة الحالية ورابط التتبع والتسليم المقدر.
  2. بدء الإرجاع: التحقق من أهلية الإرجاع وفقًا لسياسة الإرجاع، وإنشاء ترخيص إرجاع، وإرسال ملصق شحن الإرجاع.
  3. سؤال المنتج: يبحث في الأسئلة الشائعة حول المنتج ووصفه للإجابة على أسئلة ما قبل الشراء.
  4. إلغاء الطلب: إلغاء الطلبات التي لم يتم تنفيذها بعد؛ للطلبات التي تم تنفيذها، يبدأ عملية الإرجاع.
  5. طلب إعادة الشحن: بالنسبة للشحنات المفقودة أو التالفة، قم بإنشاء طلب استبدال وبدء تقديم مطالبة لشركة النقل.

يتم إنشاء الاستجابات بصوت العلامة التجارية باستخدام موجه نظام قابل للتكوين. يتم دعم اختبار أ/ب لقوالب الاستجابة من خلال تكوين الوكيل.


وكيل التخصيص: يحصل كل عميل على تجربة فريدة من نوعها

يقوم وكيل التخصيص ببناء ملفات تعريف العملاء الفردية من سجل الشراء وبيانات التصفح (عبر واجهة برمجة تطبيقات أحداث العملاء الخاصة بـ Shopify) وتفاعلات الدعم. يستخدم ملفات التعريف هذه لإنشاء:

توصيات المنتج: بالنسبة لرسائل البريد الإلكتروني بعد الشراء وأداة توصيات واجهة المتجر، يختار الوكيل المنتجات التي تكمل سجل شراء العميل وتتوافق مع حساسية السعر.

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

تقسيم الولاء: وضع علامات على العملاء تلقائيًا باستخدام شرائح دورة الحياة (الجديدة والنشطة والمعرضة للخطر والمنتهية) وتشغيل تسلسلات الاحتفاظ المناسبة. يحصل العميل "المعرض للخطر" الذي لم يقم بالشراء خلال 90 يومًا على حملة استرداد الأموال؛ يحصل العميل "الجديد" الذي أكمل للتو عملية الشراء الأولى على تسلسل الإعداد.


أتمتة عمليات الإرجاع والمبالغ المستردة

تعتبر معالجة المرتجعات يدويًا باهظة الثمن. يتولى وكيل المرتجعات دورة حياة المرتجعات بأكملها:

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

الأسئلة المتداولة

كيف يتعامل OpenClaw مع حدود أسعار API الخاصة بـ Shopify عند أحجام الطلبات العالية؟

يقوم محول أداة Shopify بتنفيذ محدد معدل التسرب الذي يتتبع حجم مجموعة API المتبقية باستخدام رأس الاستجابة X-Shopify-Shop-Api-Call-Limit. تُمنح العمليات ذات الأولوية العالية (معالجة الخطاف الإلكتروني لتأكيد الطلب) أولوية الوصول إلى الحاوية. يتم وضع العمليات غير العاجلة (استعلامات التحليلات، وإنشاء التقارير) في قائمة الانتظار وتشغيلها خلال فترات انخفاض حركة المرور. بالنسبة للمتاجر التي تتجاوز حدود REST API، يمكن للوكيل التبديل إلى GraphQL API، الذي يستخدم نموذج تحديد المعدل المستند إلى التكلفة والذي يسمح باستعلامات مجمعة أكثر كفاءة.

هل يمكن ضبط وكيل كشف الاحتيال لتقليل النتائج الإيجابية الكاذبة؟

نعم. إن أوزان عوامل الخطر وعتبات الموافقة/التعليق/الإلغاء قابلة للتكوين بالكامل. بعد النشر الأولي، توفر ECOSIRE خدمة المعايرة: حيث نقوم بتحليل أول 30 يومًا من قرارات فحص الاحتيال مقابل نتائج رد المبالغ المدفوعة الفعلية لضبط الأوزان. يمكن للتجار أيضًا إنشاء قواعد قائمة بيضاء يدوية للعملاء المتكررين الموثوق بهم أو أنماط طلبات محددة يشير إليها النموذج بشكل غير صحيح.

ماذا يحدث أثناء انقطاع خدمة Shopify أو فشل التسليم عبر الويب؟

يقوم Shopify بإعادة محاولة عمليات تسليم خطاف الويب الفاشلة لمدة 48 ساعة مع تراجع أسي. تم تصميم معالج خطاف الويب الخاص بـ OpenClaw ليكون غير فعال، حيث يؤدي تلقي نفس خطاف الويب عدة مرات إلى نفس النتيجة، وليس إجراءات مكررة. بالنسبة للسيناريوهات التي يفشل فيها تسليم خطاف الويب تمامًا، يتضمن OpenClaw مهمة تسوية تستقصي واجهة برمجة تطبيقات Shopify Orders API للطلبات غير المعالجة التي تم إنشاؤها ولكن لم يتم استلام خطافات الويب الخاصة بها مطلقًا.

هل يعمل وكيل التخصيص في المتاجر ذات قاعدة العملاء الصغيرة؟

البداية الباردة هي التحدي الرئيسي للتخصيص مع قواعد العملاء الصغيرة. بالنسبة للعملاء الجدد (أقل من 3 طلبات)، يعود الوكيل إلى التوصيات المستندة إلى الفئة والأكثر مبيعًا بدلاً من السجل الفردي. ومع تراكم سجل الشراء لدى العملاء، يصبح التخصيص أكثر دقة. يكون الوكيل أكثر فعالية بالنسبة للمتاجر التي تضم ما لا يقل عن 1000 عميل نشط و90 يومًا من سجل الطلبات.

هل يمكن أن تعمل الأتمتة جنبًا إلى جنب مع Shopify Flow؟

نعم. لا يتعارض OpenClaw مع أتمتة Shopify Flow. النمط الموصى به هو استخدام Shopify Flow لعمليات الأتمتة البسيطة القائمة على القواعد داخل نظام Shopify البيئي (وضع علامات على العملاء، وإرسال رسائل البريد الإلكتروني الأساسية) وOpenClaw لعمليات الأتمتة المعقدة عبر الأنظمة التي تتطلب التفكير، أو استدعاءات واجهة برمجة التطبيقات الخارجية، أو منطق قرار متعدد الخطوات. يمكن لـ OpenClaw أيضًا تشغيل مسارات عمل Shopify Flow من خلال Shopify API عندما يكون ذلك مناسبًا.


الخطوات التالية

يعد متجر Shopify الذي يقوم بتشغيل أتمتة OpenClaw عملاً مختلفًا بشكل أساسي عن المتجر الذي يعمل على العمليات اليدوية. تتم معالجة الطلب في ثوانٍ، وليس ساعات. يتم اكتشاف الغش قبل الوفاء. المخزون لا يخرج بصمت أبدًا. يحصل العملاء على استجابات فورية ودقيقة في أي ساعة.

توفر خدمة تكامل OpenClaw Shopify من ECOSIRE (/services/openclaw/shopify-integration) حزمة التشغيل الآلي الكاملة: اكتشاف الاحتيال الذي تمت معايرته وفقًا لفئة المنتج الخاص بك، وتوجيه التنفيذ الذي تم تكوينه لشبكة المستودعات الخاصة بك، ووكلاء خدمة العملاء المدربين على صوت علامتك التجارية، ونماذج التخصيص المبنية من بيانات العميل الخاصة بك.

اتصل بـ ECOSIRE للحصول على تقييم أتمتة Shopify وخريطة طريق التنفيذ.

E

بقلم

ECOSIRE Research and Development Team

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

الدردشة على الواتساب