تخصيص حملات Shopify Messaging باستخدام Liquid

تُعد Liquid لغة برمجة بسيطة وسهلة الاستخدام من Shopify، وهي نفس لغة البرمجة التي تُبنى بها السمات المتوفرة في Shopify Theme Store.

يمكنك استخدام كود Liquid المخصص لتحسين رسائل Shopify Messaging من خلال إنشاء رسالة بريد إلكتروني مبرمجة بالكامل أو إضافة قسم Liquid مخصص إلى قالب. تتيح لك هذه الخيارات إدخال كود Liquid أو HTML مخصص.

يمكنك استخدام كود Liquid المخصص لعرض أصول مخصصة مثل الصور المتجاورة، والأزرار المخصصة، والصور ذات الأحجام المخصصة، والأحجام المخصصة للأقسام.

الاعتبارات

راجع الاعتبارات التالية قبل البدء في إضافة كود Liquid المخصص إلى رسائل Shopify Messaging:

  • يجب أن تكون المتغيرات التي تقوم بتضمينها في الكود الخاص بك مدعومة بواسطة كود Liquid المخصص.
  • لا يمكنك استخدام سوى جهاز كمبيوتر مكتبي لإنشاء قسم Liquid مخصص.
  • يُعد متغير unsubscribe_link أو unsubscribe_url مطلوبًا في رسائل البريد الإلكتروني المخصصة بـ Liquid. إذا كنت قد فعّلت ميزة تتبع الفتح، فسيكون متغير open_tracking مطلوبًا أيضًا. تعرّف على المزيد حول إضافة المتغيرات المطلوبة إلى بريدك الإلكتروني.
  • يخضع الكود الذي تدخله للحدود التالية:
    • بحد أقصى 50 كيلوبايت (KB) لأقسام Liquid المخصصة.
    • بحد أقصى 500 كيلوبايت (KB) لرسائل البريد الإلكتروني المبرمجة باستخدام كود Liquid المخصص.

إنشاء بريد إلكتروني مبرمج مخصص باستخدام Liquid

إذا أردت استخدام كود Liquid مخصص عند إنشاء رسالة بريد إلكتروني، فيمكنك إما إضافة قسم Liquid مخصص، أو إنشاء رسالة بريد إلكتروني بالكامل من كود Liquid المخصص عن طريق تحديد كتابة الكود بنفسك عندما تقوم بـ إنشاء حملة Shopify Messaging.

متغيرات Liquid المدعومة في كود Liquid المخصص

يمكنك استخدام المتغيرات المدعومة لتخصيص رسائل البريد الإلكتروني الخاصة بك في Shopify Messaging عبر Liquid. يمكنك مراجعة قوائم متغيرات Liquid المدعومة لأنواع القوالب التالية:

متغيرات Liquid المدعومة لجميع قوالب البريد الإلكتروني

يمكنك استخدام المتغيرات التالية لتخصيص أي من رسائل البريد الإلكتروني الخاصة بك في Shopify Messaging عبر Liquid.

