The checkout process encompasses a number of steps: applying promotions, calculating taxes, specifying shipping options and payment options, etc. These steps are handled through a sequence of pages that the customer steps though. Most of the JSPs for these pages are found in the /checkout/ and /checkout/gadgets/ directories.

Each checkout page displays a progress bar that indicates the stages of the process:

The current stage is indicated in blue. So, in the example above, the customer is currently in the Billing stage.

A customer can return to an earlier stage by clicking the link in the progress bar. In the example above, clicking on SHIPPING returns the customer to the Shipping stage. Note that this mechanism only works for going back; clicking on CONFIRM while in the Billing stage has no effect.

The exact set of pages the customer steps through can vary depending on context. For example, if the customer is not logged in when he or she clicks Checkout, a Login page (/checkout/login.jsp) displays, with options for logging in to an existing account, creating a new account, or checking out without logging in. If the customer selected the “Add gift note” option on the shopping cart page, the Your Gift Message page (/checkout/giftMessage.jsp) displays during checkout, with a form for creating a gift note.

Express Checkout

In addition to the standard checkout button, the shopping cart page also includes an Express Checkout button if all of the following are true:

The /cart/gadgets/actionItems.jsp gadget invokes the /atg/store/droplet/ExpressCheckoutOk servlet bean, which determines whether these conditions are all true and, if so, renders the Express Checkout button. This component is a CRS-specific servlet bean of class atg.projects.store.droplet.ExpressCheckoutOkDroplet.

Clicking the Express Checkout button takes the customer directly to the Confirm stage, using the default shipping address and credit card. In this case, the Confirm page includes a field for entering the card’s security code, since this is normally done in the Billing stage.

 
loading table of contents...