我的Magento 1.7安装有一个奇怪的问题,所有的产品url都有类别键在他们,但Up-Sell产品(在产品的详细信息页面上)显示的url与类别键缺失。相关产品的url是可以的。
我的Magento设置如下::
- "使用类别路径作为产品url " =>是
- "如果URL密钥改变,为URL创建永久重定向" =>否
- "使用父类别路径作为类别url " =>否
我的产品是::
- 位于2个品类层次深,表示cat1/cat2/product
- 所有产品的url格式如下::site_url/cat2/product_key
- 一个产品出现在多个类别下
我找到了一个解决方案,在Upsell产品的URL中包含类别名称…
我必须修改my_theme/template/catalog/product/list/upsell.phtml
在第51行周围,就在
行后面<?php if($_link=$this->getIterableItem()):
我添加了以下行::
$d = $_link->getData();
$id = $d['entity_id'];
$_product = Mage::getModel('catalog/product')->load($id);
$_categories = $_product->getCategoryIds();
$_category = Mage::getModel('catalog/category')->load($_categories[0]);
$cat_url = str_replace(".html","",$_category->getUrlPath());
$_url = Mage::getUrl($cat_url).basename($_link->getProductUrl());
使用$_url变量作为产品的URL。
如果$_categories是if-function
$d = $_link->getData();
$id = $d['entity_id'];
$_product = Mage::getModel('catalog/product')->load($id);
$_categories = $_product->getCategoryIds();
if($_categories) {
$_category = Mage::getModel('catalog/category')->load($_categories[0]);
$cat_url = str_replace(".html","",$_category->getUrlPath());
$_url = Mage::getUrl($cat_url).basename($_link->getProductUrl());
}
对于输出url:
<?php if ($_categories) { echo $_url; }; ?>