生成的URL不正確,因爲它無法找到重寫的URL。 也許這是由於store_id不正確而引起的。 如:
$id = 290;
Mage::app()->setCurrentStore('default');
echo "store_id: ".Mage::app()->getStore()->getId()."<br>";
$url = Mage::helper('catalog/product')->getProductUrl($id);
echo $url."<br>";
//change store id
Mage::app()->setCurrentStore('admin');
echo "store_id: ".Mage::app()->getStore()->getId()."<br>";
$url = Mage::helper('catalog/product')->getProductUrl($id);
echo $url."<br>";
結果:
store_id: 1
http://local.com/surestep-pro-diabetic-test-strips-50-strips-professional-care.html
store_id: 0
https://local.com/index.php/catalog/product/view/id/290/s/surestep-pro-diabetic-test-strips-50-strips-professional-care/
正確的URL重寫可以在表命名core_url_rewrite(包括有關STORE_ID的信息)
發現如果在core_url_rewrite找到匹配值,它會生成'正確的網址',否則它會鏈接product_id + url鍵+ category_id
$routePath = 'catalog/product/view';
$routeParams['id'] = $product->getId();
$routeParams['s'] = $product->getUrlKey();
if ($categoryId) {
$routeParams['category'] = $categoryId;
}
謝謝!我可以看到現在發生了什麼,實際上,當您查看某個類別的產品並且相關/加售產品不在同一類別中時,會發生這種情況。通過使用urlpath,它從根獲得它。奇蹟般有效! – cappuccino 2012-07-31 05:51:37
感謝Kalpesh,有同樣的問題,大量挖掘並發現!輝煌!! – 2013-08-10 14:35:49
@AdamLesniak很高興幫助:) – Kalpesh 2013-08-11 21:58:27