• 01-04-2021, 00:50:24
    #1
    Selamlar,
    Müşteri adres bölümüne zorunlu olarak belirlediğim ve "mahalle" adını verdiğim seçenekli özel alanı fatura çıktı şablonuna ve admin panelde sipariş sayfasındaki adres kısmına eklemek istiyorum. Fakat özel alanı hangi kodla çağırabilirim bir fikrim yok. Aramaların sonucunda şuradaki sitede bir kod buldum ama çalıştıramadım.


    Opencart kullanıcılarının son günlerde en çok karşılaştığı sorunlardan birisi müşteri kaydı alırken TC Numarası istemek. İnternetten satış yapan firmalar yaygın olarak Opencart kullanmaktadır. Yasal olarak zorunlu olan TC Numarasının alınması fatura kesme aşamasında çokça sorulan ve çözümü forum sitelerinde bulunmayan bir bilgidir. Hatta durum o kadar talep görmektedir ki basit bir kod ekleme işlemi için 100 tl civarı başlayan ücretler isteyen sitelere şahit olmaktayız.

    Opencart Özel Alan Ekleme ve TC No Ekleme

    Sürüm 2.3.0.2 sürümünde yaptığım bu işlem genel olarak diğer sürümlerde de aynı mantıkla çalışmaktadır. Öncelikle

    Admin panelden Müşteriler/ Özel Alanlar sekmesine tıklıyoruz.
    Karşımıza gelen alanları dolduruyoruz. Bu alanlarda
    Özel Alan Adı : Müşterinin göreceği isimdir TC No gibi fazla uzun olmayacak türden kısa bir isim girin
    Konum Kısmında hesap ve adres kısımlarından hesap seknesini seçiyoruz.
    Türü : Metin olarak seçiyoruz. Burada başka bilgilerin istendiği durumlarda diğer seçenekleri de kullanabilirsiniz.
    Müşteri Grubunda hangi müşterilerin doldurmasını istiyorsanız onu seçin. Mutlaka bir grubun seçilmesi gerekmektedir.
    Gerekli : Bu alanı seçerseniz istenen bilginin girilmesi zorunlu hale getirilir. TC doldurulmadığı zaman üyelik gerçekleşmez, uyarı çıkar.
    6-) Özel Alan Değer Adı : Bu alan ise oluştruğumuz özel alan için değer girebileceğimiz bir kısımdır.
    Bu aşamaya kadar anlattığımız bilgiler TC No , Telefon Numarası gibi özel alanları müşterinin girmesini istediğimizde yapacağımız özel alan ekleme işlemdir. Gelelim diğer sitelerde bulamayacağınız faturada özel alan ekleme koduna

    TC Numarası, Cep Telefon Numarası gibi Özel Alanları Faturada Göstermek

    Öncelikle ftp den admin/wiev/template/sale/order_invoice.tpl sayfasını açıyoruz. Aşağıdaki kodu özel alanın faturada yazılmasını istediğimiz kısmına ekliyoruz.

    <?php foreach ($account_custom_fields as $custom_field) { ?>
    <b><?php echo $custom_field['name']; ?>: </b>
    <?php echo $custom_field['value']; ?>
    <?php } ?>


    Sitedeki kod şu şekilde:
    <?php foreach ($account_custom_fields as $custom_field) { ?>
          <b><?php echo $custom_field['name']; ?>: </b>
        <?php echo $custom_field['value']; ?>
    <?php } ?>
    Amacım: Müşterinin benim özel alan olarak belirlediğim mahalleyi seçerek adresini kaydetmesi. Bu adresin de özel alan (mahalle) ile birlikte hem admin panel sipariş detay sayfasındaki adres kısmında hem de fatura çıktı sayfasındaki adres kısmında çıkması.

    Bu olmazsa:
    Uğraştık yapamadık diyelim, ozaman mevcutta olan "İlçe / Semt" olanının ismini mahalle yapıp altına seçenek ekleyebilir miyiz?

    Bu kadar detaylı yazmamın sebebi, aynı veya benzer konuda bir çok kişinin destek aradığını ve bulamadığını gördüm. Belki buradan hem bana hem de destek arayanlara çare bulabiliriz.

    Teşekkürler.
  • 01-04-2021, 01:24:36
    #2
    Bu şekilde tüm özel alanlar çıkar.

    Panel tarafında önce özel alan olarak oluşturduğunuz mahalle alanının ID numarasını bulun:
    Panel>müşteriler>özel alanlar'dan düzenleey tıklayın URL'de
    Alıntı
    token=7QUXQMuYE5ublFWfbdSvXol2tgJrauXc&custom_fiel d_id=1
    Kalın işaretlenen yer ID'dir. AMA:
    Konum: adres
    Türü: Metin //edit: konuyu tekrar okudum. Fark etmez bu alanı seçenek de yapabilirsiniz.
    Müşteri grupları: tümü
    Gerekli: evet
    olmasına dikkat etin.

    Ön tarafta adres düzenleme sayfasını kontrol edin aşağıdaki gibi olmalı:


    Sonra admin/controller/sale/order.php dosyasında invoice() (1465-1673 satırları arasında kalır) fonksiyonu içinde :

    Kırmızı ile çizdiğim alana dikkat edin. onun üstündeki $replace değişkeninine
    altı siyah olan yeri eklemeniz gerekiyor.
    Sarı alan'da 1 yazıyor o da yukarıda az önce bulduğumuz alanın ID'si. onu yazın.



    Ve tebrikler sonuç;
  • 01-04-2021, 11:01:48
    #3
    fskgrup adlı üyeden alıntı: mesajı görüntüle
    Türü: Metin //edit: konuyu tekrar okudum. Fark etmez bu alanı seçenek de yapabilirsiniz.
    Hocam konuyu çok güzel anlatmışsınız teşekkür ederim. Dediklerinizi yaptım. Özel alan türünü metin yapınca çalışıyor fakat seçenek yapınca çalışmıyor maalesef. Seçenekli olan yere rakam geliyor. En alttaki resimde görebilirsiniz.
    Alanı metin yaptığımda da fatura çıktısında alanlar geliyor ama panelde sipariş sayfasına gelmiyor. Buranın dosyası farklı mı?

    Panel sipariş sayfası


    Çıktı sayfası

  • 01-04-2021, 11:38:03
    #4
    Mobildeyim. Detaylı cevabı akşam verebilirim.

    Metin olarak kullanacaksınız altını siyah işaretlediğim alanı o dosyada her yerde uygularsanız düzelir.

    Seçenek için, ufak bir kod lazım ama denemeden yazamayacağım.
  • 01-04-2021, 11:46:34
    #5
    fskgrup adlı üyeden alıntı: mesajı görüntüle
    Mobildeyim. Detaylı cevabı akşam verebilirim.

    Metin olarak kullanacaksınız altını siyah işaretlediğim alanı o dosyada her yerde uygularsanız düzelir.

    Seçenek için, ufak bir kod lazım ama denemeden yazamayacağım.
    Seçenek kullanmam gerekli hocam sizden dönüş bekliyorum. Teşekkürler.
  • 01-04-2021, 18:04:00
    #6
    Seçenek olarka değiştirdim. Olay yine aynı sadece kod bölümüne şunları yapmanız lazım.






    Yukarıdaki gibi kodu revize etmeniz lazım. Kodlar:

                    $this->load->model('customer/custom_field');
    
                    $custom_field_id = 1; //Buraya aldığınız ID bilgisini girin.
                    $custom_field_info = $this->model_customer_custom_field->getCustomField($custom_field_id);
                    $custom_name = "";
                    if($custom_field_info['type']=="select" || $custom_field_info['type']=="radio"){
                        $custom_field_info = $this->model_customer_custom_field->getCustomFieldValues($custom_field_id);
                        $custom_name = $custom_field_info[$order_info['payment_custom_field'][$custom_field_id]]['name'];
                    }else{
                        $custom_name = $order_info['payment_custom_field'][$custom_field_id];
                    }
  • 02-04-2021, 00:44:52
    #7
    F10 adlı üyeden alıntı: mesajı görüntüle
    panelde sipariş sayfasına gelmiyor. Buranın dosyası farklı mı?

    Panel sipariş sayfası
    Hocam zaman ayırdığınız ve verdiğiniz emek için teşekkür ederim. Son yaptığınız değişiklikliği yaptım ve oldu. Yukarıda belirttiğim alan ile ilgili fikriniz var mı? Zamanınız olursa yazmanızı rica ederim. Özel mesaj yerine buradan yazıyorum ki başkaları da faydalansın. @fskgrup;
  • 02-04-2021, 00:55:52
    #8
    Evet evet ben teşekkür ederim pm e geçmediğiniz için. Herkese faydalı olmasını severim.

    Şöyle belirtmiştim:

    Metin olarak kullanacaksınız altını siyah işaretlediğim alanı o dosyada her yerde uygularsanız düzelir


    İnvoice fonksiyonu içinde yaptık, info içindede yapın, shipping içinde de yapın. Tamamdır bu iş.
  • 16-12-2021, 17:43:26
    #9
    fskgrup adlı üyeden alıntı: mesajı görüntüle
    Bu şekilde tüm özel alanlar çıkar.

    Panel tarafında önce özel alan olarak oluşturduğunuz mahalle alanının ID numarasını bulun:
    Panel>müşteriler>özel alanlar'dan düzenleey tıklayın URL'de
    Kalın işaretlenen yer ID'dir. AMA:
    Konum: adres
    Türü: Metin //edit: konuyu tekrar okudum. Fark etmez bu alanı seçenek de yapabilirsiniz.
    Müşteri grupları: tümü
    Gerekli: evet
    olmasına dikkat etin.

    Ön tarafta adres düzenleme sayfasını kontrol edin aşağıdaki gibi olmalı:


    Sonra admin/controller/sale/order.php dosyasında invoice() (1465-1673 satırları arasında kalır) fonksiyonu içinde :

    Kırmızı ile çizdiğim alana dikkat edin. onun üstündeki $replace değişkeninine
    altı siyah olan yeri eklemeniz gerekiyor.
    Sarı alan'da 1 yazıyor o da yukarıda az önce bulduğumuz alanın ID'si. onu yazın.



    Ve tebrikler sonuç;

    Merhaba @fskgrup; hocam yazmış olduğunuzu kendime göre revize etmeye çalıştım ama istediğimi elde edemedim. Vergi no ve vergi dairesi alanlarını faturaya ekletmek istedim müşteri grubuna göre ama yapamadım. Neyi yanlış yapıyorum hocam?

    Sipariş geçmişinde vergi no ve vergi dairesi gözüküyor ama admine gelen sipariş mailinde bu 2 alan gözükmüyor. Kurumsal ve bireysel siparişi mail üzerinden anlayabilmek için böyle bir işlem yapmaya çalışıyorum.