![](/img/trans.png)
[英]Magento 2 - Filter collection for a multiselect custom product attribute
[英]Magento Product Collection Filter by Custom Multiple Select Attribute
我有一個幾乎完整的解決方案,可以按區域選擇性地顯示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',但沒有成功。
謝謝。
PS查看同一問題的更簡單方法是查看以下代碼:
->addFieldToFilter(array(
array('attribute'=>'product_region','eq'=>'49')
))
使用finset
而不是eq
(多個選擇值以CSV格式存儲)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.