使用 magento is_in_stock
Posted
技术标签:
【中文标题】使用 magento is_in_stock【英文标题】:Use of magento is_in_stock 【发布时间】:2011-12-20 11:17:15 【问题描述】:Magento 中is_in_stock
属性的功能究竟是什么?一个产品是否有库存可以通过qty >= 1
来判断。
它似乎会自动调整到当前的 stock_level (与最小允许数量相比?)但是为什么你可以手动修改它?我觉得修改它没有用,因为它无论如何都会改变它自己想要的任何东西..
我无法通过谷歌找到很多关于这个属性的功能的信息,所以可能是一个很好的补充:-)。
【问题讨论】:
【参考方案1】:许多较小的商家将使用 Magento 来监控其实际“仓库”(备用房间)的产品库存水平。有时他们可能希望在他们的网上商店中暂时将某个商品列为缺货,但出于其他业务原因,他们会希望 Magento 中的库存编号反映他们手头上的商品数量。
换句话说,is_in_stock
数据成员控制商店如何展示产品,无论您手头有多少商品。
【讨论】:
感谢您的回答。不过,我对此感到奇怪的是,当订单被取消时(Mage_CatalogInventory_Model_Stock->backItemQty
),似乎有代码可以将商品重新放入库存。那么小商家会将is_in_stock
设置为false,然后取消订单(包含产品),is_in_stock
再次为true?
是的,这是一个实施不佳的功能,显然是多个团队的工作,而不是相互交谈。【参考方案2】:
您可能想要挖掘:app/code/core/Mage/CatalogInventory/Model/Stock/Item.php
可能相关的帖子: Magento issue with calling isInStock() method on a product
【讨论】:
感谢您的提示。相关帖子也是一件奇怪的事情,但不是我的意思:-) Np,我也对差异感兴趣,如果您找到正确的答案,请尽可能在此处发布。【参考方案3】:在这里完全需要修改我的答案,非常抱歉。当我查看 app/code/core/mage/Catalog/Model/Product.php 中定义的函数时,我看到了这种非常奇怪的情况:
public function isInStock()
return $this->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_ENABLED;
因此,只要启用了产品,isInStock 将始终返回 true。判断产品是否在售的函数是 isSaleable()。
【讨论】:
这是正确的,但不是我在这里提到的问题。我指的是 StockItem 的is_in_stock
属性,而不是 Product 的。
抱歉,我关注的是函数而不是属性。您在上面提到的手动设置“缺货”的示例,然后在取消订单时让系统将其转回“有货”,只有在网站将“管理库存”配置设置为“是”时才会发生。这也可以在管理员的产品级别被覆盖。我们这样做是因为我们希望对一些我们售罄的产品进行库存控制,但对我们从未售罄的其他产品不进行库存控制。以上是关于使用 magento is_in_stock的主要内容,如果未能解决你的问题,请参考以下文章
magento -- 计划任务(cron job)在magento中的作用和使用教程