用库存水平更新所有产品后,将所有可配置产品设置为有库存的最佳方法是什么?最好的方式,我的意思是最快的,服务器上的负载最少。
编辑:
我忘了说,如何以编程方式执行此操作!
在您Catalog > Manage Products
看来:
从网格的下拉列表中选择“可配置”:
单击网格表标题中的“全选”:
从网格顶部的下拉菜单中选择“更新属性”,然后单击“提交”:
最后,您可以从下一个屏幕执行批量库存更新。单击屏幕左侧的“库存”选项卡,并将它们全部设置为“有货”和“已启用”。
根据您的版本,您可以从管理界面选择所有可配置类型的产品,然后选择Actions -> Update Attributes -> Inventory
.
示例(参见最后一个选项):http: //i.imgur.com/x03YN.png
要么是这样,要么是编写自己的脚本,这很可能会做同样的事情(如果忘记验证调用或其他东西不会降低效率,天堂禁止它错误地留下孤立的数据库条目,这会导致你进入一个世界在负载/时间和有效性方面的某个点或另一个疼痛)。老实说,除非您的可配置产品数量达到数万,或者您的服务器规格非常差,否则我无法想象它需要很长时间,在这种情况下,它可能一开始就不会运行 Magento。
编辑:
这应该让你以编程方式进行。但请注意,“Stock Item”的 Magento 工具在其整个生命周期内发生了很大变化,因此请务必在您的版本上进行测试以确保它首先工作。
// 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...
}
}