了解如何在 SAP Commerce 中连接扩展
Understanding how an extension is wired up in SAP Commerce
我正在研究 SAP Commerce(正式名称为 Hybris)电子商务系统。
正在将 Warehousing 扩展添加到 B2B 站点。添加后,在库存级别项目上,发票事件集合在管理选项卡上可见。 ATP 公式已在 Base Store 上设置。股票现在显示在 PDP 上。在一个 OTB 站点中,我看到一个 OTB 实例会在完成订单后相应地调整库存水平,但这不会发生在本地开发实例上。问题是为什么?
在订单处理过程中调用仓储扩展中的某些外观是否正确?如果是这样,那究竟是如何连接的?似乎与仓储扩展和任何其他代码没有任何关系。
更新 1:
这里是问题的一个例子:在自定义外观中添加了一个新的产品填充器之后,一些条目被添加到 *-spring.xml 文件中,其中之一是将填充器添加到 configurablePopulatorModification .最后,需要将该选项添加到控制器中的 ProductOptions 列表中。然后在调用该控制器时调用填充器。
在这个例子中,一旦理解了事物的连接方式,控制器和流行之间的联系就很清楚了。在自定义核心扩展、自定义外观扩展和自定义加速器中存在到 ProductOptions 的连接。一旦有人知道这是怎么回事,"wired up" 就可以很容易地复制它。
我想了解的是:仓储扩展已添加到 localextensions.xml,但系统中其他任何地方都没有提及任何方面,根本没有。不知何故,店面加速器和平台代码之间的某些扩展必须了解仓储扩展中发现的新功能,以便调用它。怎么样?????
更新 2:
添加仓储扩展后,在 Backoffice 中显示的现有 itemType 中添加了新属性。据我了解,这是 Modifying Lists and Maps in Spring Context 解释的概念。
我无法理解的问题是如何调用仓储扩展中的业务逻辑来修改库存水平。我最好的猜测是进行更改的函数是 WarehousingStockLevelFacade.createStockLevelAdjustements(...)。我到处搜索 createStockLevelAdjustements(...) 的调用位置,它仅在 warehousingwebservices 中调用。
我完全不知道 warehousingfacades 或 warehousingwebservices 中的任何外观是如何被
调用的
嗯,你的文字中包含的问题我认为不止一个。所以我试着分别回答每个部分。
In an OTB site I have seen an OTB instance adjust the stock levels accordingly upon completing an order, but that is not happening on the local dev instance
系统上应该没有区别。您应该始终查看每个系统上的配置是否相同。通常这里的 'config' 文件夹是你定义配置的部分。系统与系统之间可能存在细微差异。但例如,'localextensions.xml' shold 始终相同。
Is the impression correct that some facade within the warehousing extension is called during the order-processing process?
没有。您在 'localextensions.xml' 中定义您的扩展,并且新部件在任何系统上。你有没有在每个系统上都做一个'UPDATE',让新的类型也导入到类型系统和数据库中?
总的来说。您定义扩展。而且 hybris 会自动包含所有需要的扩展。你可以看到这个,当你启动服务器时,加载了哪些扩展。
更新 1
我想,现在我明白你的意思了。我尽量保持共同点,而不是在 'warehouse' 扩展名上指定。 Hybris 有一些修改代码的功能 'afterwards'。这里有一些有用的链接
也可以在导航栏左侧查看一下 'Extnsion Concept'。也许有些观点会很清楚。
所以在你的例子中,想想会发生什么:*-items.xml 中的第一个新属性,然后某处会有一个 'modifiyPopulatorList' bean。
更新 2
我不知道 'warehousing' 扩展名。但我认为必须有一个部分用 'warehousing' beans 覆盖 'normal' beans。类似于:
<bean id="stockLevelBean" ...>
<property name="normalProvider" ref="normalProvider"/>
</bean>
<bean id="stockLevelBean" ...>
<property name="warehousingProvider" ref="warehousingProvider"/>
</bean>
我正在研究 SAP Commerce(正式名称为 Hybris)电子商务系统。
正在将 Warehousing 扩展添加到 B2B 站点。添加后,在库存级别项目上,发票事件集合在管理选项卡上可见。 ATP 公式已在 Base Store 上设置。股票现在显示在 PDP 上。在一个 OTB 站点中,我看到一个 OTB 实例会在完成订单后相应地调整库存水平,但这不会发生在本地开发实例上。问题是为什么?
在订单处理过程中调用仓储扩展中的某些外观是否正确?如果是这样,那究竟是如何连接的?似乎与仓储扩展和任何其他代码没有任何关系。
更新 1:
这里是问题的一个例子:在自定义外观中添加了一个新的产品填充器之后,一些条目被添加到 *-spring.xml 文件中,其中之一是将填充器添加到 configurablePopulatorModification .最后,需要将该选项添加到控制器中的 ProductOptions 列表中。然后在调用该控制器时调用填充器。
在这个例子中,一旦理解了事物的连接方式,控制器和流行之间的联系就很清楚了。在自定义核心扩展、自定义外观扩展和自定义加速器中存在到 ProductOptions 的连接。一旦有人知道这是怎么回事,"wired up" 就可以很容易地复制它。
我想了解的是:仓储扩展已添加到 localextensions.xml,但系统中其他任何地方都没有提及任何方面,根本没有。不知何故,店面加速器和平台代码之间的某些扩展必须了解仓储扩展中发现的新功能,以便调用它。怎么样?????
更新 2:
添加仓储扩展后,在 Backoffice 中显示的现有 itemType 中添加了新属性。据我了解,这是 Modifying Lists and Maps in Spring Context 解释的概念。
我无法理解的问题是如何调用仓储扩展中的业务逻辑来修改库存水平。我最好的猜测是进行更改的函数是 WarehousingStockLevelFacade.createStockLevelAdjustements(...)。我到处搜索 createStockLevelAdjustements(...) 的调用位置,它仅在 warehousingwebservices 中调用。
我完全不知道 warehousingfacades 或 warehousingwebservices 中的任何外观是如何被
调用的嗯,你的文字中包含的问题我认为不止一个。所以我试着分别回答每个部分。
In an OTB site I have seen an OTB instance adjust the stock levels accordingly upon completing an order, but that is not happening on the local dev instance
系统上应该没有区别。您应该始终查看每个系统上的配置是否相同。通常这里的 'config' 文件夹是你定义配置的部分。系统与系统之间可能存在细微差异。但例如,'localextensions.xml' shold 始终相同。
Is the impression correct that some facade within the warehousing extension is called during the order-processing process?
没有。您在 'localextensions.xml' 中定义您的扩展,并且新部件在任何系统上。你有没有在每个系统上都做一个'UPDATE',让新的类型也导入到类型系统和数据库中?
总的来说。您定义扩展。而且 hybris 会自动包含所有需要的扩展。你可以看到这个,当你启动服务器时,加载了哪些扩展。
更新 1
我想,现在我明白你的意思了。我尽量保持共同点,而不是在 'warehouse' 扩展名上指定。 Hybris 有一些修改代码的功能 'afterwards'。这里有一些有用的链接
也可以在导航栏左侧查看一下 'Extnsion Concept'。也许有些观点会很清楚。
所以在你的例子中,想想会发生什么:*-items.xml 中的第一个新属性,然后某处会有一个 'modifiyPopulatorList' bean。
更新 2
我不知道 'warehousing' 扩展名。但我认为必须有一个部分用 'warehousing' beans 覆盖 'normal' beans。类似于:
<bean id="stockLevelBean" ...>
<property name="normalProvider" ref="normalProvider"/>
</bean>
<bean id="stockLevelBean" ...>
<property name="warehousingProvider" ref="warehousingProvider"/>
</bean>