親カテゴリーに製品が割り当てられていなくても、親カテゴリーはサブカテゴリーの製品を表示しています


9

あるカテゴリに「衣類」があり、このカテゴリにサブカテゴリの「Tシャツ」があるとします。

次に、Tシャツカテゴリに商品を追加します([商品を追加]画面のチェックボックスをオンにします)が、衣料品カテゴリはチェックしません。したがって、これはフロントエンドのTシャツカテゴリにのみ表示され、親カテゴリの衣類には表示されないことを意味すると想定しました。

ただし、この商品は衣類およびTシャツのカテゴリに表示されます。

Tシャツのカテゴリが[ナビゲーションメニューに含める]>カテゴリなし、つまり非表示になっているため、これは問題です。カテゴリ内のすべての製品はカタログを表示できるため、検索結果に表示されません。

私はこれまでかなり深く調査してきましたが、問題はMagentoカタログのインデックス付けにあることがわかりました。システム>インデックス管理からCategory Productsインデクサーを実行すると、インデックスが再構築され、が実行されMage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product::reindexAll()ます。

この関数は、いくつかのカテゴリ関連のテーブルからさまざまなデータを選択し、それをカタログページの製品コレクションを生成するために使用されるテーブルであるcatalog_category_product_indexテーブルにパイプします。

親カテゴリに表示されるサブカテゴリから製品を非表示/防止する方法について何か提案はありますか?

Magento 1.4.1.0を使用しています。衣料品のカテゴリはアンカーに設定され、Tシャツのカテゴリは設定されていません。[フラットカテゴリを使用]は[はい]に設定されています。

回答:


13

これは実際には機能です。これを回避したい場合は、親カテゴリーでフラグ「アンカー」を「いいえ」に設定する必要があります。あなたの例では「衣類」。このように、親カテゴリには、直接割り当てられている製品のみが表示されます。
変更を行った後、すべてのインデックスを再作成する必要があります。


2
ああ、でもレイヤードナビゲーションを使用しているので、親カテゴリに「Is Anchor」を維持する必要があります。
ProcessEight 2013年

えっと…それであなたは問題があると思います 私はこれについての考えがありません。
マリウス

Tシャツカテゴリの階層型ナビゲーションは必要ないので、Tシャツカテゴリを衣料品から移動すると思います。つまり、直接関連する製品のみが表示されます
ProcessEight

@ sfrost2004では、Tシャツは衣服ではありませんか?私はそれらを間違って使用していると思います...
Benubird 2013

2
hmmm私は@ stackoverflow.com / questions / 22990622 /を探していました…$ this-> _ productLimitationFilters ['category_is_anchor'] = 1; そして多分何かこれをリンクします$ this-> getLoadedProductCollection()-> addAttributeToFilter( 'is_parent'、array( 'eq' => 1))-それが親の場合
snh_nl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.