我知道可以用一个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')))
答案 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%")
));