التجارة السعودية · سياسات Checkout

حوّل مجموعات عملاء سلة إلى سياسة للـCheckout

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

المسار المرتبطهندسة التجارة الإلكترونية
رسم تصوري أصلي لشرائح عملاء مجهولة تمر عبر موجّه سياسات إلى بطاقات دفع وطرود شحن مختلفة؛ وليس واجهة سلة أو دليلًا على نشر حقيقي.
تصوّر بصري للفكرة — يتبعه شرح ومخطط تنفيذي داخل المقال.

تُقدَّم مجموعات العملاء عادة بوصفها ميزة تقسيم تسويقي: عملاء مميزون أو جملة أو غير نشطين أو مرتفعو القيمة. لكن المجموعة داخل تكامل مع سلة قد تكون أهم من مجرد Label. تسمح بنية المجموعة الموثقة بدمج شروط العضوية مع ميزات الدفع والشحن المسموحة، كما تستطيع العروض الخاصة في سلة استهداف معرّفات مجموعات العملاء. وهذا يجعل المجموعة حدًا لسياسة Checkout.

هذه قدرة مفيدة، لكنها تغيّر شكل الفشل أيضًا. لم يعد خطأ في استيراد Spreadsheet يؤثر في جمهور حملة فقط؛ فقد يُظهر الدفع عند الاستلام لشريحة غير مقصودة، أو يخفي وسيلة دفع عن مشترين شرعيين، أو يربط عرضًا بمجموعة خاطئة. لذلك ليس التصميم الآمن مجرد «استدعاء Endpoint المجموعة من Cron Job»، بل Control Plane صغيرة تملك حالة مطلوبة وتحققًا وإطلاقًا تدريجيًا وسجل مراجعة وتراجعًا.

يعتمد هذا الشرح على وثائق مطوري سلة الرسمية التي جرى التحقق منها في 30 سبتمبر 2026. وهو لا يعلن ميزة جديدة في سلة. الأمثلة والحدود الرقمية افتراضية صراحة، ولا ينسب أي نتيجة أداء أو أثر تجاري إلى نور.

ابدأ بالعقد الموثق

يقبل Endpoint إنشاء مجموعة عملاء في سلة اسم المجموعة ومصفوفة من الشروط وObject للميزات. أنواع الشروط الموثقة هي إجمالي المبيعات وإجمالي الطلبات وتقييم المتجر والعملاء الذين لا يملكون طلبات؛ وتشمل معاملات المقارنة «أكبر من» و«أقل من» و«بين قيمتين». ويختار مثال الميزات Slugs لوسائل الدفع وخيارات الشحن. ويتطلب إنشاء المجموعات أو تغييرها Scope باسم customers.read_write.

لا تثبّت قائمة وسائل الدفع داخل الكود اعتمادًا على مثال في الوثائق. يعيد Endpoint وسائل الدفع المتاحة الوسائل المتاحة للمتجر ويستخدم Scope باسم payments.read، كما توثق الصفحة مرشح status. طابق Slugs المطلوبة مع هذه القائمة الحية قبل نشر سياسة المجموعة، لأن وسيلة تظهر في مثال عام قد لا تكون مفعلة أو مناسبة لمتجر بعينه.

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

افصل السياسة المطلوبة عن حالة المنصة

خزّن Policy Document ذات إصدار في نظامك. يمكن لمثال افتراضي أن يسمّي مجموعة «المشترين المتكررين الموثوقين»، ويعرّف العضوية بأكثر من ثلاثة طلبات مكتملة، ويسمح ببطاقات الدفع ومدى، ويُبقي الشحن على كل الخيارات. يجب أن يحتوي المستند على نية مفهومة للبشر، وPayload الشروط المطابق لسلة، والميزات المطلوبة، والمالك، ومرجع الموافقة، وتواريخ السريان.

بعد ذلك اقرأ حالة المجموعة الحالية من سلة واحسب Diff. لا ينشئ الناشر مجموعة أو يحدّثها إلا عندما تختلف الحالة المطلوبة عن المرصودة. هذا يجعل Retry آمنًا وينتج Change Set قابلة للمراجعة: «أزل COD من المجموعة 812؛ أبقِ مدى وApple Pay؛ ولا تغيّر شرط العضوية». أما إعادة الكتابة الكاملة بلا مقارنة فتصعّب التمييز بين تغيير مقصود وDrift أو تشغيل سابق لم يكتمل.

