What the client needed
Fayno Market is a Ukrainian supermarket chain that positions itself as “shops next door.” Its philosophy is based on the concept of big and small local grocery stores where neighbors meet and chat casually. The company thus refers to its patrons as “neighbors.”
Currently, the chain is taking measures to go green and digitize offline processes, namely, moving from physical to virtual loyalty cards and providing personalized promotional offers. In line with its social responsibility goals, Fayno Market offers loyalty programs for several categories of patrons:
- customers
- senior citizens
- healthcare professionals
- Fayno Market employees
The business idea behind the grocery store app development was:
- to involve more consumers in the loyalty programs
- to gain a competitive advantage in marketing
- to adapt the business to the customers’ changing needs using the analysis of users’ activity.
Fayno Market was looking for a grocery app development company that could develop a solution from scratch in a very short time.
How the grocery app development began
Fayno Market approached Onix having a basic visual design of the future app but also with a negative experience with another outsourced software development company. Although we are not an exclusive food and grocery app development company, our managers convinced them that our specialists have the necessary experience and skillsets for the job.
Unfortunately, it wasn’t feasible to realize all of the client’s ideas and wishes in the first version of the mobile application due to the tight deadline. Together, we reviewed, discussed, and approved the proposed app features and software requirements again, reducing the task to building a minimum viable product (MVP).
The grocery store app functionalities
The Fayno Market application caters to two categories of users:
- grocery store customers (including seniors and healthcare professionals)
- employees
The customers’ mobile app
The customers’ app enables users to join the Fayno Market community and access its benefits. For example, a virtual loyalty card enables them to receive bonuses and discounts at the local grocery. Users needn’t carry a physical card with them when shopping. Instead, they need to show the barcode on the phone for the cashier to scan and apply the discount.
In the mobile application, a user can:
- register in the system as a customer
- choose the nearby Fayno Market grocery store as their home grocery
- view promotions (discounts on specific products) in the home or other Fayno Market groceries
- view personalized offers – discounts formed for an individual patron based on their purchase history, personal information, and responses to various surveys
- find information about all existing loyalty programs and the differences between them
- learn what discount they currently have
- use their loyalty card while shopping
- evaluate a particular store experience
- view their purchases history: list of products, date of purchase, grocery address, bill sum, and the amount of money saved
- download the fiscal check of any purchase they’ve made
- acquire and track the accumulation of bonuses
- manage their user profile information
The customer app’s main screens include:
- Sign-up/Login
- Home screen with the news banner and special offers
- Loyalty card screen featuring its number and a barcode to scan at the checkout point
- Bills screen with the history of the user’s purchases
- Review screen to evaluate a visit to a grocery store
- Support screen where users can contact Fayno Market
- Profile screen with the user’s personal information and all banking cards linked to the account
- My loyalty program screen with information about available programs
The employees’ mobile app
Fayno Market app for employees facilitates the management of the employees’ workflow and provides the same benefits associated with the loyalty program as the customers enjoy. Each employee has a loyalty card and is eligible for special discounts.
Using the mobile app, employees can:
- view their work schedule
- send and receive push notifications, e.g., to call a selected employee or employees to a certain work station in the store
- view their loyalty program details
- view special offers for employees
- have the loyalty card barcode scanned at the checkout point
- manage their profile information
The grocery mobile app development process, technology stack, and challenges
Onix-Systems developed for Fayno Market:
- a native iOS application
- a native Android app
- a database for the marketing department
The latter enables marketers to collect vital metrics by analyzing, for example, the most frequently viewed products, most popular purchases, and other customer activity data that would enable them to personalize special offers, among other things.
Our technology suite for grocery app development includes:
- Front-end development for iOS – Swift
- Front-end development for Android – Kotlin
- Shared backend with Rest API – CakePHP framework
This stack provided the most sophisticated way to customize the application’s functionality. PHP-based back-end development has proven an optimal solution for massive database integration and content management.
As the client didn’t want to use an admin panel, we built a tool that allows Fayno Market to administrate the database themselves. The integration with the client’s internally developed customer relationship management and enterprise resource planning systems was challenging, but we worked out an architecture that met their needs perfectly. The DB is set up on the client’s server.
CakePHP is very convenient when it comes to DB requests management settings. Currently, the database stores information about 18 million receipts and 70 million product items in the receipts; it has to process requests fast. It took significant effort to build a DB management system in such a way as to speed up the request-response flow.
The indexes in the database were built for each request that was slowing down the processing. The requests themselves were also adjusted several times to improve performance. For example, we set up complex conditions, such as the verification of dates and other items not at once but selecting a limited dataset first and only then processing the data in bulk. We run the table analyzer periodically to improve search by indexes.
CakePHP itself ensures the optimal way to build requests to the database. For example, it pulls all belongsTo links with one request together with the main record. Custom requests were also built in this fashion, minimizing their number.
Our back-end team also created separate endpoints for the quality assurance engineers to initiate tests of automatic production processes, such as sending push notifications.
One of the biggest challenges was to generate appropriate special offers for clients, taking into account numerous parameters:
- user`s city of residence
- user’s favorite grocery
- personal information
- in-app activity, etc.
A “Force-update” function has been implemented so that users don’t miss important app updates, such as a new feature or fixed critical bug. When the app developers activate this function, users who have not downloaded the update won’t log in. Users that are already logged in will be able to access only the loyalty card, the String-bag feature, and push notifications. The screen that blocks the app use has a button, clicking on which takes the user to the app’s page on Google Play or App Store to download the new version.
The mobile app design
The client provided the initial user experience (UX) design. However, our design team had to make changes as functionalities were being added.
Another contractor was responsible for the app’s initial visual design, but Onix’s design team created some parts of the application, such as:
- Receipts screen and the Receipt details screen
- Set of screens with flexible questionnaires
Onix’s designers used Figma for creating the graphic design and clickable prototypes.
The current results and prospects
The Fayno Market mobile app has been published on Apple’s App Store and Google Play store.
Currently, they count 100,000 active users in several regions of Ukraine.
The client is happy with the MVP application and is going to develop it further.
Two major features are being developed already:
Fayna Avoska (“String-bag”)
This loyalty program option aims to reduce the use of plastic bags at grocery stores. Fayno Market sells branded green string-bags with embedded NFC tags. When a customer buys one, they use the application to add it to their account. They apply their phone to the tag, it sends a request to the server, and the string bag’s number is linked to the user’s loyalty card. Multiple string-bags can be attached to a single account or removed as needed.
When a user takes a string-bag to a store, the cashier scans its NFC tag at the checkout as they would scan a barcode in the application, and Fayno Market’s system identifies their loyalty card. The customer doesn’t need to get the smartphone from their pocket to receive bonuses and an electronic receipt.
Flexible Questionnaires
This tool will enable Fayno Market administrators and marketers to poll the customers for generating valuable insights and building productive customer relationships. The app will collect and process customers’ feedback on the grocery stores’ service and the mobile application use. Several events in the mobile app will trigger questionnaires to pop up: login, personalized offers view, user’s transactions, etc.
A third feature is being planned:
Fayno Coffee
Every grocery will have a coffee machine with a QR code. After an app user scans the QR code, the app will display the Online Products – Drinks – a particular coffee drink from the list. The user will pay for it via PrivatBank LiqPay, and the cashier will immediately receive a notification that a coffee drink has been paid for. Thus, the user would make their coffee themselves without waiting in line.
More features will be developed later on, so eventually, Fayno Market can approve building a delivery app or another solution for its supermarket chain.