Rabattskriptsexempel

Det här exemplet använder ett radartikelskript för att erbjuda en rabatt baserat på kundens land. Den innehåller även exempelkod för att tillhandahålla information till kunden om rabatten.

Det här exemplet använder en fiktiv momsskatt som har följande regler:

  • Kunder som är bosatta i en union av länder debiteras moms på alla produkter som säljs.
  • Kunder som köper produkter och får dem exporterade till ett land som inte är ett unionsland behöver inte betala moms (det vill säga att försäljningen till dessa kunder är nollskattad).
  • Priserna för produkter i butiken inkluderar moms (det vill säga att inställningen alla skatter ingår i mina priser är aktiverad för butikens skatteinställningar.

I butiksfronten ser alla kunder moms som ingår i priserna för produkterna. När varor läggs till i varukorgen visas den inkluderade momsen:

Varukorg med skatt tillämpad

Transportlandet kontrolleras av skriptet vid utcheckningen. Om landet är ett icke-unionsland minskas det totala priset med momsbeloppet:

Varukorg med skatt borttagen

I följande exempel kontrolleras kundens land. Om kunden bor i ett land där momsen inte gäller, minskas det totala priset för ordern med momsbeloppet.

# 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

Följande Liquid-kod fungerar med skriptet ovan för att förklara ändringarna i varukorgen.

Lägg till den här koden i 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>

Lägg till följande kod till din engelska språkfil:

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

Läs mer

Läs mer om

Är du redo att börja sälja med Shopify?

Prova gratis