Magento 1.9 - 使用延期交货库存而不是某些产品的实际库存

Magento 1.9 - Use backorder stock instead of actual stock for certain products

对于网上商店中的一些“特殊”产品,我想使用延期交货库存而不是实际库存,这些产品可用于这些产品,但不确定如何处理。

我已经查看了 MAGE_CATALOGINVENTORY_STOCK_ITEM 及其函数 CheckQty()VerifyQty(),但仍然不知道如何告诉 Magento 在我为这些产品下订单时不要使用实际库存。因为我不想让 Magento 为他们减少库存。另外我不确定我是在 事件 中还是通过覆盖 MAGE_CATALOGINVENTORY_STOCK_ITEM class.

如果有人能给我一些想法或分享一些代码,我将不胜感激。

不,我还没有写任何代码,因为我不确定如何继续它。

我的建议是不要编写任何额外的代码来更改 Magento 的库存行为,因为这可以使用 vanilla Magento 功能实现。由于您根本不考虑预购库存,您可以

  1. 首先在预购产品上设置所有需要的数量。
  2. 在'Catalog > Manage Products'、select所有预购商品中点击'Actions > Update Attributes'
  3. 在 'Inventory' 选项卡中,通过选中 'Change' 复选框并取消选中 'Use Config Settings' 复选框,将所有这些产品设置为 'Manage Stock' "No"。

这将防止所有订单不影响预购商品的库存。当您将 'Manage Stock' 标志设置回 "Yes" 时,您还可以在 预购季节结束后设置个人数量

如果选择预购模式,面临的挑战不是减少产品库存。因为同一产品可以是预购和重新订购的产品。因此,为了使产品的库存信息保持相同,我必须覆盖 cataloginventory_stock_item class.

的一些功能

我覆盖的功能是: verifyStock subtractQty verifyNotification

另一方面,可以查看 registerProductsSale 从库存中减去产品数量的函数。

或者可以使用 subtractQuoteInventory 观察者的功能,根据 Magento 还在每次成功下订单后调用以确保减去库存