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

时间:2012-10-30 15:35:19

标签: magento

使用库存水平更新所有产品后,将所有可配置产品设置为库存的最佳方法是什么? 通过最好的方式,我的意思是最快,服务器负载最少。

修改

我忘了说,如何以编程方式执行此操作!

2 个答案:

答案 0 :(得分:6)

Catalog > Manage Products视图中:

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

order grid view config select

点击网格表标题中的“全选”

select all

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

enter image description here

最后,在下一个屏幕中,您可以执行批量库存更新。点击屏幕左侧的“广告资源”标签,将其全部设置为“有货”和“已启用”。

enter image description here

答案 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...                                                                                                                                                                                                    
  }                                                                                                                                                                                                                                         
}