Yves Step Processing Checkout in Spryker demoshop uses a StepEngine step process to navigate customer step by step through checkout.
The checkout process creates a generic approach for step processing; each step knows how to handle the form data, where it has to store data and which conditions are required in order to be able proceed to next step.
StepProcess is the class that knows how to navigate through steps. Checkout contains a stack of steps provided during class creation. The instance of this class is created in CheckoutFactory and it’s used in the CheckoutController class. Each step has a corresponding controller action. Checkout extensively uses QuoteTransfer data object to populate data from customer and track the current state of the checkout.
Example: the controller action used in the payment step