atg.commerce.fulfillment.processor
Class ProcPurchaseConfigurableItem

java.lang.Object
  extended by atg.nucleus.logging.ApplicationLoggingImpl
      extended by atg.commerce.fulfillment.processor.ProcPurchaseConfigurableItem
All Implemented Interfaces:
ApplicationLogging, atg.nucleus.logging.ApplicationLoggingSender, atg.nucleus.logging.TraceApplicationLogging, PipelineProcessor

public class ProcPurchaseConfigurableItem
extends ApplicationLoggingImpl
implements PipelineProcessor

Handles allocating the items from inventory for a configurable commerce item.


Field Summary
static java.lang.String CLASS_VERSION
          Class version string
 
Fields inherited from interface atg.service.pipeline.PipelineProcessor
STOP_CHAIN_EXECUTION, STOP_CHAIN_EXECUTION_AND_COMMIT, STOP_CHAIN_EXECUTION_AND_ROLLBACK
 
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
ProcPurchaseConfigurableItem()
           
 
Method Summary
protected  void allocateBackOrderableItem(HardgoodFulfiller of, ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship, long pQuantity, java.util.List pModificationList, java.lang.String sku, ConfigurableCommerceItem configItem, SubSkuCommerceItem subItem)
           
protected  boolean allocateItemQuantityForConfigurableItem(HardgoodFulfiller of, ShippingGroupCommerceItemRelationship sgcir, long pQuantity, java.util.List pModificationList)
          Allocates the given configurable item and sub items for the given quantity from the InventoryManager.
protected  void allocatePreOrderableItem(HardgoodFulfiller of, ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship, long pQuantity, java.util.List pModificationList, java.lang.String sku, ConfigurableCommerceItem configItem, SubSkuCommerceItem subItem)
           
 java.lang.String getLoggingIdentifier()
          Returns property LoggingIdentifier
 int[] getRetCodes()
          Returns the valid return codes 1 - The processor completed
protected  void queryAvailability(HardgoodFulfiller of, ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship, long pQuantity, java.util.List pModificationList, java.lang.String sku, ConfigurableCommerceItem configItem, SubSkuCommerceItem subItem, int availability)
           
 int runProcess(java.lang.Object pParam, PipelineResult pResult)
          Send the ModifyOrderNotification message to the system.
 void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
          Sets property LoggingIdentifier
 
Methods inherited from class atg.nucleus.logging.ApplicationLoggingImpl
addGlobalLogListeners, addLogListener, getLoggingIdentifer, getLogListenerCount, getLogListeners, initializeFromServiceEvent, isAutoInitListeners, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, removeLogListener, sendLogEvent, setAutoInitListeners, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_VERSION

public static java.lang.String CLASS_VERSION
Class version string

Constructor Detail

ProcPurchaseConfigurableItem

public ProcPurchaseConfigurableItem()
Method Detail

getRetCodes

public int[] getRetCodes()
Returns the valid return codes 1 - The processor completed

Specified by:
getRetCodes in interface PipelineProcessor
Returns:
an integer array of the valid return codes.

setLoggingIdentifier

public void setLoggingIdentifier(java.lang.String pLoggingIdentifier)
Sets property LoggingIdentifier

Overrides:
setLoggingIdentifier in class ApplicationLoggingImpl

getLoggingIdentifier

public java.lang.String getLoggingIdentifier()
Returns property LoggingIdentifier

Overrides:
getLoggingIdentifier in class ApplicationLoggingImpl

runProcess

public int runProcess(java.lang.Object pParam,
                      PipelineResult pResult)
               throws java.lang.Exception
Send the ModifyOrderNotification message to the system. This method requires that an Order and OrderFulfiller object be supplied in pParam in a HashMap. Use the PipelineConstants class' static members to key the objects in the HashMap.

Specified by:
runProcess in interface PipelineProcessor
Parameters:
pParam - a HashMap which must contain an Order and OrderFulfiller object
pResult - a PipelineResult object which stores any information which must be returned from this method invokation
Returns:
an integer specifying the processor's return code
Throws:
java.lang.Exception - throws any exception back to the caller
See Also:
PipelineProcessor.runProcess(Object, PipelineResult)

allocateItemQuantityForConfigurableItem

protected boolean allocateItemQuantityForConfigurableItem(HardgoodFulfiller of,
                                                          ShippingGroupCommerceItemRelationship sgcir,
                                                          long pQuantity,
                                                          java.util.List pModificationList)
                                                   throws CommerceException
Allocates the given configurable item and sub items for the given quantity from the InventoryManager. Updates the state of the items accordingly. If the item cannot be purchased, backordered or preordered, the state of the item is FAILED, ITEM_NOT_FOUND, OUT_OF_STOCK, or DISCONTINUED.

Parameters:
pOrder - The order containing this item.
pShippingGroupItemRelationship - The item to allocate
pQuantity - 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.
Returns:
true if the item is allocated, false otherwise
Throws:
CommerceException
See Also:
InventoryManager

queryAvailability

protected void queryAvailability(HardgoodFulfiller of,
                                 ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship,
                                 long pQuantity,
                                 java.util.List pModificationList,
                                 java.lang.String sku,
                                 ConfigurableCommerceItem configItem,
                                 SubSkuCommerceItem subItem,
                                 int availability)
                          throws InventoryException
Throws:
InventoryException

allocateBackOrderableItem

protected void allocateBackOrderableItem(HardgoodFulfiller of,
                                         ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship,
                                         long pQuantity,
                                         java.util.List pModificationList,
                                         java.lang.String sku,
                                         ConfigurableCommerceItem configItem,
                                         SubSkuCommerceItem subItem)
                                  throws InventoryException
Throws:
InventoryException

allocatePreOrderableItem

protected void allocatePreOrderableItem(HardgoodFulfiller of,
                                        ShippingGroupCommerceItemRelationship pShippingGroupItemRelationship,
                                        long pQuantity,
                                        java.util.List pModificationList,
                                        java.lang.String sku,
                                        ConfigurableCommerceItem configItem,
                                        SubSkuCommerceItem subItem)
                                 throws InventoryException
Throws:
InventoryException