Kategoriler
Opencart

Opencart 3.x ücretsiz ödeme aktif olmuyorsa? “opencart 3.x free checkout not showing”

Merhaba arkadaşlar,

Opencart 3.0.3.2 sürümünde başıma gelen ve 15dk lık uğraşmalarım ve araştırmalarım sonucu opencart 1.5.6.x’te kullanılan bir yöntem ile bu sorunu çözdüm. Örneğin müşteriniz sepetine 200,00TL‘lik ürün ekledi. Üzerine %10 indirim kuponu kullandı ve bununda üzerine hesabındaki 180TL bakiyeyi kullandı ve sepet tutarı 0,00TL oldu. Kupon kullanıldıktan sonra sepet tutarı eğer 0,00TL oluyorsa ödeme sayfasında “ücretsiz ödeme” aktif olmuyordu. Aşağıdaki dosyada yapacağınız ufak değişiklik ile bu sorunu çözebilirsiniz.

Dosyayı açın: catalog/model/extension/payment/free_checkout.php

if ($total <= 0.00) {

değerini;

if ($total <= 0.01) {

yapıp kaydedin.

Sonrasında, eklentiler > modifikasyonlar sekmesinden yenile (refresh) yapın.

Sorununuz düzelecektir. Benim sorunum bu şekilde düzeldi, kolay gelsin 🙂

Kategoriler
Opencart

opencart 3.x sürümlerinde ücretsiz ödeme ile alınan siparişler hatası

Merhaba arkadaşlar,

Opencart 3.x sürümlerinde varolan bu hata nedeniyle, müşterinize hediye bakiye vermeniz sonucu, 0,00TL ile ödeme yapıp siparişini oluşturduğunda bu sipariş admin paneli siparişler ekranında görünmemektedir. Eksik siparişlerde görünüyor. Bunun nedeni, admin > eklentiler > ödeme metodları > ücretsiz ödeme ayarının belirlediğiniz “sipariş durumunu” kaydetmemesi nedeni. Siz buradan istediğiniz bir sipariş durumunu seçiyorsunuz, kaydediyorsunuz fakat tekrar aynı ayara girdiğinizde kaydetmemiş olarak görünüyor. Sipariş durumunu belirleyemediğiniz için, müşteri ücretsiz ödeme ile sipariş verdiğinde eksik siparişlere düşüyor. Bunu basit bir yöntemle düzeltebilirsiniz. Opencart 3.0.3.2 versiyonunda denedim ve sorunum düzeldi.

Bu düzeltme işlemini denemeden önce veritabanı ve değişiklik yapacağını dosyaları yedeklemeyi unutmayınız.

İşlem aşamaları:

1- Öncelikle admin > eklentiler > ödeme metodlarından “ücretsiz ödemeyi” kaldırınız. Kırmızı butona basarak.

2- FTP yöneticiniz ile admin/controller/extension/payment/free_checkout.php dosyasını notepad++ ile açınız.

3- Aşağıdaki kod kümesini bulunuz:

if (isset($this->request->post['free_checkout_order_status_id'])) { $data['free_checkout_order_status_id'] = $this->request->post['free_checkout_order_status_id']; } else { $data['free_checkout_order_status_id'] = $this->config->get('free_checkout_order_status_id'); }

4- Aşağıdaki kod kümesi ile değiştiriniz ve dosyayı kaydedip kapatınız:

if (isset($this->request->post['payment_free_checkout_order_status_id'])) {
$data['payment_free_checkout_order_status_id'] = $this->request->post['payment_free_checkout_order_status_id'];
} else {
$data['payment_free_checkout_order_status_id'] = $this->config->get('payment_free_checkout_order_status_id');
}

5- admin/view/template/extension/payment/free_checkout.twig dosyasını notepad++ ile açınız.

6- Aşağıdaki kod kümesini bulunuz:

<select name="free_checkout_order_status_id" id="input-order-status" class="form-control">
{% for order_status in order_statuses %}
{% if order_status.order_status_id == free_checkout_order_status_id %}
<option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
{% else %}
<option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
{% endif %}
{% endfor %}

7- Aşağıdaki kod kümesi ile değiştirip, kaydedip kapatınız:

<select name="payment_free_checkout_order_status_id" id="input-order-status" class="form-control">
{% for order_status in order_statuses %}
{% if order_status.order_status_id == payment_free_checkout_order_status_id %}
<option value="{{ order_status.order_status_id }}" selected="selected">{{ order_status.name }}</option>
{% else %}
<option value="{{ order_status.order_status_id }}">{{ order_status.name }}</option>
{% endif %}
{% endfor %}

8- Eklentiler > modifikasyonları “yenile” yapınız.

9- Admin paneli sağ üst taraftan tema ve sass önbelleğini temizleyiniz.

10- Ödeme metodlarından “ücretsiz ödemeyi” tekrar yükleyiniz.

11- Ödeme metodunuza girip, sipariş durumunu belirleyip kaydedin.

İşlemler sonrasında belirlediğiniz sipariş durumunun sisteme artık kayıt edildiğini göreceksiniz. Varsayılan sipariş durumunuza kaydedin. Artık müşterileriniz hesap bakiyeleri ile ödeme yaptığında admin panelinde siparişler ekranına düşecektir. Kolay gelsin 🙂