إرسال طلب لـ Admin API

يمكن أن يَستخدِم إجراء إرسال طلب لـ Admin API معظم عمليات التعديل (mutations) في GraphQL Admin API لإجراء تغييرات على متجرك، بما في ذلك عمليات mutation غير المتاحة بعد كـ إجراءات في Flow.

الحقول

يحتوي إجراء إرسال طلب لـ Admin API على الحقول التالية.

الحقول المستخدَمة في إجراء إرسال طلب لـ Admin API.
الحقلالوصف
العملية (Mutation)مطلوب. عملية mutation لـ GraphQL Admin الخاصة بـ Shopify التي تريد استدعاءها. عملية mutation هي واجهة برمجة تطبيقات (API) تتخذ إجراءً أو تُحدّث البيانات.
مُدخلات العملية (Mutation inputs)مطلوب. البيانات (بتنسيق JSON) التي تحتاج إلى إرسالها كجزء من طلب عملية mutation الخاص بك. تتطلب كل عملية mutation مجموعة مختلفة من البيانات، وهي موثقة في الرابط المتاح لكل عملية mutation. لإنشاء تنسيق JSON الضروري، يمكنك استخدام Liquid أو إجراء تشغيل الكود (Run code).

المشغّلات

يمكن استخدام إجراء إرسال طلب لـ Admin API في أي سير عمل، مع أي مشغّل، طالما أن سير العمل يوفر البيانات اللازمة لإنشاء مُدخلات العملية (mutation inputs).

أمثلة

مثال 1: تحديث القالب المستخدَم لمنتج

في هذا المثال، سنستخدِم إجراء إرسال طلب لـ Admin API لاستدعاء عملية mutation التي تسمى productUpdate لتحديث القالب المستخدَم لمنتج.

حقل id مطلوب ويجب أن يكون معرّف GID صالحًا للمنتج. هنا، نحدده باستخدام متغير Liquid {{product.id}}. يفترض هذا أن سير العمل الخاص بك يحتوي على مشغّل يوفر كائن منتج.

حقل templateSuffix هو اسم القالب الذي تريد تطبيقه على المنتج. على سبيل المثال، إذا كنت تريد تطبيق قالب pre-order، فعليك تعيين templateSuffix إلى pre-order.

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

مثال 2: تحديث حالة الإعفاء الضريبي لعميل

في هذا المثال، سنستخدِم إجراء إرسال طلب لـ Admin API لاستدعاء عملية mutation التي تسمى customerUpdate لتحديث حالة الإعفاء الضريبي لعميل.

حقل id مطلوب ويجب أن يكون معرّف GID صالحًا للعميل. هنا، نحدده باستخدام متغير Liquid {{order.customer.id}}. يفترض هذا أن سير العمل الخاص بك يحتوي على مشغّل يوفر كائن طلب.

حقل taxExempt هو قيمة منطقية (boolean) تشير إلى ما إذا كان العميل معفى من الضرائب. في هذا المثال، قمنا بتعيينه إلى true.

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

مثال 3: تحديث الإعدادات المحلية لعميل

في هذا المثال، سنستخدِم إجراء إرسال طلب لـ Admin API لاستدعاء عملية mutation التي تسمى customerUpdate لتحديث الإعدادات المحلية لعميل.

حقل id مطلوب ويجب أن يكون معرّف GID صالحًا للعميل. هنا، نحدده باستخدام متغير Liquid {{customer.id}}. يفترض هذا أن سير العمل الخاص بك يحتوي على مشغّل يوفر كائن عميل.

حقل locale عبارة عن سلسلة نصية تمثل الإعدادات المحلية للعميل. في هذا المثال، قمنا بتعيينه إلى en.

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

نصائح Liquid

يدعم Flow عامل تصفية json لـ Liquid الذي يمكن أن يكون مفيدًا في إنشاء المُدخل. تستخدم الأمثلة التالية جميعها عملية mutation التي تسمى customerUpdate وتفترض أن سير العمل الخاص بك يحتوي على مشغّل يوفر كائن عميل.

العمل مع السلاسل النصية

يُحدّث المثال التالي الملاحظة الخاصة بالعميل:

{% assign revisedNote = customer.note | append: " Hello from Flow!" %}

{
  "input": {
    "id": "{{ customer.id }}",
    "note": {{ revisedNote | json }},
  }
}

