Beispiel für ein Rabattskript

In diesem Beispiel wird mit einem Einzelartikel-Skript basierend auf dem Herkunftsland des Kunden ein Rabatt angeboten. Es beinhaltet auch ein Beispiel für einen Liquid-Code zur Bereitstellung von Informationen über den Rabatt für den Kunden.

In diesem Beispiel wird eine fiktive Mehrwertsteuer verwendet, die folgende Regeln aufweist:

  • Für Kunden, die in einem Länderverband ansässig sind, wird auf alle verkaufen Produkte Umsatzsteuer erhoben.
  • Kunden, die Produkte kaufen und sie in ein Land außerhalb der EU exportieren lassen, müssen die Mehrwertsteuer nicht entrichten (mit anderen Worten, die Verkäufe an diese Kunden sind steuerfrei).
  • Produktpreise im Shop enthalten Mehrwertsteuer (das heißt, dass die Einstellung In meinen Preisen sind alle Steuern enthalten in den Steuereinstellungen des Shops aktiviert ist).

Im Schaufenster sehen alle Kunden die Mehrwertsteuer, die in den Preisen der Produkte enthalten ist. Wenn Artikel zum Warenkorb hinzugefügt werden, wird der Preis inklusive Mehrwertsteuer angezeigt:

Warenkorb mit Steuern

Beim Checkout wird das Lieferland vom Skript überprüft. Wenn das Land außerhalb der EU liegt, wird der Gesamtpreis um den Betrag der Mehrwertsteuer verringert:

Warenkorb ohne Steuern

Im folgenden Beispiel wird das Land des Kunden überprüft. Wenn der Kunde in einem Land wohnt, in dem die Mehrwertsteuer nicht erhoben wird, reduziert sich der Gesamtpreis der Bestellung um den Betrag der Mehrwertsteuer.

# 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

Der folgende Liquid-Code funktioniert mit dem obigen Skript, um die Änderungen im Warenkorb zu erklären.

Fügen Sie diesen Code zu checkout.liquid hinzu:

<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>

Fügen Sie Ihrer Gebietsschemadatei den folgenden Code hinzu:

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

Mehr erfahren

Erfahren Sie mehr zu diesen Themen:

Sind Sie bereit, mit Shopify zu verkaufen?

Probieren Sie es kostenlos aus