Raise price and inventory event updates
Describes how to raise event updates for prices and inventories in Optimizely Customized Commerce when using the Optimizely Search & Navigation.
Events are raised when changes are made to prices and inventories, triggering the indexing of updated content.
Price updated event from custom price service
The default price service, PriceServiceDatabase, raises an event when a price is changed. This allows EPiServer.Find.Commerce to re-index the variant content with updated prices.
To re-index variant content when a price is updated, modify a custom price service as follows:
- Add a dependency to
Mediachase.Commerce.Engine.Events.CatalogKeyEventBroadcaster
in your service. - Call
OnPriceUpdated(priceValues, new PriceUpdateEventArgs(catalogKeys))
on theCatalogKeyEventBroadcaster
instance when a price has been added, updated, or removed. Here,catalogKeys
is an IEnumerable<CatalogKey> that references the variants to which the prices belong.
Inventory updated event from custom inventory service
The default inventory service, InventoryDatabase, raises an event when an inventory is changed. This allows EPiServer.Find.Commerce to re-index variant content with updated inventory information.
To enable re-indexing of variant content when an inventory is updated, a custom inventory service must be modified:
-
Add a dependency to
Mediachase.Commerce.Engine.Events.CatalogKeyEventBroadcaster
in your service. -
Call
OnInventoryUpdated(inventory, new InventoryUpdateEventArgs(catalogKeys))
on theCatalogKeyEventBroadcaster
instance when an inventory is added/updated/removed. Here,catalogKeys
is an IEnumerable<CatalogKey> that references the variants to which the inventories belong.If the inventory is deleted, the event will contain an empty list of inventory items and a list of
CatalogKey
s for the deleted inventory.
Updated 3 days ago