当我们从0更新数量时,如何做到库存状态从“非库存”变为“库存”?
我必须从qty = 0更新600个产品到1-10。我希望我可以使用插件:大规模产品更新程序来完成任务。但如果我需要手动更改每个产品的库存状态,插件将失去其目的。
答案 0 :(得分:0)
如果您决定立即更新所有产品的数量和库存状态,那么您可以在任何控制器的操作中编写此代码,并在浏览器中点击该控制器的操作。
$_products = Mage::getModel('catalog/product')->getCollection();
foreach($_products as $_product){
$product = Mage::getModel('catalog/product')->load($_product['entity_id']);
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product);
$stockItem->setData('manage_stock', 1);
$stockItem->setData('is_in_stock', 1);
$stockItem->setData('use_config_notify_stock_qty', 0);
$stockItem->setData('qty', 10);
try{
$stockItem->save();
$product->save();
}catch(Exception $e){
Mage::log($e->getMessage(),null,'mohit.log');
}
}
我希望,我的回答可以解决你的问题。
如果没有,请评论。 :)
答案 1 :(得分:0)
请看看Magmi:
http://sourceforge.net/projects/magmi/
我用它在几分钟(30-45分钟)内导入/更新了数百万种产品。
最好的部分是csv列标题是基于产品字段/属性的ID构建的,因此每当您想要更新字段时,您可以右键单击,检查管理面板中的元素并获取列标题期望的。
如果您已经承诺进行所选择的产品导入,您可以编写一个观察员,在每个产品保存时触发,检查产品数量是否为> 0并将产品设置为“库存”然后保存。
https://magento.stackexchange.com/questions/9067/catalog-product-save-after-event-for-massaction