By incoming questions regarding preparing Menu Combinations I decided to give it a go.
This screen shot inspired me to prepare this setup.
This is a regular Pizza Product. When sold individually it behaves as we know. All order tags have prices and we can select portions
When sold as a part of a deal it starts behaving differently.
- We can’t change portions.
- First two tag selections for each order group (dip & topping) are free.
- Next button appears on order tag screen to advance to next product tags.
- When min & max selections are made for all order tag groups it auto advances to next product.
- Prices does not appears on order lines, Total price appears on group header.
- Canceling an item cancels all items.
- There are few more fine tuning to optimize how order tag screen appears.
On this setup 2 pricing methods are supported. You can price one item and mark others as gift or distribute price to products manually.
I setup 3 price definitions for 3 separate deals so we can configure how a product is priced in a specific deal.
If a product does not have a deal specific price it will be a gift.
There is no Deal 2 price for Tea so it becomes free.
That makes no visual difference but changes how costs are calculated.
I used product tags to configure which product exists for a specific deal.
If a product exists in multiple deals we can configure it like that.
Toasted Bagel Cheese appears in both Deal2 and Deal3.
Custom buttons added to configure Deal Menu buttons.
So to add a new Deal we need to.
- Add a price definition for deal.
- Configure deal items with product tags.
- Add a custom button to menu.
As you’ve guessed there is a complex automation setup behind that. The case is already complex so some ruling is needed. I won’t dive into details but roughly:
I Created a Value Looper to add menu products to ticket.
It adds the menu item, updates quantity, portion and states, finally updates Order Group. It also disabled portion selection for these items.
This is how Value Looper Gets triggered when a deal button is clicked.
After adding menu items it triggers a Select Orders action to trigger auto selection for first item of the deal.
If the PRICE TAG is null for an order it updates it as free.
That makes first 2 order tags free.
This is how order groups are configured.
I’m thinking ways to simplify this setup but whatever I think is not very flexible to fit all possible requests I can imagine. I mean we need flexibility to allow different promotion schemes so it is really hard to design an simple (and opinionated) menu preparation method.
Another problem is we already use product tags or price definitions for different cases and I can’t imagine how it infers with existing happy hour, VIP discount, etc setups. Maybe having a single price definition for all deals will allow easier setup.
I’m waiting for your suggestions & ideas regarding simpler setup and handling costs.