![](https://static.isu.pub/fe/default-story-images/news.jpg?width=720&quality=85%2C50)
1 minute read
Menu Setup
The following use cases describe an example process for initial menu setup and synchronization between two systems.
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 onboarding for the first time, or the restaurant is republishing an existing menu.
BASIC COURSE OF EVENTS
• The user creates a new item. • The user sets price for the item (multiple prices may be set based on need). • The user adds other information such as description, display titles, images, nutritional information, etc. to the item. • The user adds additional modification options to the item. • The user adds the item to a menu. • The user selects brand/locations /store where this menu will apply. • The user selects meal period where this menu will apply. • The users selects date and time restrictions for LTO if applicable. • The menu publisher makes the menu available to all subscribers.
POST-CONDITIONS
• The updated customer-facing menu is available on ordering platforms for restaurant consumers.
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 user can also go directly to each subscriber and manually create a menu.
Message Flows
User
User
1: createItem() 2. setPrices() 3: addDetails() 4: mapItemToMenu() 5: mapItemToBrandsAndSites() 6: mapItemToCalendarClock() 7: publishItem()
1: createItem() 2. setPrices() 3: addDetails() 4: mapItemToMenu() 5: mapItemToBrandsAndSites() 6: mapItemToCalendarClock() 7: publishItem() : menuPublisher
8: newItem() : menuSubscriber
: menuPublisher : menuSubscriber
User
: menuPublisher : menuItem + id + prices + description + displayTitles + images + nutrtional information + modification options
: menuSubscriber
createItem()
publishItem() : menu id + id + items + brands + locations + mealPeriods + ItoDetails : location + id
: brand + id
: mealPeriod + id
: LTO + id + startDateTime + endDateTime