2013-02-19 42 views
0

我的問題如下:Magento爲新產品創建URL重寫,並在不同列表中使用不同的URL。如果我的產品分爲FooBar兩個類別,則Magento會在我真正想要的一個上面使用兩個網址。強制Magento在所有列表中只使用一個URL

  • 在類別列表Foo => /store/type/foo/product.html
  • 在類別列表Bar => /store/type/bar/product.html
  • 在正常連接/store/product.html

我想/需要得到的Magento只使用URL /store/product.html整個商店。我還沒有在管理頁面找到任何設置。

使用Magento 1.5.1.0

回答

1

由於某種原因,Magento忽略了所有商店的設置。搜索代碼後,我發現方法Mage_Catalog_Model_Product_Url::getUrl()使用$product->getDoNotUseCategoryId()檢查此設置。我稱這種方法爲NULL返回所有產品。

爲了解決這個問題,我在自己的產品類重載這個方法:

public function getDoNotUseCategoryId(){ 
    return true; 
} 

這工作。

這可能是一個不存在的屬性或什麼的問題,但只要這個工作,我會使用它。

3

將系統 - >配置 - >目錄中的「使用產品URL的類別路徑」屬性更改爲「否」。

+0

它已被設置爲「否」所有商店。 – Lanbo 2013-02-19 12:23:45

+0

嘗試重建URL索引。這不會比我不知道這裏會有什麼不好... – 2013-02-19 12:33:57

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;

希望這會幫助別人。

相關問題