İndirim komut dosyası örneği

Bu örnekte, müşterinin ülkesine göre indirim sunmak için bir satır öğesi komut dosyası kullanılmaktadır. Örnekte ayrıca, müşteriye indirim hakkında bilgi vermeye yönelik örnek bir Liquid kodu bulunmaktadır. Bu örnek, mağazanızın checkout.liquid dosyasına erişiminiz olmasını gerektirir. Tema kodunda bu dosyaya erişiminiz yoksa ödemenizi özelleştirmek için Checkout Extensibility'yi ve Shopify Functions'ı kullanın.

Bu örnekte, aşağıdaki kurallara sahip olan kurgusal bir KDV vergisi kullanılır:

  • Ülkeler birliğinde ikamet eden müşterilere satılan tüm ürünlerden KDV vergisi alınır.
  • Satın aldıkları ürünleri ülkeler birliğinin dışındaki bir ülkeye ihraç eden müşteriler KDV vergisi ödemezler (diğer bir deyişle, bu müşterilere yapılan satışlardan vergi alınmaz).
  • Mağazadaki ürünlerin fiyatlarına KDV dahildir (mağazanın vergi ayarlarında, Tüm vergiler fiyatlarıma dahil edilsin ayarı etkinleştirildiyse).

Mağaza vitrininde, tüm müşteriler ürünlerin fiyatına KDV'nin dahil olduğunu görür. Sepete ürün eklendiğinde KDV dahil fiyat gösterilir:

Cart with tax applied

Ödeme sayfasına gelindiğinde komut dosyası tarafından kargo ülkesi kontrol edilir. Ülke, birlik dışındaki bir ülke ise toplam fiyatta KDV tutarı kadar indirim yapılır.

Vergi kaldırılmış sepet

Aşağıdaki örnekte müşterinin ülkesi kontrol edilmektedir. Müşteri, KDV'nin geçerli olmadığı bir ülkede yaşıyorsa siparişin toplam fiyatında KDV tutarı kadar indirim yapılır.

# 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

Aşağıdaki Liquid kodu, sepette yapılan değişiklikleri açıklamak için yukarıdaki komut dosyasıyla çalışır.

Bu kodu checkout.liquid öğesine ekleyin:

<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>

İngilizce yerel ayar dosyanıza aşağıdaki kodu ekleyin:

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

Daha fazla bilgi edinin

Daha fazla bilgi edinin:

Aradığınız cevapları bulamıyor musunuz? Yardımcı olmak için buradayız.