Esempio di script di sconto

Questo esempio utilizza uno script per voci per offrire uno sconto in base al paese del cliente. L'esempio include anche un codice Liquid di esempio per fornire al cliente informazioni sullo sconto. Questo esempio richiede l'accesso al file checkout.liquid del tuo negozio. Se non hai accesso a questo file nel tuo codice del tema, utilizza le estensioni di Shopify per il check-out e le funzioni di Shopify per personalizzare il check-out.

Questo esempio utilizza un'imposta IVA fittizia con le seguenti regole:

  • Ai clienti che risiedono in un'unione di paesi vengono addebitate le imposte IVA su tutti i prodotti venduti.
  • I clienti che acquistano prodotti e li fanno esportare in un paese non appartenente all'unione non devono pagare l'imposta IVA (in altre parole, le vendite a questi clienti sono a tassazione zero).
  • I prezzi dei prodotti nel negozio includono l'imposta IVA, ovvero l'impostazione Tutte le imposte sono incluse nei miei prezzi è abilitata per le impostazioni fiscali del negozio.

Nella vetrina virtuale, tutti i clienti vedono l'IVA inclusa nei prezzi dei prodotti. Quando gli articoli vengono aggiunti al carrello, viene mostrato il prezzo comprensivo di IVA:

Carrello con imposta applicata

Al momento del check-out, lo script controlla il paese di spedizione. Se il paese non appartiene all'unione, il prezzo totale viene ridotto dell'importo dell'IVA:

Carrello con imposta rimossa

Nell'esempio seguente, viene controllato il paese del cliente. Se il cliente vive in un paese in cui non si applica l'IVA, il prezzo totale dell'ordine viene ridotto dell'importo dell'IVA.

# 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

Il seguente codice Liquid funziona con lo script precedente per spiegare le modifiche nel carrello.

Aggiungi questo codice a 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>

Aggiungi il codice seguente al tuo file delle impostazioni locali inglesi:

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

In questa pagina

Scopri di più

Scopri di più su: