The updateOrder pipeline saves the Order supplied to it. The updateOrder pipeline chain is executed by the updateOrder() method in the OrderManager. The updateOrder() method adds the given Order and the OrderManager to its parameter list, which is supplied to the executing chain. The pipeline chain’s transaction mode is TX_REQUIRED.

The following list describes each processor in the pipeline chain:

  1. PipelineLink Name:updateOrderObject
    This processor saves the properties in the Order object.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveOrderObject
    PipelineProcessor object:atg.commerce.order.processor.ProcSaveOrderObject
    Transitions: return value of 1 will execute updateCommerceItemObjects next

  2. PipelineLink Name:updateCommerceItemObjects
    This processor saves the properties in the CommerceItem objects in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveCommerceItemObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSaveCommerceItemObjects
    Transitions: return value of 1 will execute updateShippingGroupObjects next

  3. PipelineLink Name:updateShippingGroupObjects
    This processor saves the properties in the ShippingGroup objects in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveShippingGroupObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSaveShippingGroupObjects
    Transitions: return value of 1 will execute updateHandlingInstructionObjects next

  4. PipelineLink Name:updateHandlingInstructionObjects
    This processor saves the properties in the HandlingInstruction objects in all the ShippingGroups in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveHandlingInstructionObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSaveHandlingInstructionObjects
    Transitions: return value of 1 will execute updatePaymentGroupObjects next

  5. PipelineLink Name:updatePaymentGroupObjects
    This processor saves the properties in the PaymentGroup objects in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SavePaymentGroupObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSavePaymentGroupObjects
    Transitions: return value of 1 will execute updatePaymentStatusObjects next

  6. PipelineLink Name:updatePaymentStatusObjects
    This processor saves the properties in the PaymentStatus objects in all the PaymentGroups in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SavePaymentStatusObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSavePaymentStatusObjects
    Transitions: return value of 1 will execute updateRelationshipObjects next

  7. PipelineLink Name:updateRelationshipObjects
    This processor saves the properties in the Relationship objects in the Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveRelationshipObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSaveRelationshipObjects
    Transitions: return value of 1 will execute updatePriceInfoObjects next

  8. PipelineLink Name:updatePriceInfoObjects
    This processor saves the properties in the OrderPriceInfo and TaxPriceInfo objects in the Order, the ShippingPriceInfo object in the ShippingGroups, and the ItemPriceInfo object in the CommerceItems.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SavePriceInfoObjects
    PipelineProcessor object:atg.commerce.order.processor.ProcSavePriceInfoObjects
    Transitions: return value of 1 will execute saveManualAdjustments next

  9. PipelineLink Name: saveManualAdjustments
    This processor updates the order for any manual adjustments made by agents in the Commerce Service Center application. If you are not using CSC, this step does not apply. See Warning below.
    Transactional Mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SaveManualAdjustments
    Transitions: return value of 1 will execute setLastModifiedTime next

  10. PipelineLink Name:setLastModifiedTime
    This processor sets the lastModifiedTime property of an Order to the current time if any changes were made to an Order.
    Transactional mode: TX_MANDATORY
    Nucleus component:/atg/commerce/order/processor/SetLastModifiedTime
    PipelineProcessor object:atg.commerce.order.processor.ProcSetLastModifiedTime
    Transitions: None, this is the last link in the chain and causes the PipelineManager to return to the caller.

Warning: Manual adjustments are changes to an order made by an agent using the ATG Commerce Service Center. Manual adjustments are applied unconditionally by the OrderAdjustmentCalculator (see the ATG Commerce Service Center User Guide for information on this class). Once an adjustment has been added, it affects the order’s price regardless of the order’s contents. If an adjustment is applied to an incomplete order, changes at checkout time do not affect the adjustment; for example, if a $20 credit is manually applied to an incomplete order, and the customer removes items, the order could end up with a $0 total. By default, the processor is configured not to save manual adjustments for incomplete orders, in which case the adjustment is discarded if the agent does not check out the order. However, this behavior is configurable. If you want to apply manual adjustments to incomplete orders, set the saveIncompleteOrderAdjustments property to true in the /atg/commerce/order/processor/SaveManualAdjustments component. To save manual adjustments for orders in additional states, adjust the configuration of the incompleteStates property.

# The processor will save the manual adjustments to the repository for orders
# in these states, depending on the value of saveIncompleteOrderAdjustments.

incompleteStates^=/atg/commerce/order/OrderLookupService.incompleteStates

# The processor will save the manual adjustments to the repository for orders
# in the configured incomplete states if this property is true. Otherwise, the
# manual adjustments are not saved for incomplete orders.

saveIncompleteOrderAdjustments=false
 
loading table of contents...