Примерен скрипт за отстъпка

Този пример използва скрипт за ред, за да предложи отстъпка въз основа на държавата на клиента. Примерът включва и примерен Liquid код за предоставяне на информация на клиента относно отстъпката. Този пример изисква да имате достъп до файла checkout.liquid на Вашия магазин. Ако нямате достъп до този файл във Вашия код на темата, тогава използвайте Shopify Extensions for checkout и 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."
    }
  }

На тази страница

Научете повече

Научете повече за: