| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectatg.nucleus.logging.VariableArgumentApplicationLoggingImpl
atg.nucleus.GenericService
atg.commerce.messaging.SourceSinkTemplate
atg.commerce.fulfillment.FulfillerSystem
atg.commerce.fulfillment.InventoryFulfiller
atg.commerce.fulfillment.HardgoodFulfiller
public class HardgoodFulfiller
This class is responsible for fulfilling order fragments. It receives FulfillOrderFragment messages and allocates all the items within each shipping group contained in the message using the InventoryManager. It sends ModifyOrderNotification messages reflecting all the changes that are made during this process. This class may be extended to customize the fulfillment process.
For each item in each shipping group, the HardgoodFulfiller will use the InventoryManager and either purchase the item, backorder it, preordered it, or mark it as out of stock. When the item's stock is increased and an UpdateInventory message is sent, the HardgoodFulfiller will try again to successfully purchase the item.
It receives the messages FulfillOrderFragment, ModifyOrder, ModifyOrderNotification, and UpdateInventory
It sends ModifyOrderNotification messages.
FulfillOrderFragment, 
ModifyOrder, 
ModifyOrderNotification, 
UpdateInventory, 
InventoryManager| Field Summary | |
|---|---|
| static java.lang.String | CLASS_VERSIONClass version string | 
| Fields inherited from class atg.commerce.fulfillment.InventoryFulfiller | 
|---|
| DEFAULT_CATALOG_REF_DISPLAY_NAME, DEFAULT_COMMERCE_ITEM_CATALOG_REF_ID_PROPERTY_NAME, DEFAULT_MODIFY_ORDER_NOTIFICATION_PORT, DEFAULT_SHIP_ITEM_REL_ORDER_PROPERTY_NAME, DEFAULT_SHIP_ITEM_REL_SHIPPING_GROUP_PROPERTY_NAME, DEFAULT_SHIP_ITEM_REL_VIEW_NAME, DEFAULT_SHIPPING_GROUP_SUBMITTED_DATE_PROPERTY_NAME, DEFUALT_SHIP_ITEM_REL_COMMERCE_ITEM_PROPERTY_NAME, DEFUALT_SHIP_ITEM_REL_STATE_PROPERTY_NAME | 
| Fields inherited from class atg.commerce.fulfillment.FulfillerSystem | 
|---|
| mModifyOrderPort, NUCLEUS_NAME | 
| Fields inherited from class atg.nucleus.GenericService | 
|---|
| SERVICE_INFO_KEY | 
| Fields inherited from interface atg.nucleus.logging.TraceApplicationLogging | 
|---|
| DEFAULT_LOG_TRACE_STATUS | 
| Fields inherited from interface atg.nucleus.logging.ApplicationLogging | 
|---|
| DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS | 
| Constructor Summary | |
|---|---|
| HardgoodFulfiller() | |
| Method Summary | |
|---|---|
| protected  boolean | allocateItemQuantityFromInventory(Order pOrder,
                                  ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship,
                                  long pQuantity,
                                  java.util.List pModificationList)Deprecated. Replaced by the pipeline processor | 
| protected  boolean | allocateShippingGroup(Order pOrder,
                      ShippingGroup pShippingGroup,
                      java.util.List pModificationList)Deprecated. Replaced by the pipeline processor | 
| protected  boolean | allocateShippingGroupItem(Order pOrder,
                          ShippingGroupCommerceItemRelationship pShipItemRelationship,
                          java.util.List pModificationList)Deprecated. Replaced by the pipeline processor | 
|  HardgoodShipper | getHardgoodShipper()The hardgood shipper is a schedulable service that simulates the periodic shipment of shipping groups. | 
| protected  void | processShippingGroup(Order pOrder,
                     ShippingGroup pShippingGroup,
                     java.util.List pModificationList)Deprecated. Replaced by the pipeline processor | 
