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.
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:
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:
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.