يضيف عامل التصفية json أحرف تجاوز (escape) إلى السلسلة النصية لضمان صحة تنسيق JSON. يؤدي هذا إلى ظهور تنسيق JSON التالي بعد تشغيل سير العمل:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "note": "Had a \"great experience\" with their latest order. Hello from Flow!",
  }
}

العمل مع المصفوفات

مثال على مصفوفة

يُحوّل عامل التصفية json مصفوفة Liquid إلى مصفوفة JSON. يُخرج المثال التالي مصفوفة JSON عند توفير مصفوفة Liquid:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ tags | json }}
  }
}

ينتج عن هذا تنسيق JSON التالي بعد تشغيل سير العمل:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["tag1","tag2","tag3"]
  }
}

مثال على حلقة التكرار (For loop)

يَستخدِم المثال التالي حلقة تكرار (loop) لإخراج عناصر مصفوفة، مفصولة بفواصل:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": [
      {% for tag in tags %}
        "{{ tag }}"{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

ينتج عن هذا تنسيق JSON التالي عند تشغيل سير العمل:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": [
        "tag1",
        "tag2",
        "tag3"
    ]
  }
}

مثال على Map

يمكن استخدام عامل تصفية map للحصول على مصفوفة لخاصية معينة من مصفوفة كائنات. في المثال التالي، يتم استخراج مصفوفة من خصائص city من مصفوفة عناوين العملاء:

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ customer.addresses | map: "city" | json }}
  }
}

ينتج عن هذا تنسيق JSON التالي بعد تشغيل سير العمل:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

القيود

يتضمن إجراء إرسال طلب Admin API القيود التالية:

  • سيعرض الإجراء قائمة Mutations وMutation inputs من إصدار Admin API الذي يستخدمه Flow.
  • عند إصدار إصدارات جديدة من API، قد يفشل هذا الإجراء إذا كان يستخدم عملية mutation أو حقلاً تم تغييره أو إيقافه.
  • لا يدعم الإجراء استعلامات GraphQL، بل يدعم عمليات mutation فقط.
  • لا يدعم الإجراء عمليات mutation التي تم إيقافها.
  • لا يدعم الإجراء بعض عمليات mutation الخاصة بتطبيقات معينة، بما في ذلك بعض عمليات mutation الخاصة بالاشتراكات، والأنشطة التسويقية، والخصومات.
  • لا يدعم الإجراء عمليات mutation غير المتزامنة أو عمليات mutation التي تُرجع نوع Job.
  • لا يدعم الإجراء عمليات mutation التي لا تنفذ واجهة Node.

القوالب

إضافة عنصر مجاني (بخصم 100%) إلى الطلبات الجديدة

يضيف هذا القالب عنصراً مجانياً ومخفضاً إلى الطلبات الجديدة إذا كان العنصر متوفراً في المخزون. فهو يتحقق من المخزون، ويطبق خصمًا بنسبة 100%، ويحدّث الطلب دون إشعار العميل. سيكون هذا التشغيل الآلي مفيداً من أجل (1) تعزيز رضا العملاء من خلال تضمين عنصر مجاني مفاجئ في طلباتهم، أو (2) الترويج للمنتجات الجديدة أو الأقل شهرة من خلال إضافتها كعينات مجانية في الطلبات، أو (3) تبسيط العروض الترويجية من خلال أتمتة إدراج العناصر المجانية وخصمها. عرض القالب

السماح بالطلب للشركات التي تم إنشاؤها من خلال طلبات حساب الشركة

تعيين صلاحية طلب عندما يتم إنشاء شركة عن طريق طلب حساب شركة. عرض القالب

تغيير قالب المنتج عندما تنفد المتغيرات من المخزون أو تعود إليه

تحديث قالب منتج بناءً على المخزون لمتغيرات المنتج. يتيح لك سير العمل التبديل بين قوالب المتوفر في المخزون (القالب الافتراضي للمتجر)، وغير المتوفر في المخزون، وعندما يكون متغيراً واحداً أو أكثر غير متوفر في المخزون. عرض القالب

تنفيذ أي عناصر رقمية في طلب

تنفيذ أي عناصر لا تتطلب تسليمًا ماديًا، مثل العناصر الرقمية، أو التي تتطابق مع قائمة من رموز التخزين التعريفي (SKU). يتم تشغيله مرة واحدة لكل موقع تنفيذ ('طلب التنفيذ') لطلب جديد. عرض القالب