وصف لمتغيرات Liquid المدعومة في Shopify Messaging
المتغيرالوصف
all_products
جميع المنتجات في متجرك.
customer.accepts_marketing
يعرض true إذا كان العميل يقبل التسويق، ويعرض false إذا كان العكس.
customer.addresses
يعرض جميع العناوين المرتبطة بالعميل.
customer.addresses_count
يعرض عدد العناوين المرتبطة بالعميل.
customer.b2b?
يعرض true إذا كان العميل من فئة عملاء B2B، ويعرض false إذا كان العكس.
customer.current_location
يعرض موقع الشركة المحدد حاليًا للعميل.
customer.default_address
يعرض العنوان الافتراضي للعميل.
customer.email
يعرض عنوان البريد الإلكتروني للعميل.
customer.first_name
يعرض الاسم الأول للعميل.
customer.has_account
يعرض true إذا كان البريد الإلكتروني للعميل مرتبطًا بـ حساب عميل، ويعرض false إذا كان العكس.
customer.has_avatar?
يعرض true إذا كان لدى العميل صورة رمزية (أفاتار) مرتبطة بحسابه، ويعرض false إذا كان العكس.
customer.id
يعرض معرّف العميل.
customer.last_name
يعرض اسم العائلة للعميل.
customer.last_order
يعرض آخر طلب أجراه العميل، ولا يتضمن ذلك الطلبات التجريبية.
customer.name
يعرض الاسم الكامل للعميل.
customer.orders
يعرض جميع الطلبات التي أجراها العميل.
customer.orders_count
يعرض إجمالي عدد الطلبات التي أجراها العميل.
customer.payment_methods
يعرض طرق الدفع المحفوظة للعميل.
customer.phone
يعرض رقم هاتف العميل. لا يُعبأ رقم الهاتف إلا إذا استخدم العميل رقم هاتف عند الدفع، أو اختار الاشتراك في إشعارات الرسائل القصيرة (SMS)، أو إذا كنت قد أضفته يدويًا إلى حساب العميل الخاص به.
customer.store_credit_account.balance

يُرجع هذا المتغير رصيد متجر العميل بالعملة المرتبطة بالسياق ذي الصلة. على سبيل المثال:

{{customer.store_credit_account.balance | money_with_currency}}
customer.tags
يُرجع العلامات المرتبطة بالعميل.
customer.tax_exempt
يُرجع true إذا كان العميل معفى من الضرائب، ويُرجع false إذا لم يكن كذلك.
customer.total_spent
يُرجع إجمالي المبلغ الذي أنفقه العميل على جميع الطلبات من متجرك.
email.*

