質問

製品コレクションをフィルタリングする方法Store 2では、ストア2に含まれていない製品のみを含めるようにフィルタリングする方法3.その他の店舗は店舗2に含まれていますが、Store 3では入手できません。

product->storeids() = 2,1 (yes)
product->storeids() = 2 (yes)
product->storeids() = 1,2,3 (no)
product->storeids() = 3 (no)
product->storeids() = 1 (no)
.

役に立ちましたか?

解決

概念についてもう少し:製品は「店に属していません」。ストアビューで表示から除外したい場合は、最も一般的なメソッドIMHOはこのストアの範囲で「表示されていない」

に表示することです。

フラットカタログが有効になっていてこの機能をサポートする必要がない場合は、単に使用することができます。

$collection = Mage::getModel('catalog/product')->getCollection()
                ->setStoreId($myStoreId)
                ->addAttributeToFilter('visibility', array(
                    'neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE
                ));
.

または、ストアに異なるルートカテゴリを使用する場合は、単にカテゴリフィルタを設定することができます。

$rootCatId = Mage::app()->getStore($myStoreId)->getRootCategoryId();
$rootCat = Mage::getModel('catalog/category')->load($rootCatId);
$collection = Mage::getModel('catalog/product')->getCollection()
                    ->setCategoryFilter($rootCat);
.

フラットカタログを使用する場合は、問題の詳細な説明と解決策が見つかります。 mage_catalog_model_resource_product_collectionのストアIDを設定する方法?

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top