Edit: About 10 minutes after posting this, it mysteriously started working
(No need to read any further )
A colleague is working on a restaurant ordering app, and has been struggling with one particular aspect of it. I’ve been trying to help him, and I think I’m very close to a solution, but have hit a brick wall.
The general concept is as follows:
- A patron is seated at a table in a restaurant, and they scan a bar code
- This opens up the app, and they are presented with the menu
- They browse the menu, add items to a cart, and submit their order
- Time passes…
- Food is delivered to their table, they eat, they pay the bill, and everybody is happy and satisfied
NB. The app does not handle payments, this is outside the scope.
NB2. This will be a public app (for patrons), so no sign in required.
So far, so good. All very straight forward.
The tricky part is that when a patron submits an order, it needs to be associated with their table. Otherwise, the kitchen won’t know where to deliver the order, all the orders will get messed up, and we wind up with disgruntled patrons (and staff) scattered all around the restaurant.
The obvious solution is to use a User Specific Column to tie each order to a table number. I’ve tested this, and it works. For example:
- On the first screen, present a list of table numbers
- Ask the patron to choose their table, and tap a button
- Multi-step action sends them to the Menu tab, and sets a USC with the selected table number
- Then when the order is submitted, we use the value of this USC to associate the table number with the order.
I’ve tested the above flow, and it works just fine. The problem is that it isn’t a very nice user experience. We shouldn’t have to ask a patron for their table number, we should Just. Know.
So the idea that hit upon me was that perhaps we can use Deep Links. My idea was:
- Create a deep link for each table, and use this link to generate the QR code
- So each table has it’s own unique QR code
- When the patron scans the QR code, they land on the “details” page for that table
- I present them with a button labeled ‘View Menu’
- They tap on that, and a multi-step action sets the User Specific Column with ‘This Item → Table Number’, and they are sent to the Menu.
The problem is - the User Specific Column is not set
And this is where I’ve hit the wall - I can’t figure out why not.