Magento:设置所有可配置产品库存的最有效方法是什么?

Magento:设置所有可配置产品库存的最有效方法是什么?,magento,Magento,使用库存级别更新所有产品后,将所有可配置产品设置为库存的最佳方法是什么? 所谓最佳方式,我指的是服务器上负载最少的最快方式 编辑: 我忘了说,如何通过编程实现这一点 根据您的版本,您可以从管理界面选择可配置类型的所有产品,然后选择操作->更新属性->库存 示例(请参见最后一个选项): 要么是这样,要么是编写自己的脚本,这很可能在负载/时间和效率方面做完全相同的事情(如果不是因为忘记了验证调用或其他事情而降低效率,那么上天禁止它错误地留下孤立的DB条目,这将导致您在某个时刻陷入痛苦的世界)。老实说

使用库存级别更新所有产品后,将所有可配置产品设置为库存的最佳方法是什么? 所谓最佳方式,我指的是服务器上负载最少的最快方式

编辑:


我忘了说,如何通过编程实现这一点

根据您的版本,您可以从管理界面选择可配置类型的所有产品,然后选择
操作->更新属性->库存

示例(请参见最后一个选项):

要么是这样,要么是编写自己的脚本,这很可能在负载/时间和效率方面做完全相同的事情(如果不是因为忘记了验证调用或其他事情而降低效率,那么上天禁止它错误地留下孤立的DB条目,这将导致您在某个时刻陷入痛苦的世界)。老实说,我无法想象这需要很长时间,除非您的可配置产品数量达到数万,或者您的服务器规格非常差,在这种情况下,它可能不会一开始就运行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...                                                                                                                                                                                                    
  }                                                                                                                                                                                                                                         
}

目录>管理产品
视图中:

从网格中的下拉列表中选择“可配置”:

单击表格标题中的“全选”:

从网格顶部的下拉菜单中选择“更新属性”,然后单击“提交”:

最后,从下一个屏幕,您可以执行大规模库存更新。单击屏幕左侧的“库存”选项卡,将其全部设置为“库存”和“启用”。


我忘了说“按程序”!看到在答案上付出了多少努力,真让人伤心!但是我相信其他人会从这里发布的答案中受益…你有你的答案,去看看相关控制器中的操作背后是什么…编辑了我的原始答案以解决这个问题。