Birkaç farklı Magento sitesindeki bir sayfada belirli bir kategorinin ürün koleksiyonunu alıyorum. Koleksiyon almak için kodum:
$category = new Mage_Catalog_Model_Category();
$category->load($id);
$collection = $category->getProductCollection();
$collection->addAttributeToSelect('*');
$collection->addAttributeToFilter('status', 1);
$collection->addFieldToFilter(array(array('attribute'=>'visibility', 'neq'=>"1" )));
$collection->getSelect()->limit(12);
foreach ($collection as $shopProduct) :
echo $shopProduct->getProductUrl();
endforeach;
Benim sorunum Magento sitelerinden birinde çalıştırılmakta olan ProductUrl()varlık bir URL gibi http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/ve daha fazla değil gibi olmasıdır http://www.site.com/shopcat/product-url-key.html. Ancak diğer tüm sitelerde istediğimiz gibi görünüyor.
Bunun neden olabileceğini bilen var mı? Teşekkürler! Ben getUrlPath()de kullanmayı denedim ama bu bir şey dönmedi. Biliyorum böyle bir şey yaparak bunu başarabilirim <?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>ama bu yöntem biraz verimsiz görünüyor!
EDIT 21/03/14: Bu sorunu hala yaşıyorum. getProductUrl()Sitenin bazı şablon dosyalarında istenen URL'yi aldım , diğerleri değil. Örneğin, ana sayfaya bir koleksiyon yüklüyorum ve bana istediğim URL'leri veriyor. Ancak getProductUrl()bana kategori görünümünde aynı kodla istediğim URL'leri vermiyor.