burakco Posted September 18, 2012 Share Posted September 18, 2012 (edited) merhabalar, ürün sayfasında gösterilen ürün ile referans değeri aynı olan diğer ürünleri nasıl listeletebilirim? yardımlarınız için şimdiden teşekkürler çözüm için : http://www.prestashop.com/forums/index.php?/topic/188681-referans-kodu-ayni-olan-urunleri-listeleme/page__view__findpost__p__936745 Edited September 21, 2012 by burakco (see edit history) Link to comment Share on other sites More sharing options...
EK-Si POS Posted September 18, 2012 Share Posted September 18, 2012 kolay değil. ücretli yardım almalısınız. Link to comment Share on other sites More sharing options...
MEG Venture Posted September 18, 2012 Share Posted September 18, 2012 Tam olarak yapmak istediğinizi anlayamadım ama sanırım bir ürün uyumluluk listelemesi arıyorsunuz. Şu adreste böyle bir uygulama projesini hayata geçirmiştik: www.inkcenter.be Printer modelleri üzerinden uyumlu olan ürünler listeleniyor. Bunu yapmak istiyorsanız ücretli bir modül kullanmalısınız. Ancak her ürün altında bu ürünle kullanılan aksesuarlar gibi ürünleri listelemek istiyorsanız, ürün düzenleme sayfasından aksesuar eklemeyi deneyebilirsiniz. Biraz daha detay verebilir misiniz? Link to comment Share on other sites More sharing options...
safa Posted September 18, 2012 Share Posted September 18, 2012 şöyle yapılabilir belki. aynı kategorideki ürünleri ürün sayfasında listeyebiliyoruz. bütün ürünlerin kategorisini ana kategoriye alırsak. bu modul üzerinden {forect} döngüsüne bir paremetre ekleyek bu ana kategori üzerindeki aynı refarans no'lu diğer ürünler çekilebilir. bu şekilde hızlı bir şekilde yapılabilir. çağların dediği gibi daha fazla bilgi verebilirsen iyi olur -Safa Link to comment Share on other sites More sharing options...
safa Posted September 18, 2012 Share Posted September 18, 2012 çağların yaptığı güzel olmuş. Link to comment Share on other sites More sharing options...
burakco Posted September 19, 2012 Author Share Posted September 19, 2012 benim dediğime en yakın cevap sefadan geldi. şimdi yapmak istediğim şu, kişi ürünün sayfasına girdiğinde sistem otomatik olarak bakılan ürün ile referans kodu aynı olan diğer ürünleride altta sıralasın. yani bana öyle bi sql sorgusu lazım ki baktığım ürünün referans kodunu bu sorguya koyduğumda aynı koda sahip diğer ürünleri çeksin. dün bu konuyu açtıktan sonra aklıma bir fikir geldi: classes/product.php dosyasını inceledim. ürün sayfasında kullanılan tüm fonksiyonlar var burada. 1,4,8,2 sürümü için 2412. satırda şöyle bir fonksiyon buldum: public static function searchByName($id_lang, $query) { $result = Db::getInstance()->ExecuteS(' SELECT p.`id_product`, pl.`name`, p.`active`, p.`reference`, m.`name` AS manufacturer_name FROM `'._DB_PREFIX_.'category_product` cp LEFT JOIN `'._DB_PREFIX_.'product` p ON p.`id_product` = cp.`id_product` LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (p.`id_product` = pl.`id_product` AND pl.`id_lang` = '.(int)($id_lang).') LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer` LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa ON pa.`id_product` = p.`id_product` WHERE pl.`name` LIKE \'%'.pSQL($query).'%\' OR p.`reference` LIKE \'%'.pSQL($query).'%\' OR p.`supplier_reference` LIKE \'%'.pSQL($query).'%\' OR pa.`reference` LIKE \'%'.pSQL($query).'%\' GROUP BY `id_product` ORDER BY pl.`name` ASC'); if (!$result) return false; $resultsArray = array(); foreach ($result AS $row) { $row['price'] = Product::getPriceStatic($row['id_product'], true, NULL, 2); $row['quantity'] = Product::getQuantity($row['id_product']); $resultsArray[] = $row; } return $resultsArray; } bu fonksiyonun bir kopyasını biraz düzenleyerek sanırım istediğim ürünleri çekebilirim diye düşünüyorum. @salvar bu kodlamanın kolay olmadığını bende biliyorum. kalkıpta kimseden oturup kodu yazmasınıda istemedim. direk konuya gelip ücretli destek almamı söyleyen veya modül satmaya çalışanlara gıcık oluyorum. forumun gerçek amacı nerde kaldı o zaman? Link to comment Share on other sites More sharing options...
MEG Venture Posted September 19, 2012 Share Posted September 19, 2012 Merhaba Konu şimdi daha net anlaşılıyor. Aynı kategorideki ürünleri ürün sayfasında gösteren bir modül var. Muhtemelen kategori id si aynı olanlari getiriyor. Bunu referans numarası ile arayacak sekilde değiştirirsen sanırım bir çözüm olur. Link to comment Share on other sites More sharing options...
burakco Posted September 19, 2012 Author Share Posted September 19, 2012 o modülüde inceledim, onda da şu şekilde bir fonksiyon kullanmışlar : public function hookProductFooter($params) { global $smarty, $cookie; $idProduct = (int)(Tools::getValue('id_product')); $product = new Product((int)($idProduct)); /* If the visitor has came to this product by a category, use this one */ if (isset($params['category']->id_category)) $category = $params['category']; /* Else, use the default product category */ else { if (isset($product->id_category_default) AND $product->id_category_default > 1) $category = New Category((int)($product->id_category_default)); } if (!Validate::isLoadedObject($category) OR !$category->active) return; // Get infos $categoryProducts = $category->getProducts((int)($cookie->id_lang), 1, 100); /* 100 products max. */ . . . . } burada verdiğim kodlarda son satırdaki getProducts fonksiyonu ile aynı kategorideki ürünleri çekmişler. getProducts fonksiyonu ise verilen kategorideki tüm ürünleri çekiyor. gördüğüm kadarıyla bu modülü bile kullansam, prestanın kendi çekirdek fonksiyonlarında benim ihtiyacımı karşılayacak bi fonksiyon yok. muhakkak sql sorgusuna müdahele etmek gerekiyor. Link to comment Share on other sites More sharing options...
MEG Venture Posted September 19, 2012 Share Posted September 19, 2012 Bahsettiginiz getproducts fonksiyonunun tanimlandigi controller dosyasını bulup, üzerinde degisiklik yapıp, override klasorune atarak onu kullanmayı deneyebilisiniz. Link to comment Share on other sites More sharing options...
burakco Posted September 19, 2012 Author Share Posted September 19, 2012 (edited) sanırım bilmediğim bişi öğrenmek üzereyim : override klasörü tam olarak ne işe yarıyor ki? niye oraya atıcam dosyayı? Edited September 19, 2012 by burakco (see edit history) Link to comment Share on other sites More sharing options...
MEG Venture Posted September 19, 2012 Share Posted September 19, 2012 Override, yani üzerine yazmak demek. Prestashop yapısı bu şekilde dizayn edilmiş. Class ve modül dosyalarını override klasörü içine attıklarınızla fiziksel olarak üzerine yazmadan değiştirebiliyorsunuz. Orijinal kurulumla gelen dosyaları core olarak kabul ederseniz, override klasörüne bu core'lar yerinde olsa bile öncelik veriliyor. Ayrıntılı anlatım için: http://www.prestashop.com/blog/en/modules_classes_and_controller_override_by_julien_breux/ İyi çalışmalar Link to comment Share on other sites More sharing options...
burakco Posted September 19, 2012 Author Share Posted September 19, 2012 çok teşekkürler, verdiğin bu ekstra bilgi ile ben bu işi hallederim artık. core dosyalara dokunmak istemiyordum, güncellemelerde değişecek diye. işim çok çok kolay oldu şimdi, sağolasın Link to comment Share on other sites More sharing options...
safa Posted September 19, 2012 Share Posted September 19, 2012 kolay gelsin; yaptığın çalışmaları paylaşırsan, diğer kullanıcılara yardımın dokunmuş olur. Link to comment Share on other sites More sharing options...
burakco Posted September 21, 2012 Author Share Posted September 21, 2012 override/classes klasörüne core dosyasına istediğim gibi bi fonksiyonu ekleyip kopyaladım. lakin admin panelinde bembeyaz sayfa çıktı. bende debug özelliğini aktif ettim ve şöyle bir hata verdi : Fatal error: Cannot redeclare class ProductCore in /home/ahmet/public_html/override/classes/Product.php on line 3564 Link to comment Share on other sites More sharing options...
burakco Posted September 21, 2012 Author Share Posted September 21, 2012 (edited) işlem tamamdır, istediğim şeyi tavsiyeleriniz sayesinde yaptım. productcategory modülünü biraz düzenledim. aralarındaki tek fark kategorideki ürünleri çeken fonksiyon yerine kendi sql sorgumu kullandım. core dosyalarına dokunulmadı, direk modül içersinden hallettim işi. modülü kendi sitenize yükleyince direk kullanamazsınız, productsref.php dosyasındaki sql sorgusunu kendi veritabanı prefixinize göre editlemeniz gerekiyor. farklı bir ürün giriş sistemi kullananlarda belki çalışmayabilir sql sorgusu. prestanın veritabanına biraz yabancıyım tablolarda arama yapa yapa bişiler çıkardım. bu konuda uzman arkadaşlar umarım modülü herkese uygun hale getirebilirler. productsref.zip Edited September 21, 2012 by burakco (see edit history) Link to comment Share on other sites More sharing options...
MEG Venture Posted September 21, 2012 Share Posted September 21, 2012 Tebrik ederim. Çok güzel bir çalışma olmuş. Birçoklarının problemine bir çözüm yolu göstermiş oldunuz. Fikir sizden, geliştirme bizden olsun. Manuel ayar gerektirmeksizin, fırsatım olunca modüle çevirip buradan ya da sitemden yayınlarım. Selamlar... Link to comment Share on other sites More sharing options...
burakco Posted September 21, 2012 Author Share Posted September 21, 2012 sağolasın, sayenizde. bu arada site adresini öğrenebilir miyim? Link to comment Share on other sites More sharing options...
MEG Venture Posted September 21, 2012 Share Posted September 21, 2012 Site yapım aşamasında. Açılınca imza bölümünde ve burada yayınlayacağım. Selamlar... Link to comment Share on other sites More sharing options...
safa Posted September 22, 2012 Share Posted September 22, 2012 işleminin halolduğuna sevindim ama standart prestashop fonksiyonları ile kendi sql sorgunu yazmdan halolabilir gibi geldi bana. Link to comment Share on other sites More sharing options...
burakco Posted September 24, 2012 Author Share Posted September 24, 2012 bende öyle düşünmüştüm ama istediğim şekilde standart bi fonksiyon bulamadım. Link to comment Share on other sites More sharing options...
burakco Posted September 24, 2012 Author Share Posted September 24, 2012 (edited) modülün sitedeki son hali (exrtaRight kancası ile kullandım). incelenen ürünün diğer renklerini göstermek için kullanılabilir. NOT: kombinasyonlada yapılabilirdi, fakat ayakkabı sitelerini incelerseniz hiç birinde prestadaki gibi renk ve numara seçimi yapılmıyor. her ayakkabının rengi farklı bir ürün gibi giriliyor sisteme. size sadece numara seçimi yapmak kalıyor. Edited September 24, 2012 by burakco (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now