Important
We are updating the images for OroCommerce version 6.1 to align with the latest changes in the back-office design. During this transition, some images may still show older versions. Thank you for your patience as we work to update all visuals to reflect these changes.
Checkout Start
There are several ways to initiate a checkout process in a storefront:
From a shopping list view page - via the start_from_shoppinglist workflow transition
From a quick order form - via the start_quickorder_checkout action group
From a quote view page - via the oro_sale_frontend_quote_accept_and_submit_to_order action
From an order view page - via the oro_checkout_frontend_start_from_order action
Each mentioned checkout method requires a different source entity to provide initial data and line items.
When started from a shopping list or a quick order form -
\Oro\Bundle\ShoppingListBundle\Entity\ShoppingList
When started from a quote -
\Oro\Bundle\SaleBundle\Entity\QuoteDemand
When started from an order -
\Oro\Bundle\OrderBundle\Entity\Order
Checkout workflows fire the following events to check whether a checkout can be started:
extendable_condition.shopping_list_start - to check if a checkout can be started from a shopping list
extendable_condition.start_checkout - to check if a checkout can be started from another source
Out-of-the-box, \Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutOnStartEventListener
listens to both of these events and delegates validation to Symfony Validator with different validation group sequence that varies on the source entity used to start a checkout from:
Default - the default validation group
checkout_start%from_alias% - a variable validation group with placeholder %from_alias% that is automatically replaced by the entity alias of a source entity, i.e., checkout_start_from_shoppinglist, checkout_start_from_quote or checkout_start_from_order
Note
\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutOnStartEventListener
has the setValidationGroups method that allows to customize the validation groups applied during validation