1
我有一個幾乎完整的解決方案,按區域選擇性地顯示Magento產品。Magento產品收集按自定義篩選多個選擇屬性
的地區是:世界
所有客戶都已經分配到的區域,這是我通過變量$ customerRegion提供的
英國
歐洲
美洲
中東
休息。
我所有的Magento產品都有一個自定義屬性'product_region',它具有可用於多選的區域選項。
list.phtml應該只顯示符合客戶區域的產品。我有一個部分工作的解決方案:
$_productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter(Mage::getSingleton('catalog/layer')->getCurrentCategory())
->addAttributeToFilter('product_region',
array('eq' => Mage::getResourceModel('catalog/product')
->getAttribute('product_region')
->getSource()
->getOptionId($customerRegion)
)
)
->addAttributeToSelect('*');
如果客戶的地區是英國和產品的地區是英國,過濾器工作正常。
如果客戶的地區是英國,而產品的地區是英國和歐洲,則過濾器無法按預期工作(未給出結果)。
如何調整過濾器以獲得所需的行爲?
我嘗試過使用'in'和'like'代替'eq',但沒有成功。
謝謝。
P.S.查看同一問題的一個更簡單的方法是看下面的代碼:
->addFieldToFilter(array(
array('attribute'=>'product_region','eq'=>'49')
))
謝謝! 'finset'是解決方案。 我已經查詢了http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento 所有過濾條件代碼,如果您之前沒有看到過,finset意味着FIND_IN_SET() – TonyC83