Have you decided you want online ordering for your restaurants but think you can build a system yourself? Maybe you can, but you nearly certainly shouldn’t.
You might start off describing some screens and general user flow. Your app is going to be so easy to use and better than everything else out there. You’ll allow people to log in with Facebook to make it really easy. Some screen-to-screen flow might get tricky such as deciding when to ask the user to choose delivery or collection. You could ask them at the end, after they’re invested in placing an order by adding food to their basket, but then you’re stuck if you want different items, or prices, on your delivery and collection menu. And if you’ve a chain of stores, you’ll be stuck if different stores have different menus — you’d need to know which store menu to show them.
So now you’re asking the user to select a store before they can see the menu. And then later asking them where to deliver to. Ach, now some users will have picked a store that doesn’t deliver to them. That’s not a great experience for the poor user who you’re now expecting to know your store delivery zones. Maybe you can show these on an awesome Google map.
You start to look at what other apps do and look for one that’s extremely easy and quick to use – and you might find a Flipdish app (which are measured to be the fastest in the world to place an order – even beating Usain Bolt to the finish line). It looks great so you tell your developers to copy the flow. Now you’re off to a great start. Your design is basically done, right?
“We haven’t tested it on that device yet. We’ll do that right away.”
Your developers show you their mockups and all looks good. They start to implement it and you excitedly test it on your phone. All is looking well. Your friend tries it on their, different, phone but it doesn’t look right. “We haven’t tested it on that device yet. We’ll do that right away.” say the developers. Next week another friend says it’s not working so well on their device. Better test it on that one too. Hold on…there are hundreds of different devices and screen sizes that you need to support…the testing strategy will need some thinking. At least it works for you.
It starts to come together and you do a soft launch. “I can’t log in”, “What do you mean, just click the Facebook Login button”, “I don’t use Facebook”. You’d be surprised how many people don’t. Better add an email login. Why not Google login too. Now you’ve a screen full of decisions your potential customers need to think about before they can give you money. Hurm.
Your drivers are complaining that some customer phone numbers are mis-typed and they can’t contact the customers. Why don’t we verify the phone number with an SMS so we know they work. Now we’re asking for the user to log in with email & password/Facebook/Google/Twitter and asking for a phone number and then verifying it. The poor customers just want to get fed… why not just ask for what you need, a phone number, and make that the login. Back to the developers, and another invoice. Who knew developers were so expensive.
Great, your user flow is done. Your apps are in the app stores, website is live and you’re receiving some orders. The last 12 months of development is going to be really worth it.
“I tried to order online but it won’t accept my phone number”, “What’s your phone number”, “It’s +357 la la la”. Oh – we only accept numbers from numbers local to this country. Better fix that. Invoice.
“Hi, this is Google. We notice you’re using Google maps on your commercial website. You need a Premium License. That’ll be €8,500 please. Plus VAT. Per year.” You certainly didn’t see that one coming. This is really getting expensive.
Website is down. SSL certificate expired. Call developer. Invoice.
Push notification broken. Apple push notification certificate expired. Call developer. Invoice.
No one can log in. Emails or SMSs not being sent. Your credit card expired and your email / SMS service bills weren’t being paid, unknown to you until you’re online ordering service is down for a Saturday night. You’d think they’d warn you. Oh, they did – spam box.
Notifying your stores of orders by email isn’t cutting it. Time to integrate with your POS. Invoice, Invoice, Invoice.
OMG – the card company just reversed the payments for 32 orders. The perp had used 9 different credit cards, all foreign. Why would we accept so many orders from someone who’s so obviously fraudulent!? Let’s add 3D Secure / Verified by Visa. Invoice. Online card order volume down by 35% as people hate 3D Secure / Verified by Visa and it’s just not worth the pain of ordering with an app that makes you jump through these hoops. Remove 3D Secure / Verified by Visa. Invoice. We better build in some other fraud detection systems. Invoice.
You really need a better way to see what’s going on online. Let’s add some analytics solution like Mixpanel or Google Analytics. Invoice.
All is now going well. Orders are coming through. Until match-day, your biggest sales day of the year. Site down due to load.
Add some cool features. App update rejected as Apple require you to update to the latest version of their SDK and to support the new iPhone XYZ. Big code rewrite and big invoice.
Want some new features like; Loyalty system. Invoice. Retention system. Invoice. Email marketing system. Invoice. Show different menu at lunch time. Invoice. Allow discount codes. Invoice. Geolocation. Invoice. Search menu feature. Invoice. Re-order previous orders. Invoice. In-app messaging based on user actions. Invoice. Show images of food. High res images on retina screens and standard res ones on older devices (automatically scaled server-side so as to not unnecessarily slow down old phones, naturally). Invoice. Live menu updates. Invoice. Handle out of stock items. Invoice. Allow your store managers access info on only their store, area managers access a set of stores, and you access all store information. Invoice. System to block customers who are causing you hassle. Invoice. Allow individual store managers refund their orders, but not other store orders. Invoice. Reports, reports reports. Invoice. Invoice. Invoice.
Done. No changes planned for a while.
Oh – Some random PSD2 law means you can’t charge card fees to the customer. Need to fix that or get fined. Another invoice.
Really, we’re done with changes now. The website / app is working well. Orders are coming in. You really need to get back to growing your business and opening new stores instead of spending all this time worrying about your online ordering system and talking to developers. Time to do some marketing, hire a new store manager, get flyer drops done, find a new supplier that can deliver on time. All the good stuff that grows your bottom line.
Bang. GDPR law comes along and mandates a complete change in flow to your marketing consent opt-in, means you can’t use those non-EU based servers any more. You need a way to delete user data. You can’t just keep your user data in your database anymore and need a system to automatically remove it after a few years. Need to lock down access to your online ordering system so only those who need to see data can see it. Get it wrong and you as a director of your company are personally liable. More invoices.
The above covers a tiny fraction of the pain and issues that anyone building a world class, reliable and well-performing online ordering system will face. If you’re taking that route, I hope it helps. If you instead want to have the world’s best online ordering system for your restaurant, ready in days and costing a fraction of the cost of building and maintaining it yourself, we’re here to help.
To learn more about Flipdish, book a live demo with one of our online ordering specialists today.