Order Fulfillment process
The following list describes the control flow during the Order Fulfillment process:
- OrderFulfiller 接收一个SubmitOrder 消息,这个消息包含一个序列化的order的副本。order对象的所有者就是接收消息的组件。默认情况下就是OrderFulfiller
- OrderFulfiller传递使用FulfillOrderFragments配置的fulfillers的不同组件的控制。比如HardgoodFulfiller.注意:不同的fragments包含和不同items相关联的shipping groups,在fragment所列的shipping groups 现在就是有接收消息的组件所控制,比如现在就是HardgoodFulfiller控制着shipping groups
- 当HardgoodFulfiller控制shipping groups,所有的对shipping groups修改都是通过HardgoodFulfiller发生的,HardgoodFulfiller可以运行在不同环境下后台系统,如果没有其他组件需要修改shipping groups,ModifyOrder 请求将会forward 到HardgoodFulfiller.TheHardgoodFulfiller is responsible for making the requested changes to the shipping groups while they are
under its control.注意所有的修改都是通过fulfiller调用pipleine chains
- 当shipping groups 发运,ModifyOrderNotification 消息会被发送,当消息发送HardgoodFulfiller会放弃对shipping groups的控制,控制权转移到OrderFulfiller,前提是没有其他的也在控制,且控制权维持到这个订单的完成。
- OrderFulfiller接收ModifyOrderNotification 消息,如果业务规则允许第一次发运支付需要结算,payment groups 主要负责items,shipment.,tax的成本
- order结算之后,OrderFulfiller将会改变他的状态成NO_PENDING_ACTION,并且不再控制这订单
The following diagram provides an overview of the flow of the JMS messages during the Order Fulfillment process: