簡體   English   中英

Magento產品系列按自定義多選屬性篩選

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM