Menu Updates
OroCommerceMenuBundle reuses and extends the Menu Updates mechanism to provide new features:
Menu Updates for customer scope backed by
oro_commerce_menu.scope_criteria_provider.customer
service.Menu Update for customer group scope backed by
oro_commerce_menu.scope_criteria_provider.customer_group
service.
While using the same code from OroNavigationBundle, OroCommerceMenuBundle declares its own stack of classes and services to work with menu updates:
Entity class
Oro\Bundle\CommerceMenuBundle\Entity\MenuUpdate
to store the changes made to menu items.Menu builder
Oro\Bundle\NavigationBundle\Menu\MenuUpdateBuilder
:oro_commerce_menu.menu.menu_update_builder
that applies menu updates for the current scope.Menu updates provider
\Oro\Bundle\NavigationBundle\Provider\MenuUpdateProvider
:oro_commerce_menu.provider.menu_update_provider
that provides menu updates for the current scope.Menu update applier
\Oro\Bundle\NavigationBundle\MenuUpdate\Applier\MenuUpdateApplier
:oro_commerce_menu.menu_update.applier
that applies each menu update.Menu-update-to-menu-item propagator
Oro\Bundle\NavigationBundle\MenuUpdate\Propagator\ToMenuItem\CompositePropagator
:oro_commerce_menu.menu_update.propagator.to_menu_item
that propagates the data stored in a MenuUpdate into the corresponding menu item.