生成的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