目前我在Magento商店中更新所有产品的价格的是这个片段:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('price')
->addAttributeToSelect('special_price')
;
foreach ($products as $product) {
$product->setPrice(round($product->getPrice() - 1000.00));
$product->setSpecialPrice(round($product->getSpecialPrice() - 1000.00));
$product->save();
}
我的问题是如何更新特定类别中的所有产品而不是整个商店?我想应该有一些更多的选择器,比如 - > addCategoryToSelect()或其他东西,但从未找到任何关于此的文档。
请赐教。谢谢!
答案 0 :(得分:1)
这就是我这样做的方式。您可以直接从该类别中获取产品集合。我不是100%确定你实际上需要圆函数,但如果你决定使用它,我会确保你在$ product-> getPrice() - 1000周围加上括号以确保它被计算在它发送到函数之前。我选择不在答案中包含它,因为我觉得你不需要它。
尝试一下:
$products = Mage::getModel('catalog/category')
->load($category_id)
->getProductCollection()
->addAttributeToSelect('*');
foreach($products as $product) {
$product->setPrice(($product->getPrice() - 1000)));
$product->setSpecialPrice(($product->getSpecialPrice() - 1000)));
$product->save();
}
答案 1 :(得分:0)
脱离我的头顶:
$category = Mage::getModel('catalog/category')->load($categoryId);
$productCollection = Mage::getResourceModel('catalog/product_collection')
->addCategoryFilter($category);
foreach ($productCollection as $product) {
$product->setPrice(round($product->getPrice() - 1000.00));
$product->setSpecialPrice(round($product->getSpecialPrice() - 1000.00));
$product->save();
}
祝你好运。