الشروط في Shopify Flow

تواصل الشروط تشغيل سير العمل عند استيفاء قواعد معينة، مثل بداية عبارة شرطية (if-then). عند تعيين شرط، فإنك تختار معايير من الحقول الموجودة في GraphQL Admin API (مثل product.title)، وعاملًا منطقيًا (مثل يساوي)، وقيمة للمقارنة بها (مثل جينز أزرق). عندما يقيّم سير العمل شرطًا ما، يتحقق Flow من القيمة المحددة في سير العمل مقابل القيمة المسترجعة لمتجرك، ثم يعرض النتائج في تشغيل سير العمل. لفهم الحقول والقيم المتاحة لتحديد الشروط بشكل أفضل، تعرّف على كيفية معاينة بيانات المتجر.

تعرّف على المزيد حول فهم أساسيات الشروط.

أنواع البيانات المستخدمة مع Flow

عند تعيين شرط، فإنك تختار معيارًا من الحقول المتاحة في Admin API ويقوم Flow بالتقييم بناءً على القيمة المسترجعة لمتجرك.

يدعم Flow أنواع البيانات التالية:

  • عدد عشري (Float): قيم الأعداد العشرية هي أرقام تحتوي على قيمة عشرية. على سبيل المثال، 4.25.
  • عدد صحيح (Integer): قيم الأعداد الصحيحة هي أرقام كاملة لا تحتوي على قيمة عشرية. على سبيل المثال، 42.
  • تاريخ (Date): قيم التاريخ هي تمثيل رقمي للتاريخ. على سبيل المثال، 01012021.
  • سلسلة (String): قيم السلسلة هي عبارة عن نصوص. المقارنات التي تستخدم قيم السلسلة غير حساسة لحالة الأحرف.
  • قيمة منطقية (Boolean): القيم المنطقية تكون إما صواب (true) أو خطأ (false).
  • تعداد (Enum): قيم التعداد هي مجموعات من البيانات تسمح بأن يكون المتغير مجموعة من الثوابت المحددة مسبقًا.

العوامل المنطقية

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

يمكن أن تكون عوامل التشغيل إما عوامل تشغيل على مستوى الحقل، مثل يساوي أو لا يساوي، أو عوامل تشغيل القوائم، مثل واحد على الأقل من أو ليس أياً من.

عوامل التشغيل على مستوى الحقل

تُستخدَم عوامل التشغيل على مستوى الحقل لمقارنة قيمتين. يمكن لتطبيق Flow استخدام عوامل التشغيل التالية:

قائمة بعوامل التشغيل على مستوى الحقل المتاحة في Shopify Flow.
عامل التشغيلالوصفمثال
يساوي يُقارن القيم للتحقّق مما إذا كانت متطابقة. تُسترد قيمة order.currentTotalDiscountsSet.shopMoney.amount من بيانات متجرك وتُقارن بالقيمة الثانية وهي 50.

إذا كان إجمالي خصومات الطلب يساوي 50 بالضبط، فإن الشرط يكون صحيحًا.
لا يساوي يُقارن القيم للتحقّق مما إذا كانت غير متطابقة. تُسترد قيمة order.currentTotalDiscountsSet.shopMoney.amount من بيانات متجرك وتُقارن بالقيمة الثانية وهي 50.

إذا كان إجمالي خصومات الطلب لا يساوي 50 بالضبط، فإن الشرط يكون صحيحًا.
أكبر من وأكبر من أو يساوي يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى أكبر من، أو أكبر من أو تساوي، القيمة الثانية. تُسترد قيمة order.currentTotalDiscountsSet.shopMoney.amount من بيانات متجرك وتُقارن بالقيمة الثانية وهي 50.

إذا كانت قيمة إجمالي خصومات الطلب هي 137، فإن الشرط يكون صحيحًا، لأن 137 أكبر من 50.
أقل من وأقل من أو يساوي يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى أقل من، أو أقل من أو تساوي، القيمة الثانية. تُسترد قيمة order.currentTotalDiscountsSet.shopMoney.amount من بيانات متجرك وتُقارن بالقيمة الثانية وهي 50.

