You are browsing upcoming documentation for version 6.0 of OroCommerce, OroCRM, and OroPlatform, scheduled for release in 2024. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
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 -
When started from a quote -
When started from an 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
\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
\Oro\Bundle\CheckoutBundle\EventListener\ValidateCheckoutOnStartEventListener has the setValidationGroups method that allows to customize the validation groups applied during validation