Commerce Service Center sends standard fulfillment notification messages for all changes made to the order. They are sent out in the form of the following Commerce objects:

atg.commerce.fulfillment.PaymentGroupUpdate
atg.commerce.fulfillment.ShippingGroupUpdate
atg.commerce.fulfillment.GenericAdd
atg.commerce.fulfillment.GenericRemove

Commerce Service Center uses the Commerce OrderFulfillmentTools API to create these objects. For example, when a new payment group is added, Commerce Service Center calls the following OrderFulfillmentTools API to generate the modification object.

createGenericAddValueToValueModification(Modification.TARGET_PAYMENT_
GROUP, pPaymentGroup, Modification.TARGET_ORDER, pOrder);

For new Commerce items, shipping groups and payment groups Commerce Service Center sends GenericAdd messages. For updated Commerce items, shipping groups and payment groups, Commerce Service Center sends GenericUpdate, ShippingGroupUpdate and PaymentGroupUpdate objects respectively. Commerce items are the only objects for which Commerce Service Center sends GenericRemove events. For updates made to other Order properties, Commerce Service Center generates GenericUpdate events.

All the events are generated by the clone edit handlers during the reconciliation process that occurs when an agent commits his updates from the order review page.

Customizing Order Fulfillment

Commerce Service Center emits fulfillment ModifyOrderNotification events for the changes made to the order. Each event has an array of Modification objects attached that provide detail about the changes. The reconciliation pipeline triggers the creation of these objects:

<pipelinelink name="sendFulfillmentNotifications"
  transaction="TX_MANDATORY">
<processor jndi="/atg/commerce/custsvc/order/edit/processor/
  SendFulfillmentNotifications"/>
<transition returnvalue="1" link="sendAgentEvents"/>
</pipelinelink>

OrderFulfillmentTools contains the API for generating ModifyOrderNotification and Modification objects. The Commerce Service Center CloneEditHandlers use this API to generate the Modification objects based on the changes they manage on the order.

For example, when a payment group is added to the order, the payment group edit handler might generate a Modification object like this:

Modification mod =
  fullfillmentTools.createGenericAddValueToValueModification
(Modification.TARGET_PAYMENT_GROUP,pPaymentGroup,Modification.
  TARGET_ORDER,pOrder);

The modification would be attached to a ModifyOrderNotification event, along with all the other Modification objects, and then sent.

ModifyOrderNotification msg = new ModifyOrderNotification();
msg.setOrderId(order.getId());
msg.setModifications(pArrayOfModifications);
sendCommerceMessage(msg);

Copyright © 1997, 2013 Oracle and/or its affiliates. All rights reserved. Legal Notices