Magento - 查找库存中缺货的产品

5

在我的Magento商店中,有时我会忘记在给缺货商品添加新库存后从下拉菜单中选择“有货”。

有没有办法获取所有库存商品清单,但标记为“缺货”?

5个回答

9
如果您能快速编写一些脚本。
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToFilter('is_in_stock', 0)
->addAttributeToFilter('qty', array("gt" => 0));

很遗憾,我似乎不记得如何以应该工作的方式放入>0。也许有人可以对此发表评论。

您可以通过foreach循环运行$products,然后将is_in_stock设置为1的值,这样您就可以做生意了。


糟糕,我没有仔细阅读。这是一个很棒的代码示例,谢谢 Josh。 - Nic
4
将">0"这部分替换成"array('gt' => 0)"应该就可以了,这样你就可以得到 "->addAttributeToFilter('qty', array('gt' => 0))"。 - Pieter Witvoet
你把自定义脚本放在哪里?它需要一个名称吗? - Jon
1.) realpath与文件系统有关,而不是您的域名(http://us.php.net/realpath) 2.) 是的,您将不得不从终端窗口或通过SSH运行此脚本。 3.) 是的,在Mage :: app()之后,您的代码将会执行。 - Josh Pennington
1
尝试使用catalog/product_stock而不是catalog/product。我认为更新的版本强制您只能使用库存项目而不仅仅是产品。 - Josh Pennington
显示剩余5条评论

1

我认为最简单的方法是:

管理员 -> 系统 -> 导入/导出 -> 配置文件

添加新配置文件

更改为导出,给文件命名和位置。下载文件并在您喜欢的电子表格程序中打开。查找“is_in_stock”- 1 = 库存中,0 = 缺货。按0过滤,您将获得所有缺货商品的列表。

您还可以检查http://shop.com/index.php/rss/catalog/notifystock/的低库存警报RSS列表。


1
最简单的方法是:

Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($_collection);

(该代码用于将库存过滤器添加到集合中。)

1

您需要将以下代码放入:

Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty()

中。

app/design/frontend/default/[yourtemplate]/template/catalog/product/list.phtml

文件用于检查您的产品库存。


0

按库存量降序加载产品

$products
->joinField(
            'inventory_in_stock', 
            'cataloginventory_stock_item', 
            'is_in_stock', 
            'product_id=entity_id',
            'is_in_stock>=0', 
            'left'
)
->setOrder('inventory_in_stock', 'desc');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接