- Scope PM/SM, BA, UX & UI design, mobile development, QA
- Technologies Flutter, Dart, Firebase
- Business sector eCommerce, eGrocery
- iteo Team 1 Project Manager / Scrum Master
1 Business Analyst
1 UX designer
2 UI designers
5 Flutter developers
4 QA experts
first product workshops with both the Client and their Business Partner, establishing the project’s scope, analytical works, assessing operational and technological possibilities
PoC development launch
further development, extending PoC with new functionalities
taking off with the second version of the app, setting up a dedicated team, and organizing another workshop to gather requirements and establish the scope
2nd version of the app development launch
adding new Partner Stores
releasing the 2nd version of the app
further product development
The InPost Fresh application combines the option of purchasing from various sources with delivery by InPost.
A user is able to make purchases from chosen Partner Stores – Makro and Carrefour – as well as from various sellers from the FMCG sector. The combination of local stores and different sellers from around the country allows for comprehensive customer service. However, it presented varied challenges while working on the new version of the app.
Both PoC and the current version of the project were created according to the Agile methodology which ensured flexibility in making changes.
Business needs & goals
Using its unquestionable competencies in the area of deliveries to the end customer, InPost wanted to expand its services by becoming a crucial link in the e-grocery revolution. The company planned on entering a new business market and building an innovative mCommerce platform. The solution needed to be coherent with both InPost’s current image and the Partner Stores objectives.
Specific Partner Stores features:
Choosing convenient date & time slots for deliveries from Partner Stores.
Flexibility of basket / delivery features
online – by card, BLIK or transfer to the bank (integration with Przelewy24), or
by card on delivery.
Limit handling – a client can’t buy more than an estimated number of products.
Specific FMCG stores features:
Allowing one product to be sold by multiple different merchants.
Choosing a seller a user wants to buy a product from – in case of more offers from a particular SKU, we can see them all from the level of product details.
Shopping at multiple vendors during one transaction.
Delivering the goods by the market logistics leader – InPost – by couriers or to the Parcel Locker (APM – Automated Parcel Machine).
Paying online: by card, BLIK or transfer to the bank (integration with Przelewy24).
The common features for both FMCG and Partner stores are:
Choosing product categories, including merchant recommendations or promotions.
Checking order details (including current and finished ones), as well as tracking their delivery.
A convenient browser, and an option of searching and filtering the products.
Saving the last basket and restoring it when a user returns to the app.
Managing invoice data, address list, and sales.
Displaying product tiles, discounts, and product details.
Searching with an autocomplete feature.
Signing up with a phone number.
At first, InPost Fresh was meant to bring up a similar experience to the InPost Mobile application.
In terms of the UX design, we tried to mimic some patterns that made the first application so easy to use. Of course, there needed to be adjustments made as users already have some habits and expectations regarding mCommerce apps.
Challenges for the first version were: how to equal InPost Mobile simplicity (that we are also creators of) and how to smoothly guide the user through the shopping process with different vendors.
When the requirements for the new version of the product were created, based on prior experience, we understood that there are bigger changes to be made. It would not be enough to expand the application with new functionalities – we basically needed to start over. We reused some components and patterns that worked well in the first version, we also learned from users feedback how to improve some.
The biggest new thing introduced in the new version is the split between two worlds – Partner stores and Whole Poland shopping. As the main user’s action does not change (it is still – browsing from the products catalog and doing shopping), there is an underlying huge amount of business rules that differentiate those. The goal was to create a possibly unified experience in both user paths, but at the same time, make the user understand in which context he currently is.
When designing the new version of the InPost Fresh app, we decided to completely abandon the previous visual approach. The application is significantly different from the original or at least its sister, InPost Mobile.
The whole thing was based on soft shapes, and the elimination of shadows to provide the greatest support and performance for the widest range of mobile devices.
The entire application has been divided into two worlds, partner and merchant, which are clearly marked with corresponding colors for each other.
In terms of photos, we decided to make it significantly easier to manage them, reduced the number of different photo sizes and eliminated the requirement to upload grayed-out photos, which considerably improved the look of the app.
The design system was built completely from scratch in consultation with development so that creating additional views or pulling in existing elements was as pleasant and efficient as possible for each party. We also implemented active file versioning which allows us to maintain historical versions of visual changes and control what happens.
In addition, as an icing on the cake, we focused on small micro-interactions in the application such as an animation crowning the shopping process.
The project was created in the most popular cross-platform technology – Flutter. The fast-growing Flutter ecosystem gave us many options to meet the project requirements.
The app was created according to the principles of Clean Architecture – the common standard of our team. Thanks to the selected architecture, we created a scalable code base that is focused on the business domain. Separating UI from the app logic allowed us to write clean and testable code.
We placed a strong emphasis on separating the FMCG module from the Strategic Partners module while keeping UI components reusable. We also wanted our approach to be future-proof. Setting the visual layer apart from the domain models gave us the freedom to use UI components throughout the code. The user can explore a large part of the app without being logged in, so one of the challenges was to enable the login process from many places in the app – we had to take care of data synchronization and caching.
We performed manual tests of the mobile app on devices with iOS and Android.
The project was developed according to the Agile mindset, and functional tests were based on user stories guidelines as well as acceptance criteria. Our test oracles were also UX flows, UI mockups and the app’s graphic design.
In addition, we applied explorational tests, retests and regression tests on various mobile devices and operating systems. To streamline the process of bug reports – in the test version of the app – we implemented a component which allowed adding bug notifications to the backlog along with a print screen and description directly from the app.
Acceptance tests were performed by InPost Fresh. Security tests before the production launch (both 1st and 2nd versions) didn’t detect any critical vulnerabilities.
Challenges & solutions
Adjusting the solution to the vendor’s requirements
Because the app also provides food products, we needed to include both ordering them by piece and selling by weight. Apart from that, the project required designing an intuitive presentation of dependencies in the order – available discounts, support for special codes, potential goods shortages, and a price which depends on ordered products. We adjusted the product categories, defined the special categories and allowed promoting the goods with additional marketing banners.
By creating its first e-grocery app, InPost entered a totally new business segment, and we needed to pay special attention to the business analysis of the project. We came up with its in-depth characteristics by thoroughly researching the market and making sure that the application responded to all business needs.
Joint multi-channel collaboration
Creating the InPost Fresh application required the engagement of 6 different companies: InPost, its business partners: Makro Cash and Carry and Carrefour responsible for Partners Stores infrastructure, OpenApp and VTEX company responsible for backend, and iteo for the mobile application. Nevertheless, we managed to stay in constant touch and develop a full-featured product in line with all the established requirements.
Opening up to a new kind of service resulted in developing a new market potential – strengthening varied business relations and gaining new clients.
The first version of the app was launched only for Makro customers in Warsaw. However, it was only the beginning. Later, InPost added another Partner Store – Carrefour. Now, the application is available in Kraków, Katowice and its vicinity, and in Łódź. With the release of the second version of the app, thanks to the addition of the FMCG store, it became available throughout Poland.
At the time of the second version’s launch, there were nearly 30 000 products available throughout the whole country, and over 25 000 in the Partner Stores.