Voorbeeld van kortingsscript

In dit voorbeeld wordt een regelartikelscript gebruikt om een korting aan te bieden op basis van het land van de klant. Het voorbeeld bevat ook een voorbeeld van Liquid-code om de klant informatie te geven over de korting.

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

  • Klanten die in de Europese Unie wonen, betalen btw over alle verkochte producten.
  • Klanten die producten kopen en deze exporteren naar een land buiten de Europese Unie, hoeven geen btw te betalen (de verkopen aan deze klanten worden belast met het nultarief).
  • Prijzen van producten in de winkel zijn inclusief btw (de instelling Alle belastingen zijn inbegrepen in mijn prijzen is ingeschakeld in de belastinginstellingen van de winkel.

In de winkel zien alle klanten de btw die is inbegrepen in de prijzen van producten. Wanneer er artikelen aan de winkelwagen worden toegevoegd, wordt de prijs inclusief btw weergegeven:

Winkelwagen met belasting toegepast

Bij het afrekenen wordt het land van verzending gecontroleerd door het script. Als het land geen deel uitmaakt van de Europese Unie, wordt de totale prijs verlaagd met het bedrag van de btw:

Winkelwagen met belasting verwijderd

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 totale prijs 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 het bestand met landinstellingen voor uw winkel:

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

Meer informatie

Meer informatie over:

Klaar om te beginnen met verkopen met Shopify?

Probeer het gratis