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 Oracle Commerce Core Commerce objects:
atg.commerce.fulfillment.PaymentGroupUpdate
atg.commerce.fulfillment.ShippingGroupUpdate
atg.commerce.fulfillment.GenericAdd
atg.commerce.fulfillment.GenericRemove
Commerce Service Center uses the Core 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 Core Commerce items, shipping groups and payment groups Commerce Service Center sends GenericAdd
messages. For updated Core 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);