Voorbeeld van een kortingsscript

In dit voorbeeld wordt een orderregelscript gebruikt om een korting aan te bieden op basis van het land van de klant. Het voorbeeld bevat ook een Liquid-codevoorbeeld om de klant informatie over de korting te geven. Voor dit voorbeeld moet je toegang hebben tot het checkout.liquid-bestand van je winkel. Als je geen toegang hebt tot dit bestand in je themacode, gebruik dan Shopify-extensies voor de checkout en Shopify Functions om je checkout aan te passen.

In dit voorbeeld wordt een fictieve btw gebruikt met de volgende regels:

  • Klanten die in een unie van landen wonen, betalen btw over alle verkochte producten.
  • Klanten die producten kopen en deze laten exporteren naar een niet-EU-land, hoeven geen btw te betalen (met andere woorden, voor verkopen aan deze klanten geldt het nultarief).
  • De productprijzen in de winkel zijn inclusief btw. De instelling Alle belastingen zijn inbegrepen in mijn prijzen is ingeschakeld voor de belastinginstellingen van de winkel.

In de webshop zien alle klanten de prijzen van producten inclusief btw. Wanneer artikelen aan de winkelwagen worden toegevoegd, wordt de prijs inclusief btw weergegeven:

Winkelwagen met toegepaste belasting

Bij de checkout wordt het land voor verzending door het script gecontroleerd. Als het land een land buiten de unie is, wordt de totaalprijs verlaagd met het btw-bedrag:

Winkelwagen met verwijderde belasting

In het volgende voorbeeld wordt het land van de klant gecontroleerd. Als de klant in een land woont waar geen btw van toepassing is, wordt de totaalprijs van de bestelling verlaagd met het btw-bedrag.

# 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

De volgende Liquid-code werkt met het bovenstaande script om de wijzigingen in de winkelwagen uit te leggen.

Voeg deze code toe aan 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>

Voeg de volgende code toe aan je Engelse landinstellingenbestand:

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

Op deze pagina

Meer informatie

Meer informatie over: