تخصيص حملات 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.
| المتغير | الوصف |
|---|---|
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.tags | يُرجع العلامات المرتبطة بالعميل. |
customer.tax_exempt | يُرجع true إذا كان العميل معفى من الضرائب، ويُرجع false إذا لم يكن كذلك. |
customer.total_spent | يُرجع إجمالي المبلغ الذي أنفقه العميل على جميع الطلبات من متجرك. |
email.* | يوفر هذا المتغير إمكانية الوصول إلى خصائص البريد الإلكتروني التالية: subject سطر موضوع البريد الإلكتروني.preview_text نص المعاينة للبريد الإلكتروني. |
open_tracking | يوفر هذا المتغير إمكانية الوصول إلى كتلة تتبع الفتح المنسقة مسبقًا. هذا المتغير مطلوب إذا أنشأت بريدًا إلكترونيًا مبرمجًا بشكل مخصص وقمّت بتنشيط تتبع الفتح. |
shop.* | يوفر هذا المتغير إمكانية الوصول إلى خصائص المتجر التالية:
name اسم المتجر.domain النطاق الأساسي للمتجر.url عنوان URL للمتجر.shopify_domain نطاق Shopify للمتجر.
|
unsubscribe_url | يوفر هذا المتغير إمكانية الوصول إلى عنوان URL الأولي لإلغاء الاشتراك، ويمكن تخصيصه. إذا قمت بإنشاء بريد إلكتروني مبرمج بشكل مخصص، فستكون مطالبًا بتضمين متغير unsubscribe_url أو unsubscribe_link. سيشير كل من unsubscribe_url و unsubscribe_link دائمًا إلى النطاق الأساسي للمتجر الإلكتروني ولا يمكن تعديلهما للتوجيه إلى مكان آخر. |
متغيرات Liquid المدعومة لرسائل البريد الإلكتروني لعمليات الدفع المتروكة
يمكنك استخدام المتغيرات التالية لتخصيص رسائل البريد الإلكتروني لعمليات الدفع المتروكة في Shopify Messaging باستخدام Liquid.
يُملأ متغير abandoned_checkout فقط إذا كان البريد الإلكتروني جزءًا من أتمتة تسويق لعملية دفع متروكة. بخلاف ذلك، يكون المتغير null.
| المتغير | الوصف |
|---|---|
abandoned_checkout.* | يوفر هذا المتغير إمكانية الوصول إلى الخصائص التالية لعملية الدفع المتروكة:
|
id(checkout ID) | معرّف فريد لعملية الدفع للاستخدام الداخلي. |
shop | اسم متجر Shopify الخاص بك. |
name | اسم عملية الدفع المتروكة، والمعروف أيضًا باسم رقم عملية الدفع. |
total_price | السعر الإجمالي للطلب (المجموع الفرعي + تكلفة الشحن - خصم الشحن + الضريبة). |
shipping_price |
سعر الشحن. مثال: |
shipping_address | عنوان الشحن. |
billing_address | عنوان إعداد الفواتير. |
line_items | قائمة بجميع عناصر الصنف في عملية الدفع المتروكة. |
unavailable_line_items | قائمة بجميع عناصر الصنف في عملية الدفع المتروكة غير المتاحة. |
note | الملاحظة المرفقة بعملية الدفع المتروكة. |
landing_site |
مسار موقع الهبوط الذي استخدمه العميل. هذه هي الصفحة الأولى التي وصل إليها العميل عند دخوله إلى المتجر. مثال: |
landing_site_ref |
يستخرج معلمة مرجعية من موقع الهبوط. يمكن أن تكون المعلمات المرجعية: إذا كان {% if landing_site_ref == 'my-tracking-token' %}
My action...
{% endif %}
|
referring_site |
عنوان URL للمُحيل الذي جلب العميل إلى متجرك. مثال: |
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 | سعر الإجمالي الفرعي لعناصر الطلب عند الدفع. |
| البريد الإلكتروني المرتبط بعملية الدفع المتروكة. | |
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 |
أي سمات كانت مرتبطة بعملية الدفع المتروكة. مثال: |
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.* فقط إذا كان البريد الإلكتروني جزءاً من عملية أتمتة تسويق سلة التسوق المتروكة أو تصفح المنتج المتروك. راجع الخصائص التالية التي يتيح هذا المتغير الوصول إليها.
| المتغير | الوصف |
|---|---|
abandoned_visit.* | يتيح هذا المتغير الوصول إلى الخصائص التالية لسلة التسوق المتروكة أو التصفح المتروك:
|
استخدام المتغيرات المطلوبة
عند إنشاء بريد إلكتروني مخصص باستخدام 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>