【问题标题】:When does the addItemToOrder pipeline get called?addItemToOrder 管道何时被调用?
【发布时间】:2015-07-07 16:54:26
【问题描述】:

将商品添加到购物车时,方法调用的高级流程是 -

handleAddItemToOrder() -> addItemToOrder() -> mergeItemInputForAdd() -> doAddItemToOrder -> runProcessRepriceOrder() -> runProcessAddItemToOrder()。

根据 oracle 文档,最后一条管道的 chainId 在 CartModifierFormHandler.addItemToOrderChainId 中定义。现在我对最后一条管道的执行有几个问题 -

  1. 这个管道有什么作用?文档中没有提供这方面的详细信息。
  2. 还有另一个组件 PurchaseProcessHelper 包含相同的方法 runProcessAddItemToOrder()。这是将商品添加到购物车时调用的方法吗?如果是,那么控制如何流向此方法。

请帮助我理解这一点。 (请在 CartModifierFromHandler 和 PurchaseProcessHelper 的配置文件中提供相关配置)

【问题讨论】:

    标签: atg


    【解决方案1】:
    1. 这个管道有什么作用?文档中没有提供这方面的详细信息。

    默认没有,因为CartModifierFormHandler.addItemToOrderChainId默认设置为null,所以不会运行管道。

    转到本地 /dyn/admin,查看 CartModifierFormHandler 的服务配置。 (http://HOSTNAME:PORT/dyn/admin/nucleus/atg/commerce/order/purchase/CartModifierFormHandler/?propertyName=serviceConfiguration) 在这里您会看到addItemToOrderChainId 的属性值已被注释掉:

    #addItemToOrderChainId=addItemToOrder
    

    为什么它被注释掉了?看看PipelineManager

    <!-- These items are commented out because by default we do not need to run any chains <pipelinechain name="addItemToOrder" transaction="TX_REQUIRED" headlink="???"></pipelinechain><pipelinechain name="setOrder" transaction="TX_REQUIRED" headlink="???"></pipelinechain> -->
    

    默认情况下,没有要运行的链,但在某些实现中,您可能需要这样做,或者您可能只想为CartModifierFormHandler 服务自定义组件类。

    1. 还有另一个组件 PurchaseProcessHelper 包含相同的方法 runProcessAddItemToOrder()。这是将商品添加到购物车时调用的方法吗?如果是,那么控制如何流向此方法。

    同样,默认情况下,此方法不会调用管道链,因为 PurchaseProcessHelper.addItemToOrderChainId 已设置为 null。什么时候调用该方法? CartModifierFormHandler 不会调用它向订单中添加商品。我相信它只是一种方便的方法,供其他需要将商品添加到购物车的表单处理程序使用。

    【讨论】:

    • 感谢马特的回复。无论您提到什么都是正确的,但在我的应用程序中,我可以看到以下设置: 在 CartModifierFormHandler.peoperties 文件中 - addItemToOrderChainId=addItemToOrder 在 PurchaseProcessHelper.properties 文件中 - addItemToOrderChainId=processProductDetailsUpdate 在 commercepipline.xml 文件中,有一个名为 processProductDetailsUpdate 的管道链..虽然没有名称addItemToOrder。你能澄清一下这些是如何连接的吗?
    猜你喜欢
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多