إذا كان إجمالي خصومات الطلب هو 47، فإن الشرط يكون صحيحًا، لأن 47 أقل من أو يساوي 50.
واحد على الأقل من يتحقّق مما إذا كان الحقل يساوي أي قيمة في القائمة المُقدَّمة. يجب إدخال القيم بشكل فردي متبوعة بالضغط على مفتاح Enter (على غرار العلامات). يؤدي تطبيقه على مصفوفة فارغة إلى تقييم خاطئ. تُقارن قيمة order.lineitem.product.title بما يلي: pineapple، وguava، وkiwi.

إذا كان عنوان منتج العنصر هو guava، فإن الشرط يكون صحيحًا؛ لأن "guava" مُدرجة في القائمة التي قدمتها.
ليس أيّاً من يتحقّق مما إذا كان الحقل لا يساوي أياً من القيم في القائمة المُقدَّمة. تُقارن قيمة order.lineitem.product.title بما يلي: pineapple، وguava، وkiwi.

إذا كان عنوان منتج العنصر هو raspberry، فإن الشرط يكون صحيحًا؛ لأن "raspberry" غير مُدرجة في القائمة التي قدمتها.
يتضمّن يُقارن القيم للتحقّق مما إذا كان أي إدخال للقيمة الأولى يتضمّن البيانات الموجودة في إدخال القيمة الثانية. تُقارن قيمة order.lineitem.product.title بما يلي: berry.

إذا كان عنوان منتج العنصر هو strawberry، فإن الشرط يكون صحيحًا؛ لأن "berry" مُدرجة في "strawberry".
لا يتضمّن يُقارن القيم للتحقّق مما إذا كان أي إدخال للقيمة الأولى لا يتضمّن البيانات الموجودة في إدخال القيمة الثانية. تتم مقارنة قيمة order.lineitem.product.title مع: berry.

إذا كان عنوان منتج البند هو apple، فسيكون الشرط صحيحًا، لأن "berry" غير متضمنة في "apple".
يبدأ بـ يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى تبدأ بالبيانات الموجودة في القيمة الثانية. تتم مقارنة قيمة order.shippingAddress.country مع: United.

إذا كانت الدولة لعنوان شحن الطلب هي United Kingdom، فسيكون الشرط صحيحًا، لأن "United Kingdom" تبدأ بكلمة "United".
لا يبدأ بـ يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى لا تبدأ بالبيانات الموجودة في القيمة الثانية. تتم مقارنة قيمة order.shippingAddress.country مع: United.

إذا كانت الدولة لعنوان شحن الطلب هي Canada، فسيكون الشرط صحيحًا، لأن "United Kingdom" لا تبدأ بكلمة "Canada".
ينتهي بـ يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى تنتهي بالبيانات الموجودة في القيمة الثانية. تتم مقارنة قيمة order.lineitems.product.title مع: pie.

إذا كان عنوان منتج البند هو key lime pie، فسيكون الشرط صحيحًا، لأن "key lime pie" تنتهي بكلمة "pie".
لا ينتهي بـ يُقارن القيم للتحقّق مما إذا كانت القيمة الأولى لا تنتهي بالبيانات الموجودة في القيمة الثانية. تتم مقارنة قيمة order.lineitems.product.title مع: pie.

إذا كان عنوان منتج البند هو chocolate cake، فسيكون الشرط صحيحًا، لأن "chocolate cake" لا تنتهي بكلمة "pie".

عوامل التشغيل Null أو الفارغة

قائمة بعوامل التشغيل Null والفارغة في شروط Shopify Flow.
عامل التشغيلالوصفشرط صحيح/خاطئ
فارغ أو غير موجوديتحقّق مما إذا كان الحقل فارغًا (ليس له قيمة) أو غير موجود (بمعنى null). تُرجع صحيح عندما يكون الحقل فارغًا أو null، وخطأ إذا كان موجودًا.
غير فارغ وموجوديتحقق مما إذا كان الحقل موجودًا وليس فارغًا أو null. تُرجع صحيح عندما يكون الحقل غير فارغ وموجودًا، وخطأ عندما يكون فارغًا.

