1

我的 Magento 安装有问题。我正在使用追加销售功能来提供一些更有趣的产品。到目前为止,输出有效,但产品网址存在很大问题。

该 url 链接到 my-shop.com/product.html 而不是 my-shop.com/category-1/category-2/product.html。这很糟糕,因为我正在为每个顶级类别调用一个特殊的侧边栏导航。所以什么都没有显示...

我正在使用标准的追加销售输出:

<a href="<?php echo $_link->getProductUrl() ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_link, 'small_image')->resize(115) ?>" width="115" height="115" alt="<?php echo $this->htmlEscape($_link->getName()) ?>" title="<?php echo $this->htmlEscape($_link->getName()) ?>" /></a> <h3 class="product-name"><a href="<?php echo $_link->getProductUrl() ?>"><?php echo $this->htmlEscape($_link->getName()) ?></a></h3> <?php echo $this->getReviewsSummaryHtml($_link) ?> <?php echo $this->getPriceHtml($_link, true, '-upsell') ?>

(不能贴出全部代码,编辑会删掉大部分)

我用 $_link->getProductPath() 试过了,但是输出是空的。

我还检查了系统->配置->目录->搜索引擎优化中的设置。使用产品 URL 的类别路径设置为是。

有人知道如何获取产品的完整路径网址吗?

谢谢您的帮助。

4

2 回答 2

1

您可以使用以下逻辑来获取产品 url。相应地更新变量。

<?php
    $_prodcats = $_product->getCategoryIds();
    $_cat = Mage::getModel('catalog/category')->load($_prodcats[0]);
    $produrl = $this->helper('catalog/output')->productAttribute($_product, $_product->getRequestPath(), 'request_path') ;
    if($this->getRequest()->getModuleName() == 'catalogsearch') {
        $produrl = '/'. basename($_cat->getUrl()) .'/' . basename($_product->getProductUrl()) ;
    }
?>
于 2012-09-14T12:51:12.017 回答
1

我在网上找到了适用于 1.9.2.1 的解决方案。追加销售产品成为与类别链接的链接。

$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());

然后使用这个网址

<a href="<?php echo $_url; ?>">Link</a>

我仍然有刚刚添加的创建的sitemap.xml的问题

www.website.com/product而不是

www.website.com/category/product

即使“使用产品 URL 的类别路径”设置为 YES

于 2015-12-20T17:13:37.277 回答