我们最近有一个客户需要能够管理Magento的可配置产品的库存。由于可配置产品旨在仅将简单产品组合在一起,因此跟踪可配置产品的库存的能力不是Vanilla Magento安装中可能的东西。
我挖掘了Magento Codebase以更好地了解如何在Magento中的不同产品类型管理库存。正如您可能猜到的那样,Cataloginventory模块处理所有Magento’S库存管理。在/App/code/core/mage/cataloginventory/etc/config.xml文件的侧面,您’LL找到全局标记中包含的以下XML部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<catalog> <product> <type> <simple> <is_qty>1</is_qty> </simple> <virtual> <is_qty>1</is_qty> </virtual> <configurable> <stock_indexer>CataloginVentory / Indexer_Stock_configurable.</stock_indexer> </configurable> <grouped> <stock_indexer>CataloginVentory / Indexer_Stock_Grouped.</stock_indexer> </grouped> </type> </product> </catalog> |
MAGE_CATALOGINVENTORY_HELPER_DATA :: GETISQTYTTYPEIDS方法使用此部分XML来确定某种产品类型“qualifies”用于库存跟踪。它还用于指示是否存在自定义资源模型,需要用于计算某种产品类型的库存可用性。
关于Magento处理配置XML的方式的美丽事情是我们可以创建XML节点,镜像在自定义模块中的Config.xml文件中映射上述XML的结构–这允许我们更改几乎任何配置值,而无需触摸核心Magento模块的任何Config.xml文件。然后,Magento将从Config.xml文件中合并XML节点。由于核心模块后加载自定义模块,因此覆盖默认Magento节点的任何节点都将采用优先级。
我创建了一个小模块,可以为可配置产品提供库存跟踪。 Magento中的以下部分被此模块覆盖:
笔记:
更新(5/12/10):在DEV网站上使用此测试模块后,它看起来像$项目 - >getProduct()方法在CLS_CONFIGURUBELABLEINVENTORY_MODEL_CATALOGINVENTORY_OBSERVER类中调用CLS_CONFIGURABLESINVENTORY_MODEL_CATAL类别’T返回所有订单项目的产品型号。这是我的东西’一旦我们实际在项目中实现此测试代码,就会调试。一世’当我们这样做时,请尝试在此处发布更新。
I’d最终听到任何最终在您的网站上实施此代码的消息。
13 Comments
你有没有得到这个工作?我们正在寻求跟踪捆绑产品的库存。
不,我们没有’T获取捆绑产品。
我可能会失明,但我在哪里下载你的小模块版本?
你的代码帮助了我。您可以通过覆盖这两行来启用可配置产品的Qty跟踪:
0
1
通过将综合设置为0,您实际上说:“this product isn’t a bundled product”(它实际上是,但是Magento会像简单的产品一样对待它)。这将提供更改后端的数量的选项’s product page.
需要ins_qty = 1以在订购产品时减去Qty(如您的文章中的说明)。
更好,你可以创造自己的“configurable product”类型,这样您可以将默认的Magento功能分开。
…