Checkout Steps

The checkout process consists of the following steps:

  • Entry step (cart creation)
  • Customer step
  • Address step
  • Shipment step
  • Payment step
  • Summary step
  • Place order stop
  • Success step

Read on to learn more on each step.

Entry Step

The entry step redirects the customer to correct step based on QuoteTransfer state. This step requires input = false, so it won’t be rendered.

Customer Step

The customer step provides three forms:

  • login
  • register
  • register as a guest

This step is responsible for filling CustomerTransfer with corresponding data. The authentication logic is left to customer module, this step is only delegating calls to (and from) customer module and mapping data with forms.

Address Step

The address step is the step where customer fills billing and shipping addresses in QuoteTransfer::billingAddress and QuoteTransfer::shippingAddress respectively. This step lets the returning customers select one of the existing addresses or create a new one. New address will be created only if "Save new address to address book" checkbox is checked. Otherwise, it is saved in Order, but won't be stored in the database. This allows customer to skip new address saving if they want to. New and guest customers can only create a new address. If a new address is selected, it’s only created when order is placed and OrderCustomerSavePlugin plugin is enabled.

Shipment Step

Get shipment method information and store it into the quote. This step requires additional configuration because different shipment providers and different ways forms should be handled for each.

Payment Step

Get payment information and store it into quote for later processing when state machine is triggered.

Payment step has similar structure and data handling mechanics as the shipment step does.

Summary Step

Display order information about the item to be placed, details and order totals.

Place Order Step

Place order into the system. This step requires input = false. This step makes Zed HTTP request which sends QuoteTransfer. In this step, all order saving is happening.

Success Page

When the success page is executed, QuoteTransfer is cleared. Also, customer session is marked as dirty so that with the next request it would reload with the updated data (new customer address).

Current Constraints

Currently, the feature has the following functional constraints which are going to be resolved in the future.

  • all the stores inside a project share a single checkout with the same steps

Last review date: Jan 18, 2019