Configuration/Core/client/html/Change checkout steps

From Aimeos documentation

< Configuration‎ | Core/client/html
Revision as of 18:30, 8 November 2019 by Aimeos (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)



2017.x+ version

By default, the checkout process consists of these steps in the following order:

Depending on the type of product you are selling there's sometimes no need for e.g. choosing a delivery option by the customer. Virtual products usually fall into this category. You can remove a step from the process completely by modifying the subparts configuration to

client/html/checkout/standard/standard/subparts = array( 'address', 'payment', 'summary', 'order', 'process' )

This example would leave the order of the steps as is but removes the "delivery" step. Depending on the configuration of the plug-ins, delivery and payment options may be enforced. To change this behavior, you have to adapt the ServicesAvailable basket plug-in.

In theory, you can reorder the single steps to any other order but it's not recommended. There are dependencies between some steps like the delivery options depend on the address entered by the customer or the costs of the payment options depend on the total value including the delivery costs. For the same reason it's not recommended to place all steps on a single page. If you do this or change the order be sure that you know what the consequences are!

If necessary, you can also add new steps to the checkout process. They will be automatically inserted into the process after you've added their names to the subpart configuration.

One page checkout


Since 2015-05, you can decide to offer a one page checkout additionally to the standard multi step checkout or place two or more steps on the same checkout page. This makes the Aimeos checkout process incredibly flexible and allows you to adapt it to your needs.

The main configuration option for the one page checkout is client/html/checkout/standard/onepage. Basically, it contains the checkout steps that should be placed on the same page. The available steps are those from the sub-clients of the checkout standard component:

  • address
  • delivery
  • payment
  • summary

There's a fifth ("order") and sixth ("process") step available but they aren't suited to be used for a one page checkout because they have to perform some actions after the order is placed. An example for a full one page configuration would be:

client/html/checkout/standard/onepage = array( 'address', 'delivery', 'payment', 'summary' )

The order of the subpart names doesn't matter in this setting as it's already determined by the order of the subparts configuration.

Commonly used variants are:

Delivery and payment on one page 
This is used most often if you want to save one step for the customer and there are not much options to chose from on both pages. The downside of this combination is that you can't calculate additional payment costs based on the price of the chosen delivery option.
Address, delivery and payment on one page 
A classic one page checkout that is legally safe because the summary is still the last step where customers have a complete overview of there data and the price to pay before they finish the order. Drawbacks are the limited payment cost calculation like in the first option and that delivery options can't be limited depending on the country or region of the customer.
Full one page checkout including all steps 
This is the real all in one checkout where customers have every information on one page. It's best suited if you need to display only a limited amount of information or show/hide the parts where users have to enter their data dynamically. To be legally on the safe side, your total order amount must not change any more as soon as this page is displayed. This means that shipping costs are fixed and no payment costs can be charged. Additionally, all drawbacks of the last option applies as well.

When using a full one page checkout, you can limit the sections shown in the summary subpart as well. The blocks for the addresses and delivery/payment options are useless in this setup and should be removed from the checkout summary template

If only one shipping method is available, you can also hide it in the one page checkout but you shouldn't remove it. As long as it's part of the order, backend systems can work with that data. Instead, make it invisible by using CSS.