ฉันได้รับชุดผลิตภัณฑ์บางประเภทในหน้าหนึ่งในเว็บไซต์ Magento ที่แตกต่างกัน รหัสของฉันสำหรับรับชุดคือ:
$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;
ปัญหาของฉันคือว่าหนึ่งในเว็บไซต์ Magento ที่เรากำลังเรียกใช้ProductUrl()
นั้นเป็น URL ที่http://www.my site.com/catalog/product/view/id/2309/s/shopcat/category/373/
ไม่เหมือนhttp://www.site.com/shopcat/product-url-key.html
ใคร แต่ในเว็บไซต์อื่น ๆ มันปรากฏตามที่เราต้องการ
ไม่มีใครรู้ว่าทำไมสิ่งนี้อาจเป็นเพราะอะไร? ขอบคุณ! ฉันลองใช้getUrlPath()
ด้วย แต่ก็ไม่ได้อะไรกลับมา ฉันรู้ว่าฉันสามารถทำสิ่งนี้ได้โดยทำสิ่งที่ชอบ<?php echo $this->getBaseUrl().$shopProduct->getUrlKey().".html"; ?>
แต่วิธีการนั้นดูเหมือนไม่มีประสิทธิภาพ!
แก้ไข 21/03/14:ฉันยังคงมีปัญหานี้ ฉันได้รับรู้ถึงการgetProductUrl()
ดึง URL ที่ต้องการในไฟล์เทมเพลตบางไฟล์ของเว็บไซต์ ตัวอย่างเช่นฉันกำลังโหลดคอลเล็กชันหนึ่งในหน้าแรกและมันมอบ URL ที่ฉันต้องการให้ฉัน แต่getProductUrl()
จะไม่ให้ URL ที่ฉันต้องการด้วยรหัสเดียวกันในมุมมองหมวดหมู่