Shopify
اربط متجر Shopify لمزامنة عملائه في قائمة جهات اتصال في MailInApp، وتشغيل الرحلات بناءً على أحداث المتجر الحقيقية، ورؤية الإيرادات منسوبة إلى حملة أو نسخة.
ربط متجرك
تُربط متاجر Shopify من جهة Shopify، لا من MailInApp: ففي لوحة إدارة Shopify، ثبّت MailInApp من Shopify App Store (أو افتحه من Apps إن كان مثبّتًا بالفعل) ووافق على الوصول في شاشة OAuth الخاصة بـ Shopify. يطلب MailInApp الصلاحيات read_customers، وread_orders، وread_products (وكلها للقراءة فقط)، إضافة إلى write_discounts كي يتمكن من إصدار رموز الخصم للاستخدام مرة واحدة الموصوفة أدناه — ولا يطلب أبدًا صلاحية الكتابة في منتجات متجرك أو طلباته أو عملائه أنفسهم. وعند الموافقة، ينشئ MailInApp قائمة جهات اتصال مخصّصة للمتجر ويبدأ في الخلفية ملئًا أوّليًا بأثر رجعي للعملاء، بحدّ أقصى 5,000 عميل لكل ربط. أما المتجر الذي يضم عملاء أكثر من ذلك فتواصل قائمته النمو من هناك عبر Webhooks الخاصة بـ Shopify، لكن دون ملء دفعة واحدة بأثر رجعي يتجاوز الحدّ.
ثم يحيلك Shopify إلى MailInApp لتسجيل الدخول إلى حسابك الحالي أو إنشاء حساب مجاني — ويُربط المتجر بالحساب الذي تسجّل الدخول إليه أيًّا كان، وتعود إلى تطبيق MailInApp داخل لوحة إدارة Shopify. ولا يوجد في لوحة تحكم MailInApp نفسها نموذج «أدخل نطاق myshopify.com الخاص بك»: فصفحة الإعدادات ← التكاملات تعرض المتجر المرتبط، وحالة مزامنته، وزر فصل.
ربط Shopify مجاني في كل باقة، بما فيها المجانية. وباقة MailInApp نفسها تُدار وتُفوتر بالكامل عبر Shopify، من تطبيق MailInApp داخل لوحة إدارة Shopify — فلا تمر عبر صفحة الدفع بالبطاقة أو PayPal الخاصة بـ MailInApp.
ما يفعله
- مزامنة العملاء — يصل عملاء Shopify إلى قائمة جهات اتصال مخصّصة لهذا التكامل، وتبقى محدّثة بعد ذلك عبر Webhooks الخاصة بـ Shopify نفسه (
customers/create، إضافة إلىcheckouts/createوorders/paidللمشغّلات أدناه) بدلًا من إعادة الاستطلاع الدوري. - مشغّلات الرحلات — يستطيع المتجر المرتبط إطلاق مشغّل التخلّي عن السلة في الرحلة (عملية دفع بدأت ولم تكتمل) ومشغّل الشراء (طلب مدفوع)، فتعمل أتمتة سلسلة الترحيب أو السلة المتروكة على نشاط Shopify الحقيقي بدلًا من الاقتصار على الدفع في عنصر المنتج الخاص بـ MailInApp. راجع الرحلات.
- نسبة الإيرادات — تُضاف حملة الطلب/نسخته، حيثما أمكن تحديدها، إلى أرقام الإيرادات نفسها في الردود واختبار A/B التي ينتجها أصلًا طلب الدفع الأصلي.
- شرائح سجل الشراء وعروض الخصم — تُزامَن بنود الطلبات إلى جانب العملاء، فيستطيع عامل تصفية الجمهور مطابقة «اشترى المنتج X بين التاريخ A والتاريخ B» (راجع سجل الشراء)، ويستطيع المشروع إصدار رمز خصم Shopify للاستخدام مرة واحدة لكل مستلم مطابق، يُسترد في صفحة الدفع في متجرك (راجع عرض الخصم). وتُزامَن الطلبات الجارية من Webhook
orders/paidتلقائيًا؛ أما المتجر المرتبط قبل إطلاق هذه الميزة، أو ذو السجل الأقدم، فيحتاج إلى سحب لمرة واحدة عبر ملء سجل الطلبات بأثر رجعي من الإعدادات ← التكاملات — مقصورًا على آخر 60 يومًا تقريبًا ما لم توافق Shopify بشكل منفصل على منح هذا التطبيق وصولًا إلى سجل الطلبات الكامل في متجرك. ويمكن لـ عنصر المنتج المستورد من كتالوجك أن يُصدر بشكل مستقل خصمًا لكل منتج خاصًا به — مقصورًا على ذلك المنتج وحده، دون حاجة إلى عامل تصفية للجمهور — راجع الخصومات الأصلية في المتجر ورموز خصم منتجات Shopify. - كتالوج المنتجات للاستوديو — تُزامَن قوائم المنتجات النشطة في متجرك إلى MailInApp أيضًا، وتُحدَّث تلقائيًا بالإيقاع نفسه الذي يُحدَّث به العملاء (دون زر منفصل). ويبحث منتقي الاستيراد من المتجر في عنصر المنتج في هذا الكتالوج المُزامَن ويملأ اسم العنصر ووصفه وصورته وسعره من منتج حقيقي — نسخة لمرة واحدة، لا رابط حيّ، فلا ينحرف أي شيء في رسالة مرسلة عمّا راجعته. كما يُزامن صفحة كل منتج (من معرّف handle الخاص به في Shopify)، وحين تتوفّر، يضبط العنصر على الربط بصفحة الدفع في متجر خارجي موجّهًا إليها مباشرة — فيصبح المنتج المستورد جاهزًا للبيع في متجر Shopify الخاص بك دون أي شيء إضافي لضبطه؛ وأعد تبديله يدويًا إلى الدفع عبر MailInApp إن فضّلت تلقي الدفع عبر حساب Stripe المرتبط بدلًا من ذلك. أما المتجر المرتبط قبل إطلاق هذه الميزة فيحتاج إلى فصل سريع في الإعدادات ← التكاملات، ثم إعادة فتح MailInApp من لوحة إدارة Shopify، لمنح صلاحية
read_productsالجديدة التي يشترطها Shopify — ولا يعرض المنتقي شيئًا حتى ذلك الحين.
سلامة الاتصال وإعادة الربط
يُصدر Shopify لـ MailInApp رمز وصول قصير الأمد (صالحًا لنحو ساعة) إلى جانب رمز تجديد متناوب، ويجدّد MailInApp هذا الزوج تلقائيًا في الخلفية — فتظل مزامنة العملاء ومشغّلات الرحلات وإصدار رموز الخصم تعمل كلها دون أي إجراء منك في الاستخدام العادي.
وإن ألغى Shopify رمز التجديد ذاك أو أبطله يومًا — مثلًا لأن التطبيق أُزيل وأُعيد تثبيته خارج MailInApp، أو أُلغي الوصول يدويًا من لوحة إدارة Shopify، أو انتهت صلاحية الرمز ببساطة بسبب خمول طويل — يتوقف MailInApp عن قصد بدلًا من إعادة المحاولة بصمت ببيانات اعتماد قديمة، وتعرض صفحة الإعدادات ← التكاملات حالة المتجر تلزم إعادة الربط. وهذه ضمانة أمنية، لا بلاغ عن خلل: فـ MailInApp لا يعيد المصادقة نيابة عنك أبدًا دون موافقتك على منح OAuth جديد عبر شاشة Shopify نفسها.
إن رأيت تلك الحالة، فانقر فصل في الإعدادات ← التكاملات، ثم افتح MailInApp مجددًا من لوحة إدارة Shopify ووافق على شاشة Shopify لمنح زوج رموز جديد نظيف. يستغرق ذلك بضع ثوانٍ، ولا يكلّف شيئًا، ولا يمس جهات الاتصال أو الطلبات المُزامَنة سلفًا — إذ تُستأنف المزامنة ببساطة بمجرد الموافقة على الاتصال الجديد.
فصل الربط
يوقف زر فصل في الإعدادات المزامنة وأي معالجة لاحقة لـ Webhooks فورًا. ويبقى العملاء المُزامَنون سلفًا في قائمة جهات اتصالهم — ففصل تكامل لا يحذف جهات الاتصال أبدًا، لأنها قد تكون أصلًا جمهور إرسال لمشاريع أخرى. وإزالة التطبيق من جهة Shopify تعمل بالطريقة نفسها في البداية. وبعد نحو 48 ساعة، حين يُطلق Webhook حذف البيانات الخاص بـ Shopify، يمحو جهات الاتصال المُزامَنة وسجلات السلال أيضًا بالكامل — وهي فترة السماح القياسية التي يجب على كل تطبيق Shopify احترامها.