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 🙂

 

 

 

Kategoriler
İpuçlar Opencart

opencart 1.5.6.x için telefon doğrulaması nasıl yapılır?

Merhabalar,

Opencart üyelik sayfasında düzeltilmesi gereken bir sorundan bahsedeceğim. Üyelerimiz üye olurken, telefon numarası alanına 55555 yazıp geçebiliyor. Veya telefon numarasının başına “O” yazıyor ve “sıfır” gibi gözükmesini sağlıyor. Durum böyle olunca, kampanya için smsleriniz o müşteriye ulaşmıyor. Veya 0555naber45 şeklinde telefon numarası yazıp geçebiliyor. Bunun için yapmanız gereken ufak bir işlem var. Öncelikle bu yöntem opencart 1.5.6.4’te denenmiştir, diğer sürümlerde denenmemiştir.

Şu dosyayı açınız: catalog/controller/account/register.php ve aşağıdaki satırı bulun.

if ((utf8_strlen($this->request->post['telephone']) < 3) || (utf8_strlen($this->request->post['telephone']) > 32)) {
			$this->error['telephone'] = $this->language->get('error_telephone');
		}

Bu kodu, aşağıdaki kod ile değiştirin;

if ((utf8_strlen($this->request->post['telephone']) < 10) || (utf8_strlen($this->request->post['telephone']) > 11) || preg_match('/[^\d]/is', $this->request->post['telephone'])) {
			$this->error['telephone'] = $this->language->get('error_telephone');
		}

Bu sayede, 05554442233 gibi 0 ile başlayan telefon numarası yazabilirler. 0 olmadan da telefon numarasını yazabilirler fakat 555 gibi kısa numara yazamazlar. Harf yazamazlar. En az 10, en çok 11 adet rakam yazabilirler.

Aynı değişikliği, catalog/controller/checkout/register.php içinde yapınız.

3 ile 32 arasındaki varsayılan uzunluğu değiştirdiğimiz için, opencart dil dosyasındaki Türkçe dil çevirisini de değiştiriniz.

Kategoriler
Opencart

Opencart “company name” karakter uzunluğunu arttırma

Merhabalar,

Bir opencart siteniz var ise ve ülkemizdeki firma isimlerinin ticari ünvanlarının uzunluğu nedeniyle illaki sorun yaşadığınız oluyordur. Standartta 32 karakter olan Company Name girdisinin değerini phpmyadminden girerek düzeltebilirsiniz. Bunun için, phpmyadmin’i açınız, “order” tablosundaki, “payment_company” yapısını değiştir yapınız ve “Uzunluk/Değerler” değerini 128 yapınız. Değer aşağıdaki gibi olmalıdır.

İyi çalışmalar.

Kategoriler
İpuçlar Opencart

Opencart üzerindeki yarım kalan siparişleri (missing orders) toplu silme

Merhaba arkadaşlar,

Opencart sisteminde, bir müşteri sepete ürünleri ekleyip, ödeme aşamasında herhangi bir sorunla karşılaşıp (kredi kartı hatası vb.) yada siparişi tamamlamaktan vazgeçip siparişi sonuçlandırmadığı zaman, bu sipariş hareketi missing orders olarak sipariş ekranına işlenmekte. Bunların bir zararı yok. Taki siz ürünlere zam yapıncaya kadar. Siz bir ürüne zam yaptınız diyelim, müşteride bu ürünü daha önce sepetine eklemiş fakat ödeme aşamasında vazgeçmiş ve missing orders’a düşmüş diyelim. Bu müşteri, siz ürünlere zam yaptıktan sonra siteye giriş yapıp, sepetine daha önce eklediği ürünleri eski fiyattan satın alabilir. Bu nedenle, özellikle ürünlere zam yaptıktan sonra bu yarıda kalan siparişleri (missing orders) temizlemeniz sizin yararınıza. Benim sitemde bu missing orders’lar 864 sayfa halinde biriktiği için sayfa sayfa işaretleyip silmekle uğraşamadım. Bu nedenle, phpmyadmin’de aşağıdaki sorguyu çalıştırarak tüm yarım kalan siparişleri temizledim. Faydası dokunabileceği için paylaşmak istedim. Sorgu aşağıdaki gibidir.

 

DELETE FROM `oc_order` WHERE order_status_id = 0

Veritabanı ön ekiniz “oc_” değil ise lütfen yukarıdaki sorguyu kendinize göre düzenleyiniz yada öneki siliniz. Varsayılan ön ek “oc_” dir.

Kategoriler
İpuçlar Opencart

Opencart 1.5.6.x Ürün Koduna Göre Arama Düzeltmesi

Bildiğiniz gibi opencart 1.5.4 versiyonundan sonra ürün koduna göre arama sisteme eklendi. Fakat bu ekleme bana göre yeterli olmadı çünkü aramalarda ürün kodunun tamamı yazılmadığı takdirde sonuçlarda görüntülenmiyor. Mesela ürün kodunuz diyelim ki “12345” olsun, arama kısmına “1234” yazdığımızda “Aradığınız kriterlerde ürün bulunamadı.” yazısı ile karşılaşıyoruz. Aşağıdaki değişiklikleri yaptığınız takdirde Ürün kodunun tamamının yazılmasına gerek kalmıcak.

catalog > model > catalog > product.php yi açın

1) Aşağıdaki kodu bulun. 127. satır ve 528. satır civarında

if (!empty($data['filter_description'])) {
  $sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
 }

Altına, aşağıdaki kodu ekleyin,

if (!empty($data['filter_name'])) {
 $sql .= " OR p.model LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
}

