oro_frontend.frontend_api.use_absolute_urls_for_api, default true, to enable absolute URLs for attachment images and CMS assets in API responses.\Oro\Bundle\FrontendAttachmentBundle\Api\Processor\ConvertProductSearchImageUrlsToAbsolute to handle URL conversion for ProductSearch entities in API responses.preload_fonts layout block type that uses Symfony WebLink component and pushes fonts to clients before they even know that they need them.\Oro\Bundle\FrontendAttachmentBundle\Provider\FileUrlProvider to support an API URL resolver for dynamic reference type handling.frontend_api_wsse_secured renamed to frontend_api_secured.oroaddressvalidation/js/app/views/base-address-validated-at-view to process validatedAt field on forms.oroaddressvalidation/js/app/views/frontend-address-validation-dialog-widget to configure and submit address validation result modal window on storefront.oroaddressvalidation/js/app/views/address-validation-dialog-widget to configure and submit address validation result modal window on backoffice.oro_address_validation.address_validation_service system config option to select integration for address validation process.oro_address_validation.channel service tag to specify that integration can be used as service for address validation.\Oro\Bundle\AddressValidationBundle\Form\Type\AddressValidatedAtType form type to render hidden validatedAt field from address entities on address forms on backoffice.\Oro\Bundle\AddressValidationBundle\Form\Type\FrontendAddressValidatedAtType form type to render hidden validatedAt field from address entities on address forms on storefront.\Oro\Bundle\AddressValidationBundle\Client\AddressValidationClientInterface interface that address validation aware integration should implements to find suggestions for the entered address.\Oro\Bundle\AddressValidationBundle\Model\AddressValidatedAtAwareInterface interface that address entities should implement to allow address validation.orofrontend/default/js/app/views/filter-badge-hint-vieworofrontend/js/datagrid/frontend-action-launcherorofrontend/js/datagrid/frontend-actions-panelorofrontend/js/datagrid/actions/frontend-reset-collection-actiongrid_render_parameters.themeOptions.actionOptions.resetAction.hiddenIfIsNotResettable {boolean} - Hide reset action button when grid doesn't have changesgrid_render_parameters.themeOptions.actionOptions.{actionName}.launcherOptions.renderInExternalContainer {boolean} - Render action launcher in provided external container with default selector [data-group="external-toolbar-${gridName}"]frontend_datagrid_external_toolbar, required datagrid namesvg_icons_support option into \Oro\Bundle\FrontendBundle\Resources\views\layouts\default\theme.yml.
Add svg_icons_support: true to your theme.yml file to enable SVG icons in your theme if it is extended from Refreshing Teal theme.configuration options into \Oro\Bundle\FrontendBundle\Resources\views\layouts\default\theme.yml.oro_theme.theme_configuration system configuration option.\Oro\Bundle\FrontendBundle\Layout\Extension\PageTemplatesThemeConfigurationExtension that gets product_page_template theme configuration option values and adds for page_templates.\Oro\Bundle\FrontendBundle\Form\Configuration\AbstractCssConfigBuilder that should be used for CSS Theme Variablesshow_input_control to \Oro\Bundle\FormBundle\Form\Type\OroSimpleColorPickerType that allows to show text input form for manual color value. By default, value for this option is falseactionHeaderCellLabel theme option in grid_render_parameters for the storefront datagrids, that allows setting label for actions header cell.dashboard_page_top wrapper for dashboard_quick_access_menu and dashboard_scorecards_containeralert for situations when template comes from back-office$dashboard-menu-offset-bottom-only-desktop variable as it is no longer used, and that the offset is now provided by the dashboard_page_top element.oro_customer.redirect_after_login and oro_customer.do_not_leave_checkout system config options that manage the redirection of customer user after login.Oro\Bundle\CustomerBundle\Provider\RedirectAfterLoginProvider that provides a redirect target url.\Oro\Bundle\CustomerBundle\Entity\CustomerAddress and \Oro\Bundle\CustomerBundle\Entity\CustomerUserAddress entities\Oro\Bundle\CustomerBundle\Entity\AddressBookAwareInterface interface that customer and customer user address aware entities should implement\Oro\Bundle\CustomerBundle\Entity\CustomerUserAddressAwareInterface interface that customer user address aware entities should implement\Oro\Bundle\CustomerBundle\Entity\CustomerAddressAwareInterface interface that customer address aware entities should implementvalidatedAt field to \Oro\Bundle\CustomerBundle\Form\Type\CustomerTypedAddressType form typevalidatedAt field to \Oro\Bundle\CustomerBundle\Form\Type\FrontendCustomerTypedAddressType form typevalidatedAt field to export/import for customer and customer user entitiesoro_customer.validate_shipping_addresses__backofficeoro_customer.validate_billing_addresses__backofficeoro_customer.validate_shipping_addresses__my_accountoro_customer.validate_billing_addresses__my_accountorocustomer/js/app/views/frontend-customer-address-validated-at-view that intercepts form submit to validate address via Address Validation feature on storefront customer and customer user address pagesorocustomer/js/app/views/customer-address-validated-at-view that intercepts form submit to validate address via Address Validation feature on backoffice customer and customer user pagescustomer-info-grid__order was renamed to customer-info-grid__section
As a result, the SCSS variables $customer-info-grid-order-* associated with this selector were renamed to $customer-info-grid-section-*\Oro\Bundle\CustomerBundle\Datagrid\CurrentCustomerUserViewList grid view list that filters grid data by the current customer user by default.oro_customer_dashboard_quick_access_menu menu.customer-info-grid__order was renamed to customer-info-grid__section
As a result, the SCSS variables $customer-info-grid-order-* associated with this selector were renamed to $customer-info-grid-section-*\Oro\Bundle\FrontendBundle\Request\DynamicSessionHttpKernelDecorator and \Oro\Bundle\FrontendBundle\DependencyInjection\Compiler\FrontendSessionPass, added explicit decorator \Oro\Bundle\FrontendBundle\Request\StorefrontSessionHttpKernelDecorator instead.FontAwesome font, use svg icons instead. More details are available at Oro Frontend Stylebook.fa-icon SCSS mixin.orofrontend/js/app/views/fit-matrix-view.\Oro\Bundle\CustomerBundle\DependencyInjection\Compiler\ConfigureFrontendHelperPass, made use of decoration instead for \Oro\Bundle\CustomerBundle\Security\TokenAwareFrontendHelper.orofrontend/default/js/app/views/sticky-element-view and orofrontend/default/js/app/modules/sticky-manager-module to provide new sticky element functionality based on CSS position: sticky property.base_storefront email template that could be used as parent email template (via email template inheritance feature) for storefront-related email notifications.$base-font-minor and $base-font-icon variables were removed, use $base-font and SVG icon instead.[@extend](https://github.com/extend) a for applying link styles.get-nested-map-value function was removed, use native SCSS map.get function instead.oro/frontend-dialog-widget was renamed to oro/dialog-widget, so you have to use oro/dialog-widget in your customization.
This widget no longer uses fullscreen-popup-view under the hood to render dialog as fullscreen.
All logic is done by CSS using an extra class fullscreen. As a result, fullscreenViewOptions property was deleted and properties popupIcon, popupBadge and events frontend-dialog:accept, frontend-dialog:cancel, frontend-dialog:close were renamed to dialogTitleIcon, dialogTitleBadge, and accept, cancel, close.oro_ui.content_provider is used for collecting backoffice content providers and the tag oro_frontend.content_provider - for storefront content providers.RuleEditorOptionsConfigurator [?], removed entities field and added supportedNames and entityDataProvideroro/frontend-dialog-widget was renamed to oro/dialog-widget, so you have to use oro/dialog-widget in your customization.
This widget no longer uses fullscreen-popup-view under the hood to render dialog as fullscreen. All logic is done by CSS using an extra class fullscreen. As a result, fullscreenViewOptions property was deleted and property popupIcon and events frontend-dialog:accept, frontend-dialog:cancel, frontend-dialog:close were renamed to dialogTitleIcon, and accept, cancel, close.$base-font-minor and $base-font-icon variables were removed, use $base-font and SVG icon instead.get-nested-map-value function was removed, use native SCSS map.get function instead.scroll property to data-dom-relocation-options to handle element relocation on scrollfrontend_export_result_error, frontend_export_result_success email templates to extend them from base_storefront email template.customer_user_confirmation_email, customer_user_force_reset_password, customer_user_reset_password, customer_user_welcome_email, customer_user_welcome_email_registered_by_admin email templates to extend them from base_storefront email template.orofrontend/default/js/app/views/sticky-panel-view.data-page-component-sticky.__sticky_panel__sticky_panel_widget, __sticky_panel__sticky_panel_content_widget blocks in layoutoro_commerce_menu.main_navigation_menu setting to the system configuration and the ability to change main navigation menu on the storefront as per this setting.synthetic field to \Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate.maxTraverseLevel field for \Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate to store the max depth for the content node or category menu items tree.menuTemplate field for \Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate to store the menu template name to use for when rendering a menu item.maxTraverseLevel field to the form \Oro\Bundle\NavigationBundle\Form\Type\MenuUpdateType.menuTemplate field to the form \Oro\Bundle\NavigationBundle\Form\Type\MenuUpdateType.\Oro\Bundle\CommerceMenuBundle\Builder\CategoryTreeBuilder to add the ability to fill the menu items of "Category" target type with their children as per \Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate::$maxTraverseLevel depth.\Oro\Bundle\CommerceMenuBundle\Builder\ContentNodeTreeBuilder to add the ability to fill the menu items of "Content Node" target type with their children as per \Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate::$maxTraverseLevel depth.menu_templates theme configuration allowing to specify menu templates available for storefront menu items rendering.\Oro\Bundle\CommerceMenuBundle\Provider\MenuTemplatesProvider to collect available menu templates.\Oro\Bundle\CommerceMenuBundle\Layout\MenuItemRenderer to render a menu item with the specified menu template using layouts.menu_list: Container for rendering menu list
layoutType: {default: null} - Allows you to set a layout modifier. Requires a class_prefix value to be settagName: {default: 'ul'} - Specifies which html tag to usemenu_item: Menu item with actions, also allows you to render the next level menu list
tagName: {default: 'li'} - Specifies which html tag to useiconEnable: {default: true} - Enable/Disable icon of the menu itemlinkEnable: {default: true} - Enable/Disable link of the menu itemtooltipEnable: {default: false} - Enable/Disable tooltip for menu itemdividerEnable: {default: true} - Enable/Disable divider itemsimageViewAs: {default: 'line'} 'line'|'image'|false - Show item with image as simple text item, item with image or disableattr: {default: null} - Menu Item Attributesactions_attr: {default: null} - Action Container AttributestooltipTemplate: Base HTML to use when creating the tooltip.link_attr: {default: null} - Item menu link attributesbutton_attr: {default: null} - Item Menu Button Attributesbutton_text_attr: {default: null} - Item Menu Text Label Attributesmenu_inner: Menu item container for rendering next nested content
layoutType: {default: null} - Allows you to set a layout modifier. Requires a class_prefix value to be setscss mixin main-menu-stack-items that provides a basic scss structure for a stack of menu itemslist: Simple list of menutree: Multi-column menumega: Multi-level menu with the ability to transition between levels with a slide effect on mobile devices, also a responsive view for desktop devicesThe widgets collapse-widget, collapse-group-widget, rows-collapse-widget were removed, use the bootstrap-collapse instead.
As a result, you need to update your html:
layout.twig
- {% set collapseView = {
- storageKey: 'unique storage key',
- uid: 'unique storage key id',
- animationSpeed: 0,
- closeClass: 'overflows',
- forcedState: false,
- checkOverflow: false,
- open: false,
- keepState: false
- } %}
- <div class="collapse-block" data-page-component-collapse="{{ collapseView|json_encode }}">
- <div class="control-label" data-collapse-container>
- Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit
- </div>
- <a href="#" class="control-label toggle-more" data-collapse-trigger>{{ 'Show more'|trans }}</a>
- <a href="#" class="control-label toggle-less" data-collapse-trigger>{{ 'Show less'|trans }}</a>
- </div>
+ {% set collapseId = 'collapse-'|uniqid %}
+ <div class="collapse-block">
+ <div id="{{ collapseId }}" class="collapse-overflow collapse no-transition"
+ data-collapsed-text="{{ 'Show more'|trans }}"
+ data-expanded-text="{{ 'Show less'|trans }}"
+ data-check-overflow="true"
+ data-toggle="false"
+ data-state-id="{{ 'unique storage key id' }}"
+ >Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...</div>
+ <a href="#"
+ role="button"
+ class="collapse-toggle"
+ data-toggle="collapse"
+ data-target="{{ '#' ~ collapseId }}"
+ aria-expanded="false"
+ aria-controls="{{ collapseId }}"><span data-text>{{ 'Show more'|trans }}</span></a>
+ </div>
The 'data-dom-relocation' selector to specify options for dom-relocation-view was removed, use 'data-dom-relocation-options' instead.
The oro grid system was modernized and uses CSS grid under the hood.
As a result, you need to update your html:
layout.twig
- <div class="grid">
- <div class="grid__row">
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- <div class="grid__column grid__column--1">grid__column--1</div>
- </div>
- <div class="grid__row">
- <div class="grid__column grid__column--3">grid__column--3</div>
- <div class="grid__column grid__column--9">grid__column--9</div>
- </div>
- <div class="grid__row">
- <div class="grid__column grid__column--4">grid__column--4</div>
- <div class="grid__column grid__column--4">grid__column--4</div>
- <div class="grid__column grid__column--4">grid__column--4</div>
- </div>
- <div class="grid__row">
- <div class="grid__column grid__column--12">grid__column--12</div>
- </div>
- </div>
+ <div class="grid">
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col">1/12</div>
+ <div class="grid-col-3">3/12</div>
+ <div class="grid-col-9">9/12</div>
+ <div class="grid-col-4">4/12</div>
+ <div class="grid-col-4">4/12</div>
+ <div class="grid-col-4">4/12</div>
+ <div class="grid-col-12">12/12</div>
+ </div>
More details are available at Oro Frontend Stylebook.
orocommercemenu/js/app/widgets/menu-traveling-widget was moved to orocommercemenu/js/app/views/menu-traveling-view; Now extends BaseView instead of AbstractWidgetmenu:
oro_layout.block_type.abstract_configurable to oro_layout.block_type.abstract_configurable_containercustomItemBlock: {default: null} - Provides the ability to use a custom menu item template.\Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate::getExtras, its purpose is moved to \Oro\Bundle\CommerceMenuBundle\MenuUpdate\Propagator\ToMenuItem\ExtrasPropagator.orofrontend/default/js/app/views/input-widget/checkbox was removed; use pure CSS checkbox customization instead.orofrontend/default/js/app/views/input-widget/checkbox-radio was removed; use pure CSS radio button customization instead.cookie_secure has been moved to visitor_session node.cookie_httponly has been moved to visitor_session node.cookie_samesite has been moved to visitor_session node.Oro/Bundle/CustomerBundle/Resources/config/oro/search.yml:
oro_customer_idorofrontend/default/js/widgets/line-clamp-widget was removed; use CSS -webkit-line-clamp property instead. Also was added the line-clamp class to does this out of the box.orofrontend/default/js/app/views/footer-align-view was removed; use CSS features (Flex Box, Grid) to align the required part of HTML.oro_frontend.api.rest.routing_options_resolver.remove_single_item_routes were removed.
Exclude the get action in Resources/config/oro/api_frontend.yml instead.ACCOUNT in Oro\Bundle\CustomerBundle\Provider\ScopeCustomerCriteriaProvider
was replaced with CUSTOMER.FIELD_NAME in Oro\Bundle\CustomerBundle\Provider\ScopeCustomerGroupCriteriaProvider
was replaced with CUSTOMER_GROUP.web_backend_prefix container parameter was added.
The parameter value must not be null and must start with a slash and not end with a slash.isFrontendRequest(Request $request = null): bool of Oro\Bundle\FrontendBundle\Request\FrontendHelper
was changed to isFrontendRequest(): bool. To check whether a request is a storefront request use
isFrontendUrl($request->getPathInfo()).Oro\Bundle\FrontendBundle\Provider\ActionCurrentApplicationProvider
was renamed to Oro\Bundle\FrontendBundle\Provider\FrontendCurrentApplicationProvider.*.class parameters for all entities were removed from the dependency injection container.
The entity class names should be used directly, e.g. 'Oro\Bundle\EmailBundle\Entity\Email'
instead of '%oro_email.email.entity.class%' (in service definitions, datagrid config files, placeholders, etc.), and
\Oro\Bundle\EmailBundle\Entity\Email::class instead of $container->getParameter('oro_email.email.entity.class')
(in PHP code).The format of Resources/views/layouts/{folder}/config/screens.yml was changed. The screens root node was removed. It was done to make format of this file consistent with other config files, such as Resources/views/layouts/{folder}/config/assets.yml, Resources/views/layouts/{folder}/config/images.yml and Resources/views/layouts/{folder}/config/page_templates.yml.
In Oro\Bundle\FrontendBundle\Controller\Api\Rest\WorkflowController::startAction
(/api/rest/{version}/workflow/start/{workflowName}/{transitionName} path)
action the request method was changed to POST.
In Oro\Bundle\FrontendBundle\Controller\Api\Rest\WorkflowController::transitAction
(/api/rest/{version}/workflow/transit/{workflowItemId}/{transitionName} path)
action the request method was changed to POST.
oro_commerce_menu.namespace_migration_provideroro_frontend.namespace_migration_provider, oro_frontend.namespace_migration_fix_product_provider and the logic that used them were removed.customer_user_welcome_email_registered_by_admin was added. It is sent when the administrator or a customer user manager creates a new customer user with the "Send Welcome Email" option selected or when the administrator confirms a customer user from the management console.The field username was removed from /admin/api/customerusers REST API resource.
The frontend_owner_type entity configuration attribute for Customer entity is set to FRONTEND_CUSTOMER.
The Full access level was changed to Corporate (All Levels) for Customer entity for ROLE_FRONTEND_ADMINISTRATOR customer user role.
For all other customer user roles the Full access level was changed to Department (Same Level).
Changes in /admin/api/customer_user_addresses REST API resource:
/admin/api/customeruseraddressescreated was renamed to createdAtupdated was renamed to updatedAtfrontendOwner was renamed to customerUserThe name for /admin/api/customer_users REST API resource was changed to /admin/api/customerusers.
The name for /admin/api/customer_user_roles REST API resource was changed to /admin/api/customeruserroles.
The name for /admin/api/customer_groups REST API resource was changed to /admin/api/customergroups.
The name for /admin/api/customer_rating REST API resource was changed to /admin/api/customerratings.
Removed the oro_customer.send_password_in_welcome_email config option to prevent issues with security when a plain password is sent by email.
There is no password provided while rendering the customer_user_welcome_email email template. Please update your customization of this email template. It is recommended to use a reset password link in the email template instead of a plain password.
CustomerGroup::customers relation was removed as well as other related logic.frontend option for datagrids. This option should be set to true for all datagrids are used in the store frontend. For details see Frontend DatagridsAccount Manager role has full permissions for Account and Contact entities. The permissions for the Account Manager is not changed if Customer Portal is added to already installed CRM.oro_customer.entity.owners was changed
local_level was renamed to business_unitbasic_level was renamed to userRecordOwnerDataListener[?]
OWNER_TYPE_ACCOUNT was removed, use OWNER_TYPE_CUSTOMER insteadHow can I help you explore Laravel packages today?