我已经构建了一个库存更新脚本 - 我在Magento中获取产品集合,并在我去的过程中迭代结果集,更新产品库存(基于单独的库存Feed)。
我可以获取产品系列没问题。
但是,我只想让拥有“管理库存”字段的产品(“库存”标签下的管理下拉菜单)设置为“是”。
所以我试过了:
// get all magento catalog products with "manage stock" field set to yes
$items = Mage::getModel('catalog/product')->getCollection();
$items
->addAttributeToSelect(array(
'id',
'sku'
))
->addFieldToFilter(array(
array(
'attribute' => 'manage_stock',
'eq' => '1'
),
));
但是,收到错误:
无效的属性名称:manage_stock。
答案 0 :(得分:5)
嘿Matt,你可能不得不使用像这样的东西
而不是使用addFieldToFilter$items->joinField('manages_stock','cataloginventory/stock_item','use_config_manage_stock','product_id=entity_id','{{table}}.use_config_manage_stock=1');
manage_stock不是产品的属性,而是实际的库存项目。
更新:
假设您的配置设置已设置为管理库存,并且没有人将其设置为不使用配置设置,而是让它管理库存。
我添加了这个
$items->joinField('manages_stock','cataloginventory/stock_item','use_config_manage_stock','product_id=entity_id','{{table}}.use_config_manage_stock=1 or {{table}}.manage_stock=1');
我认为这应该是正确的并且可以解决任何用户错误,因为如果您将配置设置为管理库存,那么如果您不想管理库存,您应该只说使用配置设置,但用户可以将其设置为是的,没有检查。