عوامل تشغيل القوائم

تُدمج عوامل تشغيل القوائم مع عوامل التشغيل على مستوى الحقل للسماح لك بالتحقق من الشروط المطبقة على البيانات المضمّنة في القوائم.

كما في مثال "واحد على الأقل"، قد ترغب في التحقق مما إذا كان الطلب يحتوي على منتج معين (موجود في order.lineItems) بعلامة معينة (قائمة ضمن order.lineItems.product.tags). في كلتا الحالتين، يستخدم المثال عامل تشغيل القائمة واحد على الأقل من.

يوفر Flow ثلاثة عوامل تشغيل للتعامل مع القوائم: واحد على الأقل من، ولا شيء من، والكل من.

جدول عوامل تشغيل القوائم في شروط Shopify Flow.
عامل التشغيلالوصفمثال على الاستخدام
واحد على الأقل منيتحقق مما إذا كان أي عنصر في القائمة يطابق الشرط المحدد.

يُرجع true إذا طابق أي عنصر في القائمة. إذا كانت القائمة فارغة أو لم يطابق أي عنصر، فإنه يُرجع false.
تحقق مما إذا كان الطلب يحتوي على منتج بعلامة معينة باستخدام At least one of order line items.product.tags is equal to tagname.
لا شيء منيتحقق من عدم مطابقة أي من العناصر في القائمة للشرط المحدد.

يُرجع true إذا لم يطابق أي من العناصر الشرط. إذا كانت القائمة فارغة، فإنه يُرجع true.
تحقق مما إذا كان المنتج لا يحتوي على الإشارة presale باستخدام None of product tags is equal to presale.

من الأخطاء الشائعة محاولة نفي عامل التشغيل باستخدام is not equal to. استخدام هذا النفي المزدوج، None of product tags is not equal to presale، يجعل فهم الشرط صعباً وغير صالح.
الكل منيتحقق من مطابقة جميع العناصر في القائمة للشرط المحدد.

يُرجع true إذا طابق كل عنصر في القائمة الشرط.
تحقق مما إذا كانت جميع العناصر في الطلب تابعة لمورّد منتجات محدد يُدعى Acme باستخدام All of order line items have a product.vendor equal to Acme.

ترتيب الشروط

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

يستخدم هذا المثال شروطًا متعددة للتحقق مما إذا كان العميل مؤهلًا لبرنامج ولاء بناءً على إجمالي المبلغ الذي أنفقه في المتجر. يتم التحقق من الشروط بالترتيب الذي تُعرض به:

  1. إذا كان السعر الإجمالي أكبر من 1000 دولار أمريكي ووافق العميل على قبول التسويق، فأضف إليه العلامة Gold.
  2. إذا كان السعر الإجمالي أقل من 1000 دولار أمريكي ولكنه أكثر من 500 دولار أمريكي ووافق العميل على قبول التسويق، فأضف إليه العلامة Silver.
  3. إذا كان السعر الإجمالي أقل من 500 دولار أمريكي ولكنه أكثر من 200 دولار أمريكي ووافق العميل على قبول التسويق، فأضف إليه العلامة Bronze.

مثال على مسار عمل يتحقق من إجمالي مبلغ إنفاق العميل ويضيف العلامات

الجمع بين معايير متعددة في شرط واحد

عند بناء شرط، يمكنك تعيين عدة معايير. ويمكنك اختيار كيفية الجمع بين هذه المعايير المنفصلة لتحديد ما إذا كان الشرط العام صحيحًا أم خطأ.

في حال استيفاء جميع المعايير

يؤدي تحديد AND إلى نتيجة صحيحة فقط إذا كان كل معيار قمت بتعيينه صحيحًا.

على سبيل المثال، يمكنك إنشاء مسار عمل لإضافة علامات للعملاء المقيمين في كندا وينفقون أكثر من 500 دولار أمريكي في طلب واحد.

مثال على مسار عمل يستخدم الشرط و (AND)

