2010-12-17 11 views
0

Magentoのは、以下を含む製品のURLのために働く異なるフォーマット、多くの持っているようだ:すべて連結し、私はちょうど第三一つである、常に、これらのいずれかを使用したいMagentoの一貫した製品のURL

/catalog/product/view/id/123/s/my-product-slug/ 
/my-product-slug/ 
/top-category/sub-category/my-product-slug/ 
etc... 

を製品のスラッグの前に親カテゴリのスラッグを一緒にします。 Magentoがこれらのフォーマットの1つだけを使用するように設定する方法はありますか?

getProductUrl()のような方法を使用すると、現在表示されているページ/コンテキストによって結果が異なるように見えます。

一般的に誰かがMagentoでのルーティングを少し上手く理解するのを助けるかもしれないドキュメントやブログの投稿などを知っていますか?

ありがとうございます!

答えて

3

clockworkgeekは...かなり近かったと私の答えに私を導いた

私は$product->setCategoryId()を使用してみましたし、$product->getCategoryId()は何も返していなかったこととMage_Catalog_Model_Product_Url::getUrl方法は上getCategoryId方法に依存していることを見出しました。製品のURLを把握することができます。 getCategoryIdは、Mage::registry('current_category')という値を返す製品モデル(私が想定しているような魔法ではない)に明示的に定義されています。だから私は基本的に私のニーズを満たすために 'current_category'を登録し、登録を解除しました。

これでも私の質問は部分的には未回答です。私はハックし、私が望んでいたURLを得る方法を考え出しましたが、技術的には乱雑な/catalog/product/view/id/123/s/my-product-slug/タイプのURLはまだ機能しています。URLの品種のすべてをカテゴリに分類されたものにルーティングしたいと思います。 Magentoでは、単一の標準的なURLスタイルを定義できることは素晴らしいことです。誰かがこれについてのさらなる洞察力を持っている場合は、私に教えてください!

0

私は、これは何が必要であるのかはわからないし、今確認したが、この試すことができません:私はあなたの製品がカテゴリIDを含める必要がありますかなり確信しているURLを強制的に

$product_url = "http://www.domain.com/".$product->getUrlPath(); 
2

を。

$product->setCategoryId(7)->getProductUrl(); 

もちろん、7は単なる例です。製品は多くのカテゴリに属している可能性があります。そのため、製品を選択する方法を決める必要があります。

+0

ありがとうございます!これはかなり正確ではありませんでしたが、それは私に答えてみましょう:) –

関連する問題