דוגמה לסקריפט הנחה

דוגמה זו משתמשת בסקריפט פריט שורה כדי להציע הנחה המבוססת על מדינת הלקוח. הדוגמה כוללת גם קוד Liquid לדוגמה כדי לספק ללקוח מידע על ההנחה. דוגמה זו דורשת גישה לקובץ ה-checkout.liquid של החנות שלך. אם אין לך גישה לקובץ זה בקוד ערכת הנושא שלך, עליך להשתמש ב-Shopify Extensions for checkout וב-Shopify Functions כדי להתאים אישית את תהליך התשלום שלך.

דוגמה זו משתמשת במע"מ (VAT) פיקטיבי שחלים עליו הכללים הבאים:

  • לקוחות שמתגוררים באיחוד של מדינות יחויבו במע"מ על כל המוצרים שנמכרים.
  • לקוחות שרוכשים מוצרים ומייצאים אותם למדינה מחוץ לאיחוד אינם צריכים לשלם את המע"מ (במילים אחרות, המכירות ללקוחות אלה הן בשיעור מע"מ אפס).
  • מחירי המוצרים בחנות כוללים מע"מ, כלומר ההגדרה כל המיסים כלולים במחירים שלי מופעלת בהגדרות המס של החנות.

בחזית החנות, כל הלקוחות רואים את המע"מ כלול במחירי המוצרים. כאשר מוסיפים פריטים לסל, מוצג המחיר הכולל מע"מ:

סל עם מס מוחל

בשלב התשלום, הסקריפט בודק את הארץ לשילוח. אם מדובר במדינה מחוץ לאיחוד, המחיר הכולל יופחת בסכום המע"מ:

סל ללא מס

בדוגמה הבאה, מדינת הלקוח נבדקת. אם הלקוח מתגורר במדינה שבה המע"מ לא חל, אזי המחיר הכולל של ההזמנה מופחת בסכום המע"מ.

# 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."
    }
  }

בעמוד זה

למידע נוסף

מידע נוסף על: