使用库存水平更新所有产品后,将所有可配置产品设置为库存的最佳方法是什么? 通过最好的方式,我的意思是最快,服务器负载最少。
修改
我忘了说,如何以编程方式执行此操作!
答案 0 :(得分:6)
在Catalog > Manage Products
视图中:
从网格下拉列表中选择“可配置”:
点击网格表标题中的“全选”
从网格顶部的下拉菜单中选择“更新属性”,然后点击“提交”:
最后,在下一个屏幕中,您可以执行批量库存更新。点击屏幕左侧的“广告资源”标签,将其全部设置为“有货”和“已启用”。
答案 1 :(得分:3)
根据您的版本,您可以从管理界面中选择所有可配置类型的产品,然后选择Actions -> Update Attributes -> Inventory
。
示例(请参阅最后一个选项):http://i.imgur.com/x03YN.png
它要么是写自己的脚本,要么写自己的脚本,这很可能会做同样的事情(如果通过忘记验证调用或其他事情而不是那么有效,天堂禁止它错误地留下孤立的数据库条目会导致你在负荷/时间和有效性方面进入某个时刻的痛苦世界。说实话,我无法想象它需要很长时间,除非您的可配置产品数量数万,或者您的服务器规格非常差,在这种情况下它可能不会运行Magento开头。
修改强>
这应该让你以编程方式进行。 请注意,“库存项目”的Magentos工具在整个生命周期内都发生了很大变化,因此请务必对您的版本进行测试以确保其首先运行。
// Get all products with a type_id of configurable
$configurable_products =
Mage::getModel('catalog/product')->getCollection()
->addAttributeToFilter('type_id', 'configurable');
foreach ($configurable_products as $configurable_product) {
$configurable_product->load();
// Set is in stock attribute to 1
$configurable_product->getStockItem()->setIsInStock(1);
try {
$configurable_product->getStockItem()->save();
} catch (Exception $e) {
// Failed to save for some reason...
}
}