Atlaides skripta piemērs

Šajā piemērā izmantots rindas vienumu skripts, lai piedāvātu atlaidi, pamatojoties uz klienta valsti. Piemērā iekļauts arī Liquid koda piemērs, lai sniegtu klientam informāciju par atlaidi. Šajā piemērā ir nepieciešama piekļuve tava veikala failam checkout.liquid. Ja tev nav piekļuves šim failam tavā tēmas kodā, izmanto Shopify Extensions norēķināšanās lapai un Shopify Functions, lai pielāgotu norēķināšanos.

Šajā piemērā ir izmantots iedomāts PVN, kuram ir šādi noteikumi:

  • Klientiem, kuri dzīvo valstu savienībā, par visiem pārdotajiem produktiem tiek piemērots PVN.
  • Klientiem, kuri iegādājas produktus un eksportē tos uz valsti, kas nav savienības dalībvalsts, nav jāmaksā PVN (citiem vārdiem sakot, pārdošanai šiem klientiem tiek piemērota nulles likme).
  • Veikala produktu cenās ir iekļauts PVN, kas nozīmē, ka veikala nodokļu iestatījumos ir iespējots iestatījums Cenās ir iekļauti visi nodokļi.

Skatlogā visi klienti redz produktu cenās iekļauto PVN. Pievienojot vienumus grozam, tiek rādīta cena ar iekļauto PVN:

Grozs ar piemērotu nodokli

Norēķināšanās laikā skripts pārbauda piegādes valsti. Ja tā ir valsts, kas nav savienības dalībvalsts, kopējā cena tiek samazināta par PVN summu:

Grozs ar noņemtu nodokli

Šajā piemērā tiek pārbaudīta klienta valsts. Ja klients dzīvo valstī, kurā PVN nepiemēro, tad pasūtījuma kopējā cena tiek samazināta par PVN summu.

# 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

Tālāk norādītais Liquid kods darbojas kopā ar iepriekš minēto skriptu, lai izskaidrotu izmaiņas grozā.

Pievieno šo kodu failam 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>

Pievieno šādu kodu savam angļu valodas lokalizācijas failam:

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

Šajā lapā