تأكيد طلبات سلة على واتساب

عملاء متجرك على سلة تصلهم رسالة واتساب لحظة الطلب.

متوسط توفّر ~6 ساعة شهريًا تطبيقات المنطقةبواسطة فريق Flowngn

تعمل مع n8n · Make · Zapier

كيف تعمل

المشغّل: Webhook — حدث order.created من سلة
  1. استقبل حدث الطلب الجديد من سلة.
  2. استخرج رقم الطلب واسم العميل ورقم هاتفه.
  3. تابع فقط إذا وُجد رقم هاتف.
  4. أرسل قالب واتساب معتمدًا بالعربية.

المخطط

trueSalla orderWebhook{ }Read Salla orderCode⑂Has phone?IfWSend confirmationWhatsApp Business Cloud
مشغّل تطبيق منطق كود

الكود

كود JavaScript المستخدم في خطوات Code، وهو مضمَّن بالفعل في القالب بالأسفل.

Read Salla order · عقدة Code
// Mode: Run Once for Each Item
// Salla order webhook → clean fields.
// Run one test order first and check the field names in the webhook data.
const body = $json.body || {};
const o = body.data || {};
const c = o.customer || {};

return {
  json: {
    event: body.event,
    order_id: o.reference_id || o.id,
    customer_name: [c.first_name, c.last_name].filter(Boolean).join(" "),
    phone: `${c.mobile_code || ""}${c.mobile || ""}`.replace(/[^0-9]/g, ""),
    email: c.email || "",
    total: o.amounts?.total?.amount ?? o.total?.amount ?? "",
    currency: o.amounts?.total?.currency ?? o.currency ?? "",
    payment_method: o.payment_method || "",
    city: o.shipping?.address?.city || c.city || "",
    items: (o.items || []).map((i) => `${i.quantity}× ${i.name}`).join("، "),
    date: o.date?.date || body.created_at || "",
  },
};

ابنِها بأداتك

اختر أداتك — نفس الأتمتة، خطوة بخطوة.

انسخه والصقه مباشرة في مساحة عمل n8n (Ctrl+V)، أو حمّله واستخدم Import from File. بعد ذلك اربط حساباتك واستبدل كل قيمة تبدأ بـ YOUR_.

ملف Workflow JSON
عرض الكود (165 سطر)
{
  "name": "تأكيد طلبات سلة على واتساب (Flowngn)",
  "nodes": [
    {
      "parameters": {
        "content": "## تأكيد طلبات سلة على واتساب\nعملاء متجرك على سلة تصلهم رسالة واتساب لحظة الطلب.\n\n**Setup**\n1. Open each node and connect your own credentials.\n2. Replace every YOUR_… placeholder.\n3. Test once, then activate.\n\nFree template from Flowngn",
        "height": 260,
        "width": 340
      },
      "id": "4582ffa0-b14a-4d3f-a4ae-9194a533337e",
      "name": "Setup notes",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -420,
        -60
      ]
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "salla-order",
        "options": {}
      },
      "id": "4582ffa0-b14a-4d3f-a4ae-9194a533337e",
      "name": "Salla order",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 2,
      "position": [
        0,
        0
      ],
      "webhookId": "4582ffa0-b14a-4d3f-a4ae-9194a533337e"
    },
    {
      "parameters": {
        "jsCode": "// Mode: Run Once for Each Item\n// Salla order webhook → clean fields.\n// Run one test order first and check the field names in the webhook data.\nconst body = $json.body || {};\nconst o = body.data || {};\nconst c = o.customer || {};\n\nreturn {\n  json: {\n    event: body.event,\n    order_id: o.reference_id || o.id,\n    customer_name: [c.first_name, c.last_name].filter(Boolean).join(\" \"),\n    phone: `${c.mobile_code || \"\"}${c.mobile || \"\"}`.replace(/[^0-9]/g, \"\"),\n    email: c.email || \"\",\n    total: o.amounts?.total?.amount ?? o.total?.amount ?? \"\",\n    currency: o.amounts?.total?.currency ?? o.currency ?? \"\",\n    payment_method: o.payment_method || \"\",\n    city: o.shipping?.address?.city || c.city || \"\",\n    items: (o.items || []).map((i) => `${i.quantity}× ${i.name}`).join(\"، \"),\n    date: o.date?.date || body.created_at || \"\",\n  },\n};",
        "mode": "runOnceForEachItem"
      },
      "id": "4582ffa0-b14a-4d3f-a4ae-9194a533337e",
      "name": "Read Salla order",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        300,
        0
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "id": "c1",
              "leftValue": "={{ $json.phone }}",
              "rightValue": "",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "4582ffa0-b14a-4d3f-a4ae-9194a533337e",
      "name": "Has phone?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        600,
        0
      ]
    },
    {
      "parameters": {
        "operation": "sendTemplate",
        "phoneNumberId": "YOUR_PHONE_NUMBER_ID",
        "recipientPhoneNumber": "={{ $json.phone }}",
        "template": "YOUR_ORDER_TEMPLATE|ar",
        "components": {
          "component": [
            {
              "type": "body",
              "bodyParameters": {
                "parameter": [
                  {
                    "type": "text",
                    "text": "={{ $json.customer_name || 'عميلنا العزيز' }}"
                  },
                  {
                    "type": "text",
                    "text": "={{ $json.order_id }}"
                  },
                  {
                    "type": "text",
                    "text": "={{ $json.total }} {{ $json.currency }}"
                  }
                ]
              }
            }
          ]
        }
      },
      "id": "4582ffa0-b14a-4d3f-a4ae-9194a533337e",
      "name": "Send confirmation",
      "type": "n8n-nodes-base.whatsApp",
      "typeVersion": 1,
      "position": [
        900,
        0
      ]
    }
  ],
  "connections": {
    "Salla order": {
      "main": [
        [
          {
            "node": "Read Salla order",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Salla order": {
      "main": [
        [
          {
            "node": "Has phone?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Has phone?": {
      "main": [
        [
          {
            "node": "Send confirmation",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  },
  "tags": []
}

← افتحها في ساحة التجربة لتعديلها

نصائح

  • أضف الـ webhook من بوابة شركاء سلة (تطبيقك) أو إعدادات الـ webhooks في المتجر.
  • استخدم خيار الرمز أو التوقيع في سلة وتحقق منه عبر إعدادات المصادقة في عقدة Webhook.

أتمتات مشابهة