مكون تشغيل الدفع على Shopify لـ Framer يقرأ عربة التسوق الحالية من localStorage، ينشئ عربة Shopify عبر Storefront API، ويعيد توجيه المستخدم إلى رابط الدفع على Shopify.
ما الذي يفعله
زر الدفع هو مكون غلاف — يقبل أي عنصر Framer كعنصره الفرعي ويجعله يطلق عملية الدفع على Shopify عند النقر. لا يمتلك الزر نفسه أي نمط بصري خاص به؛ المظهر يُحدَّد بالكامل من قِبل المكون الذي تضعه بداخله. السلوكيات الرئيسية:- يقرأ عربة التسوق من
localStorage— عند النقر، يقرأ المفتاحcartمنlocalStorage، ومن المتوقع أن يكون مصفوفة JSON من العناصر تحتوي علىvariantIdوquantity. - ينشئ عربة Shopify — يرسل طفرة GraphQL
cartCreateإلى Shopify Storefront API مع جميع العناصر في عربة التسوق. - يعيد التوجيه للدفع — يفتح
checkoutUrlالذي ولّده Shopify في تبويب جديد بعد إنشاء عربة التسوق بنجاح. - صامت عند عربة التسوق الفارغة — إذا كانت عربة التسوق فارغة أو مفقودة، فإن النقر لا يفعل شيئًا ويُسجّل تحذيرًا في وحدة التحكم.
- يقبل أي عنصر فرعي — يلتف حول أي مكون Framer أو عنصر تصميم تضعه بداخله، لذا يعود التصميم البصري للزر بالكامل إليك.
ضوابط الخصائص
| الخاصية | النوع | الوصف |
|---|---|---|
| Children | نسخة مكون | مكون أو عنصر Framer الذي يمثل الزر بصريًا. تطلق أحداث النقر على هذا العنصر عملية الدفع. يمكن استخدام أي مكون — مستطيل منسق، طبقة نص، مكون من لوحة الأصول، إلخ. |
ملاحظات
- يتطلب هذا المكون تعيين
window.DOMAINوwindow.ACCESSTOKENعالميًا على الصفحة. بدونهما، ستفشل استدعاء Shopify API. - يجب تخزين بيانات عربة التسوق في
localStorageتحت المفتاحcartكمصفوفة JSON. يجب أن يحتوي كل عنصر في المصفوفة علىvariantId(معرّف متغير Shopify الرقمي) واختياريًاquantity(يُعيَّن افتراضيًا1إذا لم يُوفَّر). - يُفتح رابط الدفع في تبويب جديد (
window.open). - إذا أعاد Shopify API رابط دفع فارغًا (مثل بسبب معرّف متغير غير صالح أو خطأ في API)، يُسجّل المكون خطأً في وحدة التحكم ولا يُعيد التوجيه.
- لا يمتلك هذا المكون واجهة مستخدم احتياطية للأخطاء — حالات الأخطاء مرئية فقط في وحدة تحكم المتصفح.