Mat*_*att 1 php inventory magento
我建立了一个库存更新脚本-在这里,我在Magento中获取产品集合,并遍历结果集,并在进行时更新产品库存(基于单独的库存提要)。
我可以获取产品集合没有问题。
但是,我只想将“管理库存”字段(“库存”标签下的admin下拉菜单)设置为“是”的产品。
所以我尝试了:
// 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'
),
));
Run Code Online (Sandbox Code Playgroud)
但是,出现错误:
无效的属性名称:manage_stock。
嗨,马特,您可能不得不使用类似这样的东西,而不是使用addFieldToFilter
$items->joinField('manages_stock','cataloginventory/stock_item','use_config_manage_stock','product_id=entity_id','{{table}}.use_config_manage_stock=1');
Run Code Online (Sandbox Code Playgroud)
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');
Run Code Online (Sandbox Code Playgroud)
我认为这应该是正确的,并且可以解决任何用户错误,因为如果您将配置设置为管理库存,那么如果您不想管理库存,则应该说使用配置设置,但是用户可以将其设置为“是”而无需检查那。