إنشاء رموز خصم أصلية في المتجر
يدعم MailInApp الإنشاء الديناميكي لرموز الخصم الأصلية في المتجر لمتاجر Shopify وWooCommerce المرتبطة.
فبدلًا من إجبار المشترين على المرور بصفحة دفع لدى طرف ثالث أو استخدام قسائم عامة شائعة، يُصدر MailInApp تلقائيًا رموز خصم للاستخدام مرة واحدة ومقصورة على العميل مباشرة في متجرك وقت الإرسال — عبر إحدى آليتين مستقلتين، يمكن للمشروع الواحد استخدامهما معًا، أو كلٍّ على حدة، أو عدم استخدامهما إطلاقًا:
- عرض الخصم على مستوى المشروع — إعداد في صفحة الإرسال يُصدر رمزًا واحدًا لكل مستلم مطابق، نطاقه متجرك كله أو منتج واحد يُختار من قائمة منسدلة، ومصمّم ليُقرن بشريحة جمهور مبنية على سجل الشراء. راجع عرض الخصم.
- خصم عنصر المنتج لكل منتج — مفتاح تبديل في عنصر المنتج في الاستوديو نفسه، نطاقه تحديدًا المنتج الذي استورده ذلك العنصر من كتالوجك، دون حاجة إلى عامل تصفية للجمهور أو أي إعداد في صفحة الإرسال إطلاقًا. وهو مشروح من البداية إلى النهاية في رموز خصم منتجات Shopify ورموز خصم منتجات WooCommerce.
تُصدر الآليتان الرموز عبر اتصال المتجر الأساسي نفسه وتتشاركان الآليات الموضّحة أدناه؛ لكن الخصم لكل منتج يقصر الرمز إضافةً على منتج واحد ويحتفظ بعلامة فترة التهدئة الخاصة به، منفصلة عن علامة عرض الخصم على مستوى المشروع وعن علامة كل عنصر منتج آخر.
آلية العمل
حين تتضمن حملة أو رحلة عرض خصم:
- تحديد العميل ديناميكيًا:
- Shopify: يحدّد معرّف GraphQL للعميل المستلم (
gid://shopify/Customer/...) عبر Admin GraphQL قبل إنشاء عقدة الخصم. - WooCommerce: يقصر القسيمة المُنشأة على عنوان البريد الإلكتروني للمستلم تحديدًا باستخدام WooCommerce REST API.
- Shopify: يحدّد معرّف GraphQL للعميل المستلم (
- للاستخدام مرة واحدة وآمنة:
- تحمل الرموز لواحق تشفيرية عشوائية (مثل
MIA-7F3A91B2). - يُقصر كل رمز على استخدام واحد (
usage_limit: 1) ويُربط حصرًا بعنوان البريد الإلكتروني للمستلم، ما يمنع تسرّب القسائم إلى مواقع العروض.
- تحمل الرموز لواحق تشفيرية عشوائية (مثل
- تقييد اختياري بمنتج:
- الرمز المُصدر على مستوى المتجر كله ينطبق على أي عملية شراء. أما المقيّد بمنتج — عبر منتقي النطاق في عرض الخصم على مستوى المشروع، أو عبر الخصم لكل منتج في عنصر المنتج — فيُقصر على ذلك المنتج وحده: في Shopify عبر
customerGets.items.products.productsToAddعلى معرّف GID حقيقي لمنتج، وفي WooCommerce عبر حقلproduct_idsفي القسيمة.
- الرمز المُصدر على مستوى المتجر كله ينطبق على أي عملية شراء. أما المقيّد بمنتج — عبر منتقي النطاق في عرض الخصم على مستوى المشروع، أو عبر الخصم لكل منتج في عنصر المنتج — فيُقصر على ذلك المنتج وحده: في Shopify عبر
- التطبيق المسبق في صفحة الدفع في المتجر:
- رابط الرمز المُصدر على مستوى المتجر كله أو على نطاق المشروع يطبّقه في صفحة الدفع العامة لديك (
/cart/?coupon=MIA-...في WooCommerce، و/discount/MIA-...مع إعادة التوجيه إلى/في Shopify). - أما الخصم لكل منتج في عنصر المنتج فيعيد المتسوّق مباشرة إلى صفحة ذلك المنتج نفسه مع تطبيق الرمز مسبقًا (
?coupon=MIA-...ملحقًا برابط المنتج في WooCommerce؛ و/discount/MIA-...?redirect=<product path>في Shopify) — لا إلى الصفحة الرئيسية للمتجر، لأن الرسالة وجّهته إلى عنصر محدد بعينه.
- رابط الرمز المُصدر على مستوى المتجر كله أو على نطاق المشروع يطبّقه في صفحة الدفع العامة لديك (
- مرئي قبل أن ينقر المتسوّق:
- تعرض مساحة التصميم في الاستوديو شارة الخصم نفسها والسعر المشطوب نفسه الظاهرين في الرسالة المرسلة والعرض المباشر، لحظة تفعيلك الخصم لكل منتج في عنصر المنتج — دون حاجة إلى فتح العرض المباشر للتحقق.
- وفي متاجر Shopify، يعرض عنصر التطبيق الاختياري MailInApp discount badge الشارة نفسها مباشرة في صفحة المنتج الحيّة للمتسوّق الذي نقر قادمًا من الرسالة، قبل صفحة الدفع — راجع إظهار الخصم في صفحة المنتج (Shopify) أدناه للإعداد. ولا يوجد مكافئ في WooCommerce — فقسائم WooCommerce لا تملك آلية لتغيير ما تعرضه صفحة المنتج نفسها.
إظهار الخصم في صفحة المنتج (Shopify)
تعرض مساحة التصميم في الاستوديو أصلًا شارة الخصم والسعر المشطوب لحظة تفعيلك الخصم لكل منتج في عنصر المنتج — دون أي إعداد. أما وضع الشارة نفسها في واجهة متجر Shopify الحيّة فخطوة يدوية لمرة واحدة لكل متجر، لأن MailInApp لا يعدّل سمة متجرك تلقائيًا أبدًا:
- في Shopify Admin، انتقل إلى Online Store → Themes وانقر Customize على سمتك الحيّة (أو سمة مسودة).
- بدّل منتقي الصفحات في الأعلى إلى صفحة Product.
- انقر داخل القسم الذي يعرض السعر/زر الشراء — عادةً Product information أو Buy buttons.
- انقر Add block داخل ذلك القسم (لا «Add section») واختر MailInApp discount badge ضمن Apps.
- اسحبها بجوار السعر، وعدّل ألوان الشارة اختياريًا في لوحة الإعدادات، ثم Save.
إن لم يظهر Apps في منتقي العناصر لذلك القسم، فهذا يعني أن القسم لم يُفعَّل فيه دعم عناصر التطبيقات بعد — جرّب قسمًا آخر، أو اطلب من مطوّر سمتك إضافة {"type": "@app"} إلى المخطط الخاص به. ومعظم سمات Online Store 2.0 (Dawn والسمات المشتقة منها) تدعم ذلك أصلًا في قسم المنتج الرئيسي. ويتطلب ذلك سمة Online Store 2.0.
تبقى الشارة غير مرئية عمدًا عند الزيارة العادية للمتجر — فهي لا تظهر إلا حين تُحمَّل صفحة المنتج بالرابط الموقّع الذي تنتجه رسالة حقيقية بخصم لكل منتج. لذا فإن تصفّحك للصفحة بنفسك لن يُظهرها، ولا الإرسال التجريبي كذلك (فهو يعرض الرسالة مباشرة ويتخطّى خطوة إصدار الخصم التي توقّع رابط الشارة). ولرؤيتها فعلًا، أرسل إرسالًا حقيقيًا إلى مستلم — ولو كان أنت نفسك — وانقر اشترِ الآن من الرسالة المُسلَّمة. وهي معاينة للعرض فقط محسوبة من سعر المنتج نفسه؛ أما الخصم الحقيقي فلا يُطبَّق إلا في صفحة الدفع عبر الرمز ذي الاستخدام الواحد في كل الأحوال.
أنواع العروض المدعومة
- خصم بنسبة مئوية: مثل خصم 15% أو 20% على المتجر كله، أو على مجموعة، أو على منتج واحد.
- خصم بمبلغ ثابت: مثل $10 أو $25 من إجمالي قيمة السلة، أو من منتج واحد.
- فترات انتهاء الصلاحية: تحمل الرموز تاريخ انتهاء صلاحية محسوبًا تلقائيًا (مثل 7 أو 14 يومًا من وقت الإرسال) فيُفرض عنصر الاستعجال في متجر التاجر.
- فترات التهدئة على مستوى الحساب: تمنع علامات فترة التهدئة المدمجة الإفراط في منح القسائم لجهة الاتصال نفسها عبر جداول أو مشاريع متعددة — علامة واحدة لعرض الخصم على مستوى المشروع، وعلامة منفصلة لكل عنصر منتج، فلا يعطّل الخصم على منتج ما فترة التهدئة لمنتج آخر أو لعرض الخصم على مستوى المشروع أبدًا.
الإعداد والتكامل عبر API
- Shopify: يتطلب بيانات اعتماد متجر مرتبط بصلاحية
write_discounts(تُعالج أثناء الربط عبر OAuth). - WooCommerce: يتطلب مفتاح المستهلك وسرّه في REST API للمتجر المرتبط بصلاحيات القراءة/الكتابة.
ويتطلب الخصم لكل منتج في عنصر المنتج إضافةً أن يكون العنصر قد استورد منتجًا حقيقيًا عبر منتقي الاستيراد من المتجر (لا رابطًا خارجيًا مكتوبًا يدويًا) — فإصدار الرمز يحتاج إلى معرّف المنتج الرقمي في متجرك لقصر الرمز عليه.