|  void | setHardgoodShipper(HardgoodShipper pHardgoodShipper) | 
| protected  boolean | shipAsItemsAreAvailable(ShippingGroup sg)Deprecated. Replaced by the pipeline processor | 
| protected  void | verifyShippingGroupFulfillment(ShippingGroup pShippingGroup)Deprecated. Replaced by the pipeline processor | 
| Methods inherited from class atg.commerce.fulfillment.InventoryFulfiller | 
|---|
| getCatalogRefDisplayNamePropertyName, getChainToRunMap, getCommerceItemCatalogRefIdPropertyName, getFulfillerName, getInventoryManager, getKeyForMessage, getModificationHandler, getOrderIdFromMessage, getPartialShipPropertyName, getShipItemRelCommerceItemPropertyName, getShipItemRelOrderPropertyName, getShipItemRelShippingGroupPropertyName, getShipItemRelStatePropertyName, getShipItemRelViewName, getShippingGroupSubmittedDatePropertyName, handleFulfillOrderFragment, handleMessage, handleUpdateInventory, isAllowPartialShipment, isAllowPartialShipmentDefault, isOutOfStockIsError, loadOrder, processMultipleShippingGroups, retrieveWaitingShipMap, setAllowPartialShipmentDefault, setCatalogRefDisplayNamePropertyName, setChainToRunMap, setCommerceItemCatalogRefIdPropertyName, setFulfillerName, setInventoryManager, setModificationHandler, setOutOfStockIsError, setPartialShipPropertyName, setShipItemRelCommerceItemPropertyName, setShipItemRelOrderPropertyName, setShipItemRelShippingGroupPropertyName, setShipItemRelStatePropertyName, setShipItemRelViewName, setShippedDate, setShippingGroupSubmittedDatePropertyName, shippingGroupHasShipped, shippingGroupHasShipped, splitShippingGroupWithAvailableItems, updateOrder | 
| Methods inherited from class atg.commerce.messaging.SourceSinkTemplate | 
|---|
| getDelayOnSendRetry, getMessageSourceContext, getMessageSourceName, getTransactionManager, isAllowMessageSending, sendCommerceMessage, sendObjectMessage, setAllowMessageSending, setDelayOnSendRetry, setMessageSourceContext, setMessageSourceName, setTransactionManager, startMessageSource, stopMessageSource | 
| Methods inherited from class atg.nucleus.logging.VariableArgumentApplicationLoggingImpl | 
|---|
| vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning | 
| Methods inherited from class java.lang.Object | 
|---|
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
|---|
public static final java.lang.String CLASS_VERSION
| Constructor Detail | 
|---|
public HardgoodFulfiller()
| Method Detail | 
|---|
public void setHardgoodShipper(HardgoodShipper pHardgoodShipper)
public HardgoodShipper getHardgoodShipper()
HardgoodShipperprotected boolean shipAsItemsAreAvailable(ShippingGroup sg)
sg - The shipping group we are interested in
protected void processShippingGroup(Order pOrder,
                                    ShippingGroup pShippingGroup,
                                    java.util.List pModificationList)
                             throws CommerceException
pOrder - The order containing the shipping group we are processingpShippingGroup - The shipping group we will try to allocate and shippModificationList - List holding any modifications we might make
CommerceExceptionverifyShippingGroupFulfillment(atg.commerce.order.ShippingGroup), 
allocateShippingGroup(atg.commerce.order.Order, atg.commerce.order.ShippingGroup, java.util.List), 
shipAsItemsAreAvailable(atg.commerce.order.ShippingGroup), 
InventoryFulfiller.splitShippingGroupWithAvailableItems(atg.commerce.order.Order, atg.commerce.order.ShippingGroup, java.util.List)
protected void verifyShippingGroupFulfillment(ShippingGroup pShippingGroup)
                                       throws IllegalShippingGroupStateException
pShippingGroup - The shipping group we are verifying
IllegalShippingGroupStateExceptionatg.commerce.states.ShippingGroupStates#REMOVED,, 
atg.commerce.states.ShippingGroupStates#FAILED,, 
atg.commerce.states.ShippingGroupStates#NO_PENDING_ACTION,, 
ShippingGroupStates.PENDING_MERCHANT_ACTION
protected boolean allocateShippingGroup(Order pOrder,
                                        ShippingGroup pShippingGroup,
                                        java.util.List pModificationList)
pOrder - The affect Order owning this ShippingGrouppShippingGroup - The ShippingGroup we are checkingpModificationList - Place to store our changes.
protected boolean allocateShippingGroupItem(Order pOrder,
                                            ShippingGroupCommerceItemRelationship pShipItemRelationship,
                                            java.util.List pModificationList)
pOrder - the order in which this shipping group ispShipItemRelationship - the shipping group whose item states we are changingpModificationList - the list of the modifications made to the items
allocateItemQuantityFromInventory(atg.commerce.order.Order, atg.commerce.order.ShippingGroupCommerceItemRelationship, long, java.util.List)
protected boolean allocateItemQuantityFromInventory(Order pOrder,
                                                    ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship,
                                                    long pQuantity,
                                                    java.util.List pModificationList)
                                             throws CommerceException
pOrder - The order containing this item.pShippingGroupItemRelationship - The item to allocatepQuantity - The quantity of the item to allocate.  Does not verify that this quantity
                  and the quantity in the item match.pModificationList - Place to store any modifications that are made.
CommerceExceptionInventoryManager| 
 | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||