Beispiel für ein Rabattskript

In diesem Beispiel wird mit einem Einzelartikel-Skript, basierend auf dem Herkunftsland der Kunden, ein Rabatt angeboten. Außerdem zeigt es beispielhaft einen Liquid-Code, der Kunden Informationen zum Rabatt anzeigt. Dieses Beispiel erfordert, dass du Zugriff auf die Datei checkout.liquid deines Shops hast. Wenn du im Theme-Code keinen Zugriff auf diese Datei hast, verwende Shopify Extensions für den Checkout und Shopify Functions, um den Checkout anzupassen.

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 sämtliche Steuern enthalten in den Steuereinstellungen des Shops aktiviert ist).

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

Cart with tax applied

Beim Checkout wird das Versandland 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üge 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üge deiner englischen 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."
    }
  }

Auf dieser Seite

Mehr erfahren

Erfahre mehr zu diesen Themen:

Du hast die gesuchten Antworten nicht gefunden? Wir helfen dir gerne weiter.