Nuolaidos scenarijaus pavyzdys

Šiame pavyzdyje naudojamas prekių pozicijos scenarijus, skirtas pritaikyti nuolaidą pagal kliento šalį. Pavyzdyje taip pat pateikiamas „Liquid“ kodo pavyzdys, skirtas suteikti klientui informaciją apie nuolaidą. Šiam pavyzdžiui reikia, kad turėtumėte prieigą prie savo parduotuvės checkout.liquid failo. Jei neturite prieigos prie šio failo savo temos kode, tuomet naudokite „Shopify“ plėtinius atsiskaitymui ir „Shopify“ funkcijas, kad tinkintumėte savo atsiskaitymą.

Šiame pavyzdyje naudojamas fiktyvus PVM mokestis, kuriam taikomos šios taisyklės:

  • Klientams, gyvenantiems šalių sąjungoje, taikomas PVM visiems parduodamiems produktams.
  • Klientams, kurie perka produktus ir eksportuoja juos į šalių sąjungai nepriklausančią šalį, nereikia mokėti PVM mokesčio (kitaip tariant, pardavimams šiems klientams taikomas nulinis tarifas).
  • Į produktų kainas parduotuvėje įtrauktas PVM, nes parduotuvės mokesčių nustatymuose įjungtas nustatymas „Į mano kainas įtraukti visi mokesčiai“.

Parduotuvės vitrinoje visi klientai mato į produktų kainas įtrauktą PVM. Kai daiktai įdedami į krepšelį, rodoma kaina su PVM:

Krepšelis su pritaikytais mokesčiais

Atsiskaitant scenarijus patikrina pristatymo šalį. Jei tai šalių sąjungai nepriklausanti šalis, bendra kaina sumažinama PVM suma:

Krepšelis su pašalintais mokesčiais

Tolesniame pavyzdyje tikrinama kliento šalis. Jei klientas gyvena šalyje, kurioje PVM netaikomas, bendra užsakymo kaina sumažinama PVM suma.

# 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

Toliau pateiktas „Liquid“ kodas veikia kartu su anksčiau nurodytu scenarijumi, kad paaiškintų pakeitimus krepšelyje.

Pridėkite šį kodą į 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>

Pridėkite šį kodą į savo anglų kalbos lokalės failą:

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

Šiame puslapyje

Sužinoti daugiau

Sužinokite daugiau apie: