مثال على سكربت الخصم

يستخدم هذا المثال سكربت العنصر لتقديم خصم يعتمد على بلد العميل. يتضمن المثال أيضاً كود Liquid لتقديم معلومات للعميل حول الخصم. يتطلب هذا المثال أن يكون لديك حق الوصول إلى ملف checkout.liquid الخاص بمتجرك. إذا لم يكن لديك إمكانية الوصول إلى هذا الملف في كود القالب، فاستخدم Shopify Extensions لصفحة الدفع وShopify Functions لتخصيص صفحة الدفع الخاصة بك.

يستخدم هذا المثال ضريبة القيمة المضافة الافتراضية والتي تتبع القواعد التالية:

  • يُفرض على العملاء المقيمين في اتحاد بلدان ضرائب القيمة المضافة على جميع المنتجات المُباعة.
  • لا يتعين على العملاء الذين يشترون منتجات ويصدرونها إلى بلد خارج الاتحاد دفع ضريبة القيمة المضافة (بمعنى آخر، المبيعات لهؤلاء العملاء معفاة من الضرائب).
  • تشمل أسعار المنتجات في المتجر ضريبة القيمة المضافة؛ أي تم تفعيل الإعداد تضمين جميع الضرائب في أسعاري في إعدادات الضرائب الخاصة بالمتجر.

في واجهة المتجر، يرى جميع العملاء ضريبة القيمة المضافة متضمنة في أسعار المنتجات. عند إضافة عناصر إلى سلة التسوق، يتم عرض السعر الشامل لضريبة القيمة المضافة:

سلة التسوق مع تطبيق الضريبة

عند الدفع، يتحقق السكربت من بلد الشحن. إذا كان البلد غير تابع للاتحاد، فسيتم تخفيض السعر الإجمالي بمقدار ضريبة القيمة المضافة:

سلة التسوق مع إزالة الضريبة

في المثال التالي، يتم التحقق من بلد العميل. وإذا كان العميل يقيم في بلد لا تُطبق فيه ضريبة القيمة المضافة، فسيتم تخفيض السعر الإجمالي للطلب بمقدار ضريبة القيمة المضافة.

# Set VAT equal to the amount of the VAT rate.
# For example, if the VAT rate is 20%, then VAT=20
VAT = 20

# Message that appears beside the discount in the checkout
VAT_REMOVAL_MESSAGE = "VAT removed"

# List of countries where the VAT is charged to orders
COUNTRY_CODES_EU = %w[
AT BE BG CY CZ DK EE FI FR DE GR HU IE IT
LV LT LU MT NL PL PT RO SK SI ES SE GB
]

if Input.cart.shipping_address
  unless COUNTRY_CODES_EU.include?(Input.cart.shipping_address.country_code)
    Input.cart.line_items.each do |line_item|
      product = line_item.variant.product
      next if product.gift_card?
      vat_only_fraction = VAT / (100.0 + VAT)
      vat =  line_item.line_price * vat_only_fraction
      ex_vat_price = line_item.line_price - vat
      line_item.change_line_price(ex_vat_price, message: VAT_REMOVAL_MESSAGE)
    end
  end
end

Output.cart = Input.cart

يعمل كود Liquid التالي مع السكربت أعلاه لتوضيح التغييرات في سلة التسوق.

أضف هذا الكود إلى checkout.liquid:

<style>
  .checkout__vat-exemption-message {
    padding: 1.25em 0;
    display: none;
  }
  @media (min-width: 1000px) {
    .checkout__vat-exemption-message {
      padding-top: 0;
      padding-bottom: 2.5em;
    }
  }
</style>

<div class="checkout__vat-exemption-message">
  <span>{{ 'plus.checkout.vat_exemption_message' | t }}</span>
</div>

<script>
  $(document).on('ready page:load page:change', function() {
    var country = '';

    if(Shopify.Checkout.step === 'contact_information') {
      $country = $('[data-step] select[name="checkout[shipping_address][country]"]');
      country = $country.find(':selected').data('code');
    } else {
      country = "{{ checkout.shipping_address.country_code }}";
    }

    var eu_countries = ['AT','BE','BG','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','GB'];

    if (eu_countries.includes(country)) {
      $('.checkout__vat-exemption-message').css('display', 'none');
    } else {
      $('.checkout__vat-exemption-message').css('display', 'block');
    }
  });
  
</script>

أضف الكود التالي إلى ملف الإعدادات المحلية للغة الإنجليزية الخاص بك:

"plus":{
    "checkout": {
      "vat_exemption_message": "As we're shipping outside the EU the VAT has been removed from items in your cart."
    }
  }

في هذه الصفحة

معرفة المزيد

معرفة المزيد حول: