あるカテゴリに単純な製品と仮想製品があるとしましょう。ログインしている顧客とログインしていない顧客について、製品をフィルタリングしてそのカテゴリの下に表示したいと考えています。ログイン状態、非ログイン状態ともに問題ありません。問題はコレクション フィルターにあります。
仮想製品の「ファイルサイズ」属性があるとしましょう。イベントを観察することcatalog_product_collection_load_before
で、ログインしていない顧客がすべての単純な製品とファイルサイズ = 1,2 の仮想製品を表示できるようにフィルタリングしたいと考えています (1MB と 2MB、複数選択属性を意味します)。また、ログインしているすべての顧客は、すべてのシンプルな製品に加えて、すべてのファイルサイズの仮想製品を表示できます。
ログインしていない顧客向けのコレクション コードは次のようになります。
$observer->getCollection()->addAttributeToSelect('filesize','type_id')
->addAttributeToFilter('type_id', array('eq' => 'simple'))
->addAttributeToFilter('filesize', array('in' => array(1,2)));
しかし、うまくいきません。どうやってやるの?前もって感謝します。