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.customerservice.Menu Update for customer group scope backed by
oro_commerce_menu.scope_criteria_provider.customer_groupservice.
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\MenuUpdateto store the changes made to menu items.Menu builder
Oro\Bundle\NavigationBundle\Menu\MenuUpdateBuilder:oro_commerce_menu.menu.menu_update_builderthat applies menu updates for the current scope.Menu updates provider
\Oro\Bundle\NavigationBundle\Provider\MenuUpdateProvider:oro_commerce_menu.provider.menu_update_providerthat provides menu updates for the current scope.Menu update applier
\Oro\Bundle\NavigationBundle\MenuUpdate\Applier\MenuUpdateApplier:oro_commerce_menu.menu_update.applierthat 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_itemthat propagates the data stored in a MenuUpdate into the corresponding menu item.