After the quote request has been sent to the quoting system, the quoting system sends back updated quote information. The /atg/commerce/order/processor/CompleteQuoteRequest
pipeline, which uses the ProcCompleteQuoteRequest
process, contains the runProcess
method.
By default, the runProcess
method only sets the status of the order to QUOTED. It is here that you will need to add further logic to process and save new quote updates in the repository. This method requires that the orderId
is supplied in the HashMap
. You can use the PipelineConstants
class static members to key the objects in the HashMap
. You must provide a PipelineResult
object that stores any information that must be returned from this method. Quote details can be passed to the pipeline processor via the map parameter.
Note that orders that have the status of QUOTED or PENDING_QUOTE cannot be modified. The OrderHolder.validActiveShoppingCart
method verifies that the state of the order is not INCOMPLETE. You cannot modify orders that are going through the quote process since they are in the INCOMPLETE state.
The completeQuote
helper method in the OrderManager
provides support for invoking the PipelineResult
completeQuote
pipeline.
Note: It is assumed that the information returned from the quoting system will have price adjustment properties that are correctly updated, and that the order totals are correctly calculated.
As outlined in the Request a Quote section, you can add the ProcClearQuotePricingInformation
processor to clear previous discounts.
Once the new quote information is added to the repository, the customer can be informed that their quote is available, and can review the quoted order. At this point, the order is in the payment state of the checkout process, with the payment method, item quantities, billing information and quote information displayed as read-only. The customer can accept, resubmit a request or reject the quote.
For detailed information on the quote pipelines, refer to the Appendix E: Pipeline Chains section.