1 minute read
86 Items (Removing Items
The following use case describes an example process that removes an item for an arbitrary reason and/or timeframe. This process can be used in situations such as, but not limited to: lack of inventory, recalls, availability by a particular order channel (in-store, online, third-party, etc.).
Use Case
ASSUMPTIONS
PRE-CONDITIONS
TRIGGER
• The menu publisher has the ability to connect to all subscribers through an API or menu subscribers are able to listen for updates.
• The menu publishing system must be online and connected to the subscribers to share menu updates, or the menu subscribers are able to reach out earlier and download the changes to local cache.
• The restaurant is out of stock of a particular item, or temporarily removing an item from sale, or any arbitrary reason to remove an item from a menu from any menu subscriber.
BASIC COURSE OF EVENTS
• The user identifies an item that is out of stock or low in inventory. • The user uses the menu publisher to set the selected item(s) to zero for one or all menu subscribers. • The user selects brand/location/store where this change will apply. • The menu publisher updates the item availability to all subscribers. • The items can no longer be ordered at selected subscribers. The items are either disabled or hidden from the ordering menu.
POST-CONDITIONS
• As the inventory system is updated with additional order the menu publisher resets the selected item back to available.
EXCEPTION PATH
• The menu publisher is not able to connect to subscribers or subscribers are not able to reach the publisher because they are offline.
ALTERNATIVE PATHS
• The menu publisher is able to replace the menu completely at all subscribers if it is not able to update individual items on the menu. The user can also go directly to each subscriber menu and manually remove the items from the menu.
Message Flows
User
1: adjustAvailability() : menuPublisher
2: updateItem() : menuSubscriber
User
User
1: adjustAvailability() : menuPublisher : menuSubscriber
1: adjustAvailability() : menuPublisher
2: publishFullMenu() : menuSubscriber