Magento - 由多个SKU过滤产品系列

时间:2011-02-25 18:33:27

标签: magento

我知道可以用一个SKU过滤集合,如下所示:

$_testproductCollection = Mage::getResourceModel('catalog/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('SKU', array('like'=>array('my-sku')));
$_testproductCollection->load();

但是有没有办法添加SKU列表,如下所示(不起作用):

->addAttributeToFilter('SKU', array('like'=>array('my-sku1, my-sku2, my-sku3')))

3 个答案:

答案 0 :(得分:22)

我没有测试过这个,但我相信这样的事情应该有效:

->addAttributeToFilter( 'sku', array( 'in' => array( 'my-sku1', 'my-sku2', 'my-sku3' ) ) )

答案 1 :(得分:11)

为未来的冒险家。

$productSkuString = 'PROD001, PROD002, PROD003';
$productIds = explode(', ', $productSkuString);

$products = Mage::getResourceModel('catalog/product_collection')
    ->addAttributeToSelect('*') // <- careful with this
    ->addAttributeToFilter(
        'sku', array('in' => $productIds)
    )
    ->load();

// usage
foreach($products as $prod) {
    echo $prod->getName();
}

在1.7.0.2和1.8.1.0中测试。

答案 2 :(得分:1)

您需要拆分'addAttributeToFilter'或在此功能中拆分第二个参数 例如:

$collection->addAttributeToFilter(
array(
    array('attribute'=>'sku','like'=>"%$sku%"),
    array('attribute'=>'sku','like'=>"%$sku%")
));