افصل معرّف السياسة الداخلي الثابت عن Group ID في سلة. الأسماء للبشر وقد تتغير، أما الأرقام فهي مراجع تكامل. خزّن الربط لكل متجر، ولا تفترض أن المعرّفات تنتقل بين المتاجر، وسجّل أي إصدار للسياسة أنشأ الحالة البعيدة الحالية.

تحقّق قبل أي كتابة

يجب أن يعمل التحقق في ثلاث طبقات. يتحقق Schema Validation من أن نوع الشرط والمعامل وشكل القيمة يطابق العقد الموثق. ويتأكد Reference Validation من وجود كل Payment Slug في استجابة وسائل المتجر المتاحة ومن قابلية حل كل مرجع شحن. أما Business Validation فيفرض قواعد الأمان المحلية: لا تفقد المجموعة الافتراضية كل طرق الدفع الأساسية، ولا تحصل مجموعة الجملة على عرض خاص بالتجزئة، ولا تُفعّل وسيلة مرتفعة المخاطر من دون الموافقة المطلوبة.

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

استخدم أقل صلاحيات لازمة. يستطيع Audit Worker للقراءة فقط العمل بـcustomers.read وpayments.read، بينما يحتاج الناشر وحده إلى customers.read_write. وتحتاج أتمتة العروض Scopes خاصة بـspecialoffers. يقلل فصل القارئ عن الكاتب أثر تسرب Credential لمهمة، ويجعل Audit Logs أوضح.

المجموعة هي حد السياسة: عضوية متحقق منها تختار قدرات Checkout المسموحة، بينما تتحقق طبقة التحكم من كل تغيير وتنشره وتراجعه.
المجموعة هي حد السياسة: عضوية متحقق منها تختار قدرات Checkout المسموحة، بينما تتحقق طبقة التحكم من كل تغيير وتنشره وتراجعه. اضغط لعرض أكبر

استخرج العضوية من العميل لا من لقطة الطلب

تحتوي استجابة تفاصيل العميل في سلة على Group IDs الخاصة بالعميل. ويذكر سجل تغييرات Merchant API أن مصفوفة groups داخل Customer Object في List Orders أُهملت بدءًا من 18 فبراير 2026، ويوجه المطورين إلى Customer Details بدلًا منها. هذه إشارة معمارية: لا تبنِ قرارات الأهلية الحالية من لقطة مجموعة منزوعة التطبيع داخل سجل قائمة الطلبات.

للقرارات الفورية، اجلب تفاصيل العميل مع Cache قصيرة ومحدودة ومفتاحها المتجر وCustomer ID. أبطلها أو حدّثها بعد تغيير العضوية عبر تكاملك. وللتحليلات غير المتزامنة، خزّن Group IDs التي شوهدت وقت القرار مع إصدار السياسة، لكن سمّها دليلًا تاريخيًا لا حقيقة حالية.

لا تنفذ Customer Details Call لكل عنصر في تصدير ضخم للطلبات. أزل تكرار Customer IDs، والتزم بالحد الموثق للطلبات، وخزّن القراءات الناجحة مؤقتًا، وافصل «غير معروف لأن القراءة فشلت» عن «العميل لا ينتمي إلى مجموعة مطابقة». قد يمنح Fail Open دفعًا أو عرضًا غير مقصود، بينما قد يمنع Fail Closed Checkout شرعية. اختر سياسة الفشل بوضوح لكل Capability.

أطلق السياسة كما تطلق الكود

لا تغيّر المجموعة الافتراضية أولًا. أنشئ أو اختر مجموعة Canary منخفضة المخاطر، وأضف عددًا صغيرًا من حسابات الاختبار عبر مسار المجموعة الموثق، ثم تحقق من Storefront من منظورها. افحص وسائل الدفع الظاهرة، وخيارات الشحن، وأهلية العرض، والضريبة والإجمالي، وCheckout على الهاتف والحاسوب، والمسارين العربي والإنجليزي.

رقِّ السياسة على مراحل: حسابات داخلية، ثم شريحة صغيرة مؤهلة، ثم الجمهور المقصود. بين المراحل، قارن السياسة المطلوبة بحالة المجموعة المرصودة في سلة وخذ عينات من استجابات Customer Details. أوقف الترقية عندما تتجاوز أخطاء التحقق أو Drift غير المتوقع أو تراجع Checkout حدًا معلنًا مسبقًا.

