Skip to main content
راقب إجمالي السلة وأبقِ هدية مجانية متزامنة معه: أضف الهدية بمجرد أن يتجاوز المتسوق حد الإنفاق، وأزلها إذا انخفض دونه مرة أخرى.
للحصول على نسخة يهيئها التاجر مع مستويات وقواعد لكل سوق وشريط تقدم، استخدم كتلة Rewards، بدون تعليمات برمجية. هذا الحل مخصص للحالات التي لا تستطيع الكتلة التعبير عن قاعدتك فيها.

المقتطف

الصقه في Cart settings → Custom script → Initialization، وحدّد الثابتَين:

كيف يعمل

تصف reconcileGift الحالة التي ينبغي أن تكون عليها السلة، ثم تُجري تغييرًا واحدًا على الأكثر للوصول إليها:
  • مؤهلة والهدية غير موجودة → addItem يضيفها.
  • غير مؤهلة والهدية موجودة → removeItem يزيلها، بواسطة key الخاص بالسطر.
  • خلاف ذلك → لا تفعل شيئًا.
تعمل عند كل من cart_loaded (بحيث تحصل السلة المؤهلة أصلًا عند تحميل الصفحة على الهدية) و cart_updated (بحيث تتفاعل مع كل تغيير بعد ذلك). ولأن cart_loaded يُعاد بثه للمشتركين المتأخرين، يعمل هذا بغض النظر عن وقت تشغيل نصك البرمجي.
حارسا !gift / gift هما ما يمنع هذا من الدوران في حلقة. إضافة الهدية تطلق cart_updated، الذي يشغّل reconcileGift مرة أخرى، والمرور الثاني يجد الهدية موجودة بالفعل فلا يفعل شيئًا. احذف الحارسين وستحصل على حلقة لا نهائية. راجع القاعدتين.
لاحظ أن إضافة الهدية ترفع إجمالي السلة، لذا فإن الحد القريب من سعر منتج ما قد يتذبذب: إضافة هدية بقيمة 0$ آمنة، أما هدية بسعر فقد تدفع السلة بنفسها فوق الحد. أبقِ الهدية مجانية، أو قارن مع إجمالي يستثنيها.

تكييفه

اجعل الشرط عدد العناصر بدلًا من الإنفاق:
اجعل الشرط وجود منتج معين في السلة:
في دول معينة فقط. اقرأ context، المتاح قبل تحميل السلة:
استثنِ الهدية من الحد حتى لا تُبقي نفسها في السلة:
ضع علامة على الهدية بحيث تُقرأ كهدية. يمكن لـمحوّل السطر تغيير عنوان السطر وعنوان المتغير وحالة الإخفاء والخصائص الداخلية — لذا أعد تسميتها:
محوّل السطر لا يستطيع إخفاء عناصر التحكم في كمية السطر — فمُعدِّلاته الوحيدة هي setTitle و setVariantTitle و setHidden و setInternalProperties. إذا غيّر متسوق كمية الهدية، فصحّحها من داخل معالج cart_updated بدلًا من ذلك.

إلى أين تذهب بعد ذلك