The ModifyOrderNotification
class extends CommerceMessage
and adds the following properties:
orderId
– the ID of the order being modifiedmodifyOrderSource
– the originator of theModifyOrder
message if thisModifyOrderNotification
is in response to aModifyOrder
modifyOrderId
– the ID of theModifyOrder
message if thisModifyOrderNotification
is in response to aModifyOrder
modifications
– an array of the modifications that were made to this order
The ModifyOrderNotification
message provides a running record of all changes to the order or any of its sub-components. All changes made by components in the system are recorded and distributed in a ModifyOrderNotification
message. This allows distributed systems a way to keep their various databases synchronized when it pertains to certain aspects of the order. For example, it is possible for a business that has several fulfillers to have each fulfiller use a different backend system.
The control flow described earlier in this section clearly defines which components are responsible for order objects during different points in the fulfillment process. If one of the fulfillers makes a change to a shipping group for which it is responsible, the change is captured in a Modification, which is sent inside a ModifyOrderNotification
. For example, the fulfiller could change the state of a given item relationship to backordered.
The ModifyOrderNotifcation
is received by all the systems that are listening for it and it is the responsibility of those systems to update back ends to keep all the systems synchronized. In Oracle ATG Web Commerce, all the repositories are accessible by all of the components. This eliminates the need to synchronize various disparate databases. However, if a customer requires that a disparate system make modifications to the order objects, the OrderFulfillerModificationHandler
would need to be augmented to reflect the changes reported by the ModifyOrderNotification
messages being sent by the disparate systems.