If the customer decides to accept the quote, they could indicate this by clicking an Accept Quote UI element. After receiving the orderId
as a form input parameter, the QuoteFormHandler
uses the acceptQuote
method to facilitate the re-pricing of the tax amount, as well as assisting with checkout of a quoted order.
The acceptQuote
method calls the OrderManager.acceptQuote
method to complete the checkout process by calling the processOrderWithReprice
pipeline chain. This pipeline chain calls the repriceOrder
pipeline chain, which calculates the tax amount. In addition to calling the PriceOrderTotal
processor, the repriceOrder
pipeline chain calls the processOrder
pipeline chain.
As described in Pricing and Quotes, during the quoting process, the only price adjustments that can be made are tax adjustments and the price adjustments made by your quoting system. For additional information on repricing, refer to the Repricing Orders section.
Before the quoted order is checked out, the order must be validated. Validation is performed during the checkout process by the validateForCheckout
pipeline chain, which is executed by the ProcessOrder
pipeline. The validateForCheckout
runs the ValidateQuoteForCheckout
component, which validates that the order status is QUOTED and that the quote has not expired. This component uses the atg.commerce.order.processor.ProcValidateQuoteForCheckout
processor.
Once the quoted order is validated, the processOrder
pipeline chain calls the PrepareForQuoteCheckout
component. This component uses the atg.commerce.order.
processor, which can be used to prepare for the checkout process.
processor.ProcPrepareForQuoteCheckout
After validation, the order is treated as any other order. For additional information on the processOrder
and validateForCheckout
pipelines and the order checkout process, refer to the Checking Out an Order section of the Configuring Purchase Process Services chapter.
Bypassing Expired Promotions
Because expired promotions can be valid for a quoted order, you can configure the preparation of the checkout process to include expired promotions. By default, the PipelineConstants.
flag is included in the
BYPASSEXPIREDPROMOTIONSCHECKProcPrepareForQuoteCheckout
parameter map. When BYPASSEXPIREDPROMOTIONSCHECK
is included, the ProcCheckForExpiredPromotions
processor, which is called during the processOrder
pipeline chain, is disabled, allowing the order to contain expired promotions. You can use the Boolean checkForExpiredPromotions
property in the ProcCheckForExpiredPromotions
to enable or disable the addition of the flag to the map.
Should the quote contain expired promotions, and the BYPASSEXPIREDPROMOTIONSCHECK has been not been included, meaning that the order will be checked for expired promotions, an error will occur. Note that removing expired promotions requires repricing the order, however, quote orders are locked for repricing. To remove expired promotions, the system can be configured to perform a requote, which will reprice the order and remove the expired promotions data.