2) Aşağıdaki kodu bulun ve silin. 140. satır ve 541. satır civarında

if (!empty($data['filter_name'])) {
 $sql .= " OR LCASE(p.model) = '" . $this->db->escape(utf8_strtolower($data['filter_name'])) . "'";
}
Kategoriler
Opencart

Opencart sipariş durumu 32 karakter sınırını değiştirme

Merhaba arkadaşlar,

Opencart 1.5.6.4’te denemiş olduğum ve sizinle paylaşmak istediğim bir düzenlemeyi aşağıda belirtiyorum.

Sipariş durumu seçeneklerinde 3 ile 32 karakter limiti bulunmakta. 32 karakter uzunluğunda bir durum güncellemesi yazabiliyorsunuz. Aşağıdaki yöntemle bu limiti istediğiniz şekilde değiştirebilirsiniz. Ben 50 yaptım. 🙂

dosyayı açın: admin/language/english/localisation/order_status.php

satırı bulun: if ((utf8_strlen($value[‘name’]) < 3) || (utf8_strlen($value[‘name’]) > 32)) {

yandaki değiştirin: if ((utf8_strlen($value[‘name’]) < 3) || (utf8_strlen($value[‘name’]) > 50)) {

sonrasında pypmyadmin ile veritabanına girin ve oc_order_status isimli tablonun özelliklerine tıklayın. name isimli girdinin uzunluk değerini değiştirin. Ekran görüntüleri ile anlatmak gerekirse,

phpmyadmin
Resmi büyütmek için tıklayın

 

 

 

 

 

 

 

Bütün işlem bu kadar. Şimdi 50 karaktere kadar değer girebilirsiniz.

Alıntı değildir.

Kategoriler
Opencart

opencart kapıda ödeme modülü için üst limit belirleme

Merhaba arkadaşlar,

Uzun süredir opencart kullanıyorum ve birçok modüllerle, eklentilerle uğraştım. Kendi düzenlemelerim sonucu çalışır hale getirdiğim eklentiler mevcut.

Özellikler kapıda ödeme nakit ve kapıda ödeme kredi kartı için bir eklentiye ihtiyaç duyuyordum. Sepetindeki ürün 250TL’yi geçince kapıda ödeme seçeneklerinin pasif olmasını istiyordum. Aşağıdaki düzenleme ile bunu gerçekleştirebilirsiniz. Tek bir dosyadaki düzenleme yeterlidir.

Öncelikle, /catalog/model/payment/cod.php dosyasını açın,

if ($status) {

kodunu bulun ve aşağıdaki kod ile değiştirin.

if ((int) $this->cart->gettotal() < 250.00) {

250TL üst limit olsun istediğim için 250TL yazdım. 250TL ve üzeri siparişlerde kapıda ödeme seçenekleri pasif olacak. Siz bu rakamı isteğinize göre düzenleyebilirsiniz.

İyi çalışmalar.

Kategoriler
İpuçlar Opencart

Opencart Tüm sayfalarda Canonical Link oluşturmak

Canonical URL Nedir? Kullanımı Nasıl?

Websiteler için en doğal şey, bir URL’nin taşınması ya da bir süre sonra kullanılmamasıdır. Bir de bunlara aynı sayfaya farklı URL’lerden ulaşılmasını eklersek, arama motoru botları için websiteler çıkmazlı, tuzaklı, sonu hüsran kapılar demek oluyor.
İşte bu yüzden SEO uyumlu yönlendirmeler bir sitenin Google görünürlüğünü direk etkileyen maddelerin başında gelir ve herhangi bir yanlış sayfaların okunmaması ve arama sonuçlarında gözükmemesi gibi kritik sonuçlar doğurabilmektedir.

2 farklı yönlendirme kullanarak bütün yönlendirmeleri SEO uyumlu yapmak mümkündür. Bunlardan biri Canonical URL ya da rel Canonical Etiketi dir.
Rel Canonical Nedir

Rel=canonical link tag’i kullanıcıların gezintisini etkilemeyen bir <link> attribute’dur; bu bakımdan meta tag’e benzer. Arama motoru botlarına ise sayfanın aslını gösteren önemli bir yönlendirmedir.

Tekrarlanan içerik problemi oluşturabilecek sayfalarda, arama sonuçlarında çıkması tercih edilen sayfayı belirlemek için tercih edilmeyen sayfalara yerleştirilir. Bu şekilde arama motorları rel=canonical’ın işaret ettiği sayfayı ilgili arama sonucunda gösterir.
Örneğin yusufsayi.com/seo-programlari ile yusufsayi.com/seo-programi sayfalarının ikisi de “SEO Programları” kategori sayfaları olsun. Google bu iki sayfa aynı sayfayı gösterdiği için herhangi bir tanesini tekrarlanan içerik olarak görüp arama sonuçlarında göstermeyecektir. Ancak yusufsayi.com/seo-programlari URL’sinde fazladan bulunan widget/sidebar vs. yüzünden bu sayfanın arama sonuçlarında gözükmesini istiyorsak; yusufsayi.com/seo-programi sayfasına rel=canonical etiketi yerleştirlmeli ve seokolog.com/seo-programlari sayfasını göstermelidir. Aşağıda, kullanımıyla ilgili detaylı bilgiye ulaşabilirsiniz.

Kaynak : http://www.seokolog.com/canonical-url-nedir/

Eklenti Canonical URL VQMOD: canonical-url

 

Yazar: Dogan Akdag Tarih: April 4, 2013 Kategori: Google SEO 8 Yorum