يجب أن يعيد Rollback إصدار السياسة السابق كاملًا، لا أن ينفذ Patch عكسية مرتجلة. احتفظ بالشروط والميزات السابقة وأفعال العضوية وإعداد العرض المرتبط. وقد يكون أسرع تراجع آمن هو تعطيل العرض التابع أو استعادة إتاحة دفع واسعة قبل إصلاح التقسيم؛ حدّد ترتيب ذلك في Runbook.

اربط العروض من دون اقتران شامل

تتضمن وثائق إنشاء عرض خاص في سلة حقل customer_groups ضمن أمثلة الطلب. يتيح ذلك عروضًا مستهدفة، لكنه ينشئ Dependency Graph: إصدار السياسة ← Group ID ← Offer ID. سجّل هذه العلاقات حتى لا تُحذف مجموعة أو يعاد استخدامها بينما لا يزال عرض نشط يشير إليها.

افصل التأهل عن المنفعة. تجيب المجموعة عن «من المؤهل؟»، بينما يجيب العرض عن «ما المنفعة النشطة، ولأي منتجات وبلدان وقنوات وتواريخ؟». دمج الاثنين في أتمتة معتمة يجعل إيقاف Promotion مع الاحتفاظ بالشريحة لاستخدامها في قواعد الدفع أو الشحن أمرًا صعبًا.

اعرض Dry Run يسرد المجموعات والعروض المتأثرة قبل أي كتابة. في Promotion مجدولة، افحص عضوية المجموعة وقدرات Checkout المرتبطة قبل وقت البدء، ثم تحقق مرة أخرى بعد التفعيل. تثبت استجابة API الصالحة قبول الكتابة؛ لكنها لا تثبت صحة رحلة المشتري كاملة.

راقب النتائج لا نجاح API فقط

قس نشر السياسة منفصلًا عن نتائج العملاء. تشمل المقاييس التشغيلية أخطاء التحقق ومعدل أخطاء API وPolicy Drift ووقت التقارب ومدة Rollback. وتشمل مقاييس المنتج التحول من بدء Checkout إلى الشراء، واختيار وسيلة الدفع، وفشل الدفع، والمغادرة عند اختيار الشحن، واتصالات الدعم، واسترداد العروض بحسب إصدار السياسة.

قسّم المقاييس بحسب المجموعة وإصدار السياسة، لكن تجنب Labels عالية Cardinality مثل Customer ID. وراقب Guardrails بجوار Conversion: قد يكشف تعرض COD أو معدل الاسترداد والإلغاء أو استثناءات التسليم أو كلفة الخصم سياسة تزيد الطلبات لكنها تضر Unit Economics.

الارتباط ليس سببية. ستختلف مجموعة VIP عن الافتراضية قبل إطلاق سياسة جديدة. إذا كان القرار يحتاج دليلًا سببيًا، فاستخدم تجربة مصممة جيدًا داخل جمهور مؤهل، واترك قيود الأمان خارج Randomization. لا تقارن متوسطات المجموعات الخام ثم تسمّي الفرق أثرًا.

عقد عملي للنشر

قبل نشر سياسة مجموعة، اطلب: Desired State ذات إصدار؛ وقراءة للحالة البعيدة؛ والتحقق من مراجع الدفع والشحن؛ وضوابط صريحة للمجموعة الافتراضية؛ ومعاينة Diff؛ وصلاحيات محدودة؛ وحسابات Canary؛ واختبار Storefront؛ وحدود ترقية؛ ومراقبة Drift؛ وإصدار Rollback مختبر.

النموذج الذهني المفيد بسيط: تحتفظ سلة بإعدادات المجموعة والدفع والشحن والعرض التشغيلية. ويمتلك تكاملك النية والتحقق والتسلسل والدليل. عندما تتحكم المجموعات في قدرات Checkout، أدرها بانضباط Feature Flags أو Access Policy: تغييرات صغيرة، وفروق ظاهرة، وتعرض تدريجي، وقرارات قابلة للعكس.

المراجع الرسمية

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

إعداد: Noor Yasser

من القرار إلى التنفيذ

تعمل على تحدٍ تقني مشابه؟

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

احجز لقاءً لمدة ٣٠ دقيقةالخدمة المرتبطةتطبيقات سلة وزد وأدوات التجّارمشروع من الأعمالMember Plus