Esempio di script di sconto

Questo esempio utilizza uno script di voci dell'ordine per offrire uno sconto in base al paese del cliente. Include inoltre un esempio di codice Liquid per fornire informazioni sullo sconto al cliente. L'esempio richiede che tu abbia accesso al file checkout.liquid del tuo negozio. Se non hai accesso a questo file nel codice del tema, utilizza Checkout Extensibility e Shopify Functions per personalizzare il check-out.

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

  • I clienti che risiedono in un'unione di paesi sono soggetti al pagamento dell'IVA su tutti i prodotti venduti.
  • I clienti che acquistano prodotti e ne chiedono l'esportazione in paesi non appartenenti all'unione non devono pagare l'IVA (in altre parole, l'aliquota delle vendite effettuate a questi clienti è zero).
  • I prezzi dei prodotti presenti nel negozio includono l'IVA (ovvero l'impostazione Includi imposte nei prezzi è abilitata nelle impostazioni relative a Imposte e dazi del negozio).

Nella vetrina virtuale tutti i clienti vedono l'IVA inclusa nei prezzi dei prodotti. Quando gli articoli vengono aggiunti al carrello, il prezzo visualizzato è con IVA inclusa:

Cart with tax applied

Al check-out, lo script verifica il paese di spedizione. Se non fa parte dell'unione, dal prezzo totale viene scalato l'importo dell'IVA:

Carrello con imposte rimosse

Nell'esempio seguente, viene verificato il paese del cliente. Se il cliente abita in un paese in cui l'IVA non è applicabile, il prezzo totale dell'ordine si riduce di un importo pari a quello 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 insieme allo script sopra riportato per spiegare i cambiamenti avvenuti 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 di impostazioni locali italiano (traducendo in italiano il messaggio):

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

Su questa pagina

Maggiori informazioni

Maggiori informazioni su:

Sei pronto per iniziare a vendere con Shopify?

Provalo, è gratis