يقوم مسار العمل بوضع علامة للعميل فقط إذا كان مقيمًا في كندا وينفق أكثر من 500 دولار أمريكي في الطلب. وإذا كان أي من هذين الشرطين خطأ، فلن يتم وضع علامة للعميل.

في حال استيفاء أي من المعايير

يؤدي تحديد OR إلى نتيجة صحيحة إذا كان أي معيار من المعايير التي قمت بتعيينها صحيحًا.

على سبيل المثال، يمكنك إنشاء مسار عمل لوضع علامات على الطلبات التي تحتوي على توصية بشأن المخاطر بـ إلغاء أو تحقيق. وطالما أن أحد هذه الشروط صحيح، يتم وضع علامة على الطلب.

مثال على مسار عمل يستخدم الشرط أو (OR)

البيانات الثابتة والديناميكية في الشروط

عادةً، تكون القيمة الثانية في الشرط عبارة عن قيمة ثابتة يتم إدخالها يدويًا (مثل product.title == "your title"). وتظل هذه القيمة كما هي في كل مرة يتم فيها تشغيل مسار العمل.

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

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

مثال على مسار عمل يضع علامة على طلب باستخدام بيانات RHS للتحقق من تطابق بلد الفوترة وبلد الشحن للعميل.

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

قد تحتاج أحيانًا إلى استخدام بيانات ديناميكية من نوع غير صحيح. على سبيل المثال، قد تحتاج إلى مقارنة رقم محفوظ كسلسلة برقم آخر. في هذه الحالة، يمكنك استخدام خيار تشغيل التعليمات البرمجية لتحويل البيانات إلى النوع الصحيح.

القوالب

تحتوي معظم القوالب الموجودة في مكتبة القوالب على شرط.

أمثلة على الشروط

التحقق مما إذا كان عنصر واحد على الأقل في القائمة يطابق شرطًا

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

في هذه الحالة، يتحقق الشرط مما إذا كان أحد المنتجات في الطلب يحتوي على علامة presale. لإنشاء هذا الشرط، يجب عليك اختيار order / lineItems / product / tags. حسب الإعداد الافتراضي، يختار Flow عنصر واحد على الأقل من كعامل تشغيل منطقي:

مثال على لوحة تكوين شرط، تعرض فحصًا لعلامة منتج واحدة على الأقل.

تُعد أجزاء عنصر واحد على الأقل من عوامل تشغيل القائمة وتُستخدم للتعامل مع المطابقة عبر عناصر قائمة متعددة. الجزء يساوي هو عامل تشغيل على مستوى الحقل يحدد ما إذا كان عنصر قائمة واحد يطابق.

التحقق مما إذا كان لا يوجد أي من العناصر في القائمة يطابق شرطًا

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

في هذه الحالة، يتحقق الشرط مما إذا كان لا توجد أي من علامات المنتجات تساوي foo:

مثال على لوحة تكوين شرط، تعرض فحصًا لعدم وجود أي علامة منتج.

سيُرجع الشرط true إذا (1) لم تكن هناك أي علامات منتجات أو (2) لم تكن أي من العلامات تساوي foo. عدا ذلك، سيُرجع false.

التحقق مما إذا كان عنصر في قائمة يطابق معايير متعددة

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

في هذه الحالة، يتحقق الشرط مما إذا كان أحد المنتجات في الطلب يحتوي على علامة presale وإذا كان يحتوي على productType بقيمة clothing.

مثال على لوحة تكوين شرط، تعرض فحصًا لعلامة منتج واحدة على الأقل وproductType.

لإنشاء هذا الشرط، يجب عليك:

  1. اختيار order / lineItems / product / tags للمعيار الأول.
  2. اختيار إضافة معيار لنفس العنصر في قائمة lineItems. ملاحظة: يعد اختيار عنصر القائمة الخاطئ هنا خطأً شائعًا.
  3. اختيار lineItems_item ككائن من المستوى الأعلى ثم product / productType` للمعيار الثاني. ملاحظة: يعد اختيار الكائن الخاطئ هنا أيضًا خطأً شائعًا.
  4. اختيار AND للجمع بين المعيارين.
  5. إدخال القيمتين presale وclothing للمعيارين.