The Order Fulfillment Framework can be integrated with an external shipping system that actually ships the order to the customer.
In the Oracle ATG Web Commerce default configuration, the HardGoodShipper
simulates the shipping process. There is also a mechanism for notifying fulfillment of shipment by hand, using the Fulfillment Administration pages. See the ATG Commerce Fulfillment Administration chapter of the ATG Commerce Guide to Setting Up a Store for more information on the Fulfillment Administration pages.
An external system can be integrated with a warehouse or with a shipment company such as Federal Express. These systems are responsible actually tracking the packing and shipping of the items. There are a two ways that an external system can be integrated with the existing Order Fulfillment Framework.
Create a JMS Message Sink and Message Source that communicates with Oracle ATG Web Commerce Order Fulfillment Framework through JMS messages. This approach provides a simple integration point. The JMS Message Sink can be registered to receive
ModifyOrderNotification
messages. When the shipping group state changes toPENDING_SHIPMENT
, aModifyOrderNotification
message is sent. The new class can then communicate with the external shipping system through some other mechanism. The Order Fulfillment Framework can indicate that a shipping group has been shipped in either of the following three ways:Change the state of the shipping group to NO_PENDING_ACTION and send a
ModifyOrderNotification
to notify the rest of Order Fulfillment Framework about the shipment.Call
HardgoodFulfiller.shippingGroupHasShipped
Call the
shippingGroupHasShipped
pipeline. For more information, see Appendix F, Pipeline Chains.
Extend the
HardgoodShipper
scheduled service. ExtendHardgoodShipper.shipShippingGroup
to communicate with the external system. When the external shipping system says that a shipping group has shipped, then callHardgoodFulfiller.shipShippingGroup
.By default, there is no integration with an external shipping system. The
HardgoodShipper
is designed to query the database for all “shippable” shipping groups (groups with a state of PENDING_SHIPMENT and with ashipOnDate
that is not in the future). It then callsHardgoodFulfiller.shippingGroupHasShipped
.