يوفر هذا المتغير إمكانية الوصول إلى خصائص البريد الإلكتروني التالية:

  • يعرض subject سطر موضوع البريد الإلكتروني.
  • يعرض preview_text نص المعاينة للبريد الإلكتروني.
  • open_tracking
    يوفر هذا المتغير إمكانية الوصول إلى كتلة تتبع الفتح المنسقة مسبقًا. هذا المتغير مطلوب إذا أنشأت بريدًا إلكترونيًا مبرمجًا بشكل مخصص وقمّت بتنشيط تتبع الفتح.
    shop.*
    يوفر هذا المتغير إمكانية الوصول إلى خصائص المتجر التالية:
  • يعرض name اسم المتجر.
  • يعرض domain النطاق الأساسي للمتجر.
  • يعرض url عنوان URL للمتجر.
  • يعرض shopify_domain نطاق Shopify للمتجر.
    • address يعرض عنوان المتجر، مما يوفر إمكانية الوصول إلى خصائص العنوان التالية:
      • address1
      • address2
      • city
      • country
      • phone
      • province
      • zip
    unsubscribe_url
    يوفر هذا المتغير إمكانية الوصول إلى عنوان URL الأولي لإلغاء الاشتراك، ويمكن تخصيصه. إذا قمت بإنشاء بريد إلكتروني مبرمج بشكل مخصص، فستكون مطالبًا بتضمين متغير unsubscribe_url أو unsubscribe_link. سيشير كل من unsubscribe_url و unsubscribe_link دائمًا إلى النطاق الأساسي للمتجر الإلكتروني ولا يمكن تعديلهما للتوجيه إلى مكان آخر.

    متغيرات Liquid المدعومة لرسائل البريد الإلكتروني لعمليات الدفع المتروكة

    يمكنك استخدام المتغيرات التالية لتخصيص رسائل البريد الإلكتروني لعمليات الدفع المتروكة في Shopify Messaging باستخدام Liquid.

    يُملأ متغير abandoned_checkout فقط إذا كان البريد الإلكتروني جزءًا من أتمتة تسويق لعملية دفع متروكة. بخلاف ذلك، يكون المتغير null.

    وصف لمتغيرات Liquid المدعومة في Shopify Messaging لعمليات التصفح والسلة والدفع المتروكة
    المتغيرالوصف
    abandoned_checkout.*

    يوفر هذا المتغير إمكانية الوصول إلى الخصائص التالية لعملية الدفع المتروكة:

    • يعرض url عنوان URL لعملية الدفع المتروكة.
    • line_items يعرض أول خمسة عناصر صنف في عملية الدفع المتروكة. بالإضافة إلى ذلك، يحتوي كل كائن line_items على الخصائص التالية حول كل منتج:
      • components
      • image_url
      • product_title
      • variant_title
      • quantity
    • line_items.components يعرض مكونات عملية الدفع المتروكة. بالإضافة إلى ذلك، يحتوي كل كائن components على الخصائص التالية حول كل مكون:
      • image_url
      • quantity
      • product_title
      • variant_title
    • يعرض remaining_products_count عدد عناصر الصنف المتبقية، إذا كان هناك أكثر من خمسة عناصر صنف في عملية الدفع المتروكة.
    id
    (checkout ID)
    معرّف فريد لعملية الدفع للاستخدام الداخلي.
    shop
    اسم متجر Shopify الخاص بك.
    name
    اسم عملية الدفع المتروكة، والمعروف أيضًا باسم رقم عملية الدفع.
    total_price
    السعر الإجمالي للطلب (المجموع الفرعي + تكلفة الشحن - خصم الشحن + الضريبة).
    shipping_price

    سعر الشحن.

    مثال: {{ shipping_price | money }}

    shipping_address
    عنوان الشحن.
    billing_address
    عنوان إعداد الفواتير.
    line_items
    قائمة بجميع عناصر الصنف في عملية الدفع المتروكة.
    unavailable_line_items
    قائمة بجميع عناصر الصنف في عملية الدفع المتروكة غير المتاحة.
    note
    الملاحظة المرفقة بعملية الدفع المتروكة.
    landing_site

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

    مثال: /products/great-product?ref=my-tracking-token

    landing_site_ref

    يستخرج معلمة مرجعية من موقع الهبوط. يمكن أن تكون المعلمات المرجعية: ref أو source أو r.

    إذا كان landing_site هو /products/great-product?ref=my-tracking-token، فإن landing_site_ref هو my-tracking-token. يمكنك تنفيذ إجراء معين إذا كانت المعلمة المرجعية تساوي قيمة معينة:

    {% if landing_site_ref == 'my-tracking-token' %}
    My action...
    {% endif %}
    referring_site

    عنوان URL للمُحيل الذي جلب العميل إلى متجرك.

    مثال: https://www.google.com/?s=great+products

    created_at

    تاريخ ووقت إنشاء العميل لعملية الدفع التي تركها.

    closed_at

    تاريخ ووقت إغلاق عملية الدفع.

    customer_locale
    رمز اللغة المكون من حرفين أو ثلاثة أحرف للغة العميل (locale)، متبوعًا اختياريًا بمُعدِّل المنطقة. على سبيل المثال،
    en
    ،
    en-CA
    item_count
    مجموع كميات جميع العناصر.
    unique_gateways
    قائمة بمزودي خدمات الدفع الفريدين المتاحين في عملية الدفع.
    discount
    الخصم المُطبَّق على السلة أو عنصر صنف في عملية الدفع المتروكة.
    discounts
    قائمة بالخصومات المُطبَّقة على عملية الدفع.
    successfully_applied_discounts
    الخصومات التي تم تطبيقها بنجاح على عملية الدفع.
    discounts_amount

    المبلغ المالي للخصم المُطبَّق بواسطة جميع الخصومات.

    مثال: +$5.00

    discounts_savings

    المبلغ المالي للمدخرات الناتجة عن جميع الخصومات.

    مثال: -$5.00

    buyer_accepts_marketing
    يُرجع
    true
    أو
    false
    بناءً على ما إذا كان العميل قد وافق على التسويق أثناء عملية الدفع المتروكة.
    subtotal_line_items
    عناصر الطلب التي تُستخدم لحساب سعر الإجمالي الفرعي عند الدفع، باستثناء أي عناصر خاصة بالإكرامية.
    requires_shipping
    يُرجع
    true
    إذا كان هناك عنصر واحد على الأقل في عملية الدفع يتطلب الشحن.
    subtotal_price
    سعر الإجمالي الفرعي لعناصر الطلب عند الدفع.
    email
    البريد الإلكتروني المرتبط بعملية الدفع المتروكة.
    shop_name
    اسم متجرك.
    tax_lines

    الضرائب مقسمة حسب نوع الضريبة:

    {% for tax_line in tax_lines %}
    {{ tax_line.title }} ({{ tax_line.rate_percentage }}%) : {{ tax_line.price | money_with_currency  }}
    {% endfor %}
    tax_price
    إجمالي الضرائب المجمعة لجميع العناصر في عملية الدفع.
    attributes

    أي سمات كانت مرتبطة بعملية الدفع المتروكة.

    مثال: {{ attributes.gift-note }}

    shipping_method
    معلومات حول أول طريقة شحن متاحة عند الدفع.
    shipping_methods
    طرق الشحن المتاحة عند الدفع.
    free
    يُرجع
    true if the total price of the checkout is zero.
    free_shipping
    يُرجع
    true
    إذا كانت عملية الدفع لا تتطلب شحناً، أو إذا كان سعر الشحن صفراً.
    different_billing_address
    يُرجع
    true
    أو
    false
    بناءً على ما إذا كان عنوان الشحن مطابقاً لعنوان الفوترة.
    customer
    كائن العميل الذي يحتوي على سمات مخرجات العميل.
    gift_cards
    بطاقات الهدايا المطبّقة على عملية الدفع.
    gift_cards_amount
    مبلغ سعر الدفع الذي سيتم سداده باستخدام بطاقات الهدايا.
    transactions
    معاملات عملية الدفع.
    shareable_url
    رابط URL لأول منتج في عناصر الطلب.
    shareable_title
    عنوان المنتج لأول عنصر طلب.
    total_tip
    إجمالي الإكرامية التي أضافها العميل عند الدفع.
    discount_applications
    يصف سبب وكيفية تطبيق الخصم على عنصر في عملية الدفع.
    cart_level_discount_applications
    تطبيقات الخصم الخاصة بسلة التسوق المطبقة على السلة.
    currency
    عملة عملية الدفع المتروكة.
    line_items_subtotal_price
    مجموع أسعار جميع عناصر الطلب في عملية الدفع، بعد تطبيق أي خصومات على عناصر الطلب.

    متغيرات Liquid لرسائل البريد الإلكتروني الخاصة بالتصفح المتروك وسلة التسوق المتروكة

    تتم تعبئة المتغير abandoned_visit.* فقط إذا كان البريد الإلكتروني جزءاً من عملية أتمتة تسويق سلة التسوق المتروكة أو تصفح المنتج المتروك. راجع الخصائص التالية التي يتيح هذا المتغير الوصول إليها.

    وصف لمتغيرات Liquid المدعومة في Shopify Messaging
    المتغيرالوصف
    abandoned_visit.*

    يتيح هذا المتغير الوصول إلى الخصائص التالية لسلة التسوق المتروكة أو التصفح المتروك:

    • يعرض url رابط URL لسلة التسوق المتروكة أو التصفح المتروك.
    • products_added_to_cart يعرض أول خمسة عناصر طلب للمنتجات التي تمت إضافتها إلى سلة التسوق للزيارة المتروكة. بالإضافة إلى ذلك، يحتوي كل products_added_to_cart كائن على الخصائص التالية حول كل منتج:
      • title
      • image_url
      • variant_title
      • quantity
    • products_viewed يعرض أول خمسة منتجات تم عرضها أثناء الزيارة المتروكة. بالإضافة إلى ذلك، يحتوي كل products_viewed كائن على الخصائص التالية حول كل منتج:
      • title
      • description
      • image_url
      • url
      • image_alt_text
    • يعرض remaining_cart_products_count عدد عناصر الطلب المتبقية، إذا كان هناك أكثر من خمسة عناصر طلب في عملية الدفع المتروكة.

    استخدام المتغيرات المطلوبة

    عند إنشاء بريد إلكتروني مخصص باستخدام Liquid، يكون المتغير unsubscribe_link أو unsubscribe_url مطلوباً. وإذا قمت بتفعيل تتبع الفتح، فسيكون المتغير open_tracking مطلوباً أيضاً.

    رغم أنه يمكن إدراج هذه المتغيرات في أي مكان في كود البريد الإلكتروني الخاص بك، إلا أن المكان الأكثر شيوعاً لإضافتها هو في قسم تذييل البريد الإلكتروني، كما في المثال التالي:

    <div id="footer">{{ unsubscribe_link }} {{ open_tracking_block }}</div>

    مثال على كود Liquid مخصص

    يمكنك إضافة كود Liquid أو HTML المخصص الخاص بك في محرر الكود. الكود التالي هو مثال على كيفية إضافة كود Liquid لعرض اسم متجرك، وزر مخصص، وصورة بحجم مخصص في رسالة بريد إلكتروني.

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>{{ shop.name }} Newsletter</title>
    </head>
    <body style="margin: 0; padding: 0; font-family: Arial, sans-serif; line-height: 1.5; color: #333333; background-color: #f5f5f5;">
        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f5f5f5;">
            <tr>
                <td align="center" style="padding: 20px;">
                    <table cellpadding="0" cellspacing="0" border="0" width="600" style="background-color: #ffffff; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);">
                        <!-- Header -->
                        <tr>
                            <td align="center" style="background-color: #4a6de5; padding: 30px 20px; color: #ffffff;">
                                <h1 style="margin: 0; font-size: 28px; font-weight: bold;">{{ shop.name }}</h1>
                                <p style="margin: 10px 0 0; font-size: 16px;">Your Book Journey with Us</p>
                            </td>
                        </tr>
    
                        <!-- Content -->
                        <tr>
                            <td style="padding: 30px 20px;">
                                <!-- Greeting Section -->
                                <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
                                    <tr>
                                        <td>
                                            <h2 style="margin: 0 0 15px; font-size: 22px; color: #222222;">Hello {{ customer.name }}!</h2>
                                            <p style="margin: 0 0 15px; font-size: 15px;">We hope this email finds you well. We noticed you're from {{ customer.default_address.city }}.</p>
                                            {% if customer.email %}
                                                <p style="margin: 0 0 15px; font-size: 15px;">Your registered email is: {{ customer.email }}</p>
                                            {% endif %}
                                        </td>
                                    </tr>
                                </table>
    
                                <!-- Reading Journey Section -->
                                <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
                                    <tr>
                                        <td>
                                            <h2 style="margin: 0 0 15px; font-size: 20px; color: #4a6de5;">Your Reading Journey</h2>
                                            <p style="margin: 0 0 15px; font-size: 15px;">Thank you for being a loyal customer! Here's a snapshot of your journey:</p>
                                            <p style="margin: 0 0 15px; font-size: 15px;">You purchased {{ customer.orders_count }} books with us.</p>
                                            {% if customer.last_order %}
                                                <p style="margin: 0 0 15px; font-size: 15px;"> You last read {{customer.last_order.line_items[0].title}}. Great choice! </p>
                                              {% endif %}
                                        </td>
                                    </tr>
                                </table>
    
                                <!-- Recommended Books Section -->
                                <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
                                    <tr>
                                        <td>
                                            <h2 style="margin: 0 0 15px; font-size: 20px; color: #4a6de5;">Books You Might Love</h2>
                                            <p style="margin: 0 0 15px; font-size: 15px;">Based on your reading preferences, we've handpicked these titles just for you:</p>
    
                                            <table cellpadding="0" cellspacing="0" border="0" width="100%">
                                                <tr>
                                                    <td width="50%" style="padding-right: 10px;">
                                                        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f9f9f9; border-radius: 4px; padding: 15px;">
                                                            <tr>
                                                                <td align="center">
                                                                    <!-- Image with proper email attributes -->
                                                                    <img src="https:{{ all_products['product-1-handle'] | image_url: width: 200 }}"
                                                                         alt="Product 1"
                                                                         width="200"
                                                                         height="200"
                                                                         style="display: block; border: 0; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;"
                                                                         title="Product 1"
                                                                         border="0">
                                                                    <h3 style="margin: 0 0 10px; font-size: 16px; color: #333333;">{{ all_products['product-1-handle'].title }}</h3>
                                                                    <p style="margin: 0 0 10px; font-size: 15px; color: #4a6de5;">${{ all_products['product-1-handle'].price }}</p>
                                                                    <a href="{{shop.domain}}{{ all_products['product-1-handle'].url }}" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">View Book</a>
                                                                </td>
                                                            </tr>
                                                        </table>
                                                    </td>
                                                    <td width="50%" style="padding-left: 10px;">
                                                        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="background-color: #f9f9f9; border-radius: 4px; padding: 15px;">
                                                            <tr>
                                                                <td align="center">
                                                                    <!-- Image with proper email attributes -->
                                                                    <img src="https:{{ all_products['product-2-handle'] | image_url: width: 200 }}"
                                                                         alt="Product 2"
                                                                         width="200"
                                                                         height="200"
                                                                         style="display: block; border: 0; outline: none; text-decoration: none; -ms-interpolation-mode: bicubic;"
                                                                         title="Product 2"
                                                                         border="0">
                                                                    <h3 style="margin: 0 0 10px; font-size: 16px; color: #333333;">{{ all_products['product-2-handle'].title }}</h3>
                                                                    <p style="margin: 0 0 10px; font-size: 15px; color: #4a6de5;">${{ all_products['product-2-handle'].price }}</p>
                                                                    <a href="{{shop.domain}}{{ all_products['product-2-handle'].url }}" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">View Book</a>
                                                                </td>
                                                            </tr>
                                                        </table>
                                                    </td>
                                                </tr>
                                            </table>
                                        </td>
                                    </tr>
                                </table>
    
                                <!-- Book Club Section -->
                                <table cellpadding="0" cellspacing="0" border="0" width="100%" style="margin-bottom: 30px;">
                                    <tr>
                                        <td style="background-color: #f5f7ff; border-radius: 4px; padding: 25px; text-align: center;">
                                            <h2 style="margin: 0 0 15px; font-size: 18px; color: #333333;">This Month's Top Picks</h2>
                                            <p style="margin: 0 0 20px; font-size: 15px;">Discover what other readers are loving this month:</p>
                                            <a href="{{ shop.url }}/pages/book-club" style="display: inline-block; background-color: #4a6de5; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 4px; font-size: 14px;">Join Our Book Club</a>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                        </tr>
    
                        <!-- Footer -->
                        <tr>
                            <td style="background-color: #f2f2f2; padding: 30px 20px; text-align: center;">
                                <p style="margin: 0 0 15px; font-size: 15px;">Best regards,<br><strong>{{ shop.name }} Team</strong></p>
                                <p style="margin: 0 0 15px; font-size: 12px; color: #999999;">© {{ 'now' | date: '%Y' }} {{ shop.name }}. All rights reserved.</p>
                                <p style="margin: 0 0 15px; font-size: 12px;">{{ open_tracking_block }}</p>
                                <a href="{{ unsubscribe_url }}" style="color: #999999; font-size: 12px; text-decoration: underline;">{{ unsubscribe_link }}</a>
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </body>
    </html>