0

我的问题如下: Magento 为新产品创建 URL 重写,并在不同的列表中使用不同的 URL。如果我的产品属于两个类别FooBarMagento 将在我真正想要的 URL 之上使用两个 URL。

  • 在类别列表中Foo => /store/type/foo/product.html
  • 在类别列表中Bar => /store/type/bar/product.html
  • 在正常链接中/store/product.html

我希望/需要让 Magento/store/product.html在整个商店中仅使用 URL。我在管理页面中没有找到任何设置。

使用 Magento 1.5.1.0

4

3 回答 3

3

将系统 -> 配置 -> 目录中的“使用产品 URL 的类别路径”属性更改为“否”。

于 2013-02-19T12:20:29.133 回答
1

出于某种原因,Magento 忽略了所有商店的设置。搜索代码后,我发现该方法Mage_Catalog_Model_Product_Url::getUrl()使用$product->getDoNotUseCategoryId(). 我调用了这个方法,它返回NULL了所有产品。

为了解决这个问题,我在自己的产品类中重载了这个方法:

public function getDoNotUseCategoryId(){
    return true;
}

这行得通。

这可能是一个不存在的属性或其他东西的问题,但只要它有效,我就会使用它。

于 2013-02-19T13:10:48.947 回答
0

有一种简单的方法可以在每个位置执行此操作,将 Url.php 从app\code\core\Mage\Catalog\Model\Product和过去的 URl.php 复制到app\code\local\Mage\Catalog\Model\Product. 之后需要更新getUrl功能。

找到这一行:$categoryId = $product->getCategoryId() && !$product->getDoNotUseCategoryId() ? $product->getCategoryId() : null;并更新$categoryId = $product->getCategoryId() && Mage::getStoreConfig('catalog/seo/product_use_categories') ? $product->getCategoryId() : null;

希望这会对某人有所帮助。

于 2013-08-22T12:29:14.257 回答