Saya mendapatkan koleksi produk dari kategori tertentu pada halaman di beberapa situs Magento yang berbeda. Kode saya untuk mendapatkan koleksi adalah:
$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;
Masalah saya adalah bahwa di salah satu situs Magento kami menjalankan ProductUrl()
yang diambil adalah URL sepertihttp://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/
dan bukan lebih suka http://www.site.com/shopcat/product-url-key.html
. Tetapi di semua situs lain itu muncul seperti yang kita inginkan.
Adakah yang tahu mengapa ini terjadi? Terima kasih! Saya mencoba menggunakangetUrlPath()
juga tetapi ini tidak mengembalikan apa pun. Saya tahu saya bisa menyelesaikan ini dengan melakukan sesuatu seperti <?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>
tetapi metode itu tampaknya sedikit tidak efisien!
EDIT 21/03/14: Saya masih mengalami masalah ini. Saya menyadari getProductUrl()
mengambil URL yang diinginkan pada beberapa file templat situs tetapi tidak pada yang lain. Misalnya, saya memuat satu koleksi di beranda dan memberi saya URL yang saya inginkan. Tetapi getProductUrl()
tidak memberi saya URL yang saya inginkan dengan kode yang sama pada tampilan kategori.