Redefining Sustainable Grocery Solutions for a German Marketplace

A marketplace for sustainable groceries shopping and a white label solution

Software Products, SaaS Development, Custom software development

About our client image.

Project background

It's a marketplace where the residents of Germany and local vendors can find each other. The software helps users buy groceries sustainably from regional suppliers. Pick-up and address delivery options are available to customers.

Country

Germany

Technology

Java 12, JavaScript, PostgreSQL

Cooperation

August - Ongoing

30k+

Downloads on the App Store and Google Play

4,7

Rating on the App Store

-33%

Decrease in development time over the alternative

100k+

Products sold

There are four ways in which users can interact with the platform, depending on their role.

Vendors process. Registration

Shoppers also start at the registration page and have to confirm their email before they are granted access to their accounts.

Menu

Shop owners have full control over their menu page. They can add or remove items, organize merchandise by categories, add a description and a list of ingredients.

Sellers also specify whether the item is currently available or out of stock.

Info page

The store owners also manage the page with information about their location, opening hours and contact details.

Google Maps are integrated into informational pages, depicting the location of each shop on the map.

Buyers process. Registration

Shoppers also start at the registration page and have to confirm their email before they are granted access to their accounts.

Vendors and Their Menus

Prospective buyers browse the list of available suppliers and what they have to offer. Chosen items then can be placed in the shopping cart with a single click. Users also can add vendors to the list of their favorites.

Shopping Cart

Users control their shopping carts. They can add and remove items as well as specify their quantity. Our team has used React.js to develop the shopping cart.

Delivery Type and Time

Users can either choose pick-up or address delivery. The time for the delivery can also be indicated. The platform encourages neighbors to cooperate and make orders together to lower their carbon footprint.

Payment Methods

Users can pay using a credit or a debit card, SEPA, Google Pay or Apple Pay.Stripe was integrated as a third-party solution to process payments.

Blog

Buyers, along with prospective vendors, are also the main target audience for the app blog. Here they can read news and interesting facts about the marketplace development. This includes the description of various relevant local events where company representatives participate.

Couriers process

Account
Couriers are registered by the vendors for whom they deliver. Each courier has their own account, where they can add and modify information, such as their name, contact details and delivery capacity.

Orders
At the top of the screen, delivery persons can view order details. Below, a map is located, depicting the optimal route. This route is calculated by an algorithm that takes into account the capacity of each courier and other variables. View the delivery mechanism section to learn more about this solution.

Marketplace Administrators

Administrator Panel

Marketplace administrators can see all the information accessible to other types of users. In the Customer section, they can see who the buyers are, what they order, how often and how much. The Providers section lists all the vendors, their categories (for instance, bakery, butcher’s shop, farm shop), whether they have a subscription, etc. The Suppliers section provides information about couriers. Administration can see their surnames, emails and who their employers are.The Order section has all the necessary information about each order, including the time when it was placed, its number, who the buyer and the vendor are, the payment method, the delivery details and the status. The User section provides details about all the system users and the Client section informs about companies that are using our software as a white-label solution.

Marketplace administrators can see all the information accessible to other types of users. In the Customer section, they can see who the buyers are, what they order, how often and how much. The Providers section lists all the vendors, their categories (for instance, bakery, butcher’s shop, farm shop), whether they have a subscription, etc. The Suppliers section provides information about couriers. Administration can see their surnames, emails and who their employers are.The Order section has all the necessary information about each order, including the time when it was placed, its number, who the buyer and the vendor are, the payment method, the delivery details and the status. The User section provides details about all the system users and the Client section informs about companies that are using our software as a white-label solution.

Key New Feature – Algorithm for Delivery Optimization

As was mentioned, customers can choose whether they want to pick up the order themselves or have it delivered to their home or work. Our team has created from scratch an algorithm that helps couriers calculate the best route for them. It is highly customizable and takes into account the following:

The location of each shop and customer on the order list

The algorithm takes into account three location points – courier's position, vendor location and delivery address. First, this data is processed in Google Distance Matrix API, which generates a matrix with the weight and size of the parcels as well as a schedule for each route. This matrix is then transferred to JSPrint which has additional parameters - the number of couriers available, their location, capacity, etc. Based on this data, orders are assigned to carriers and the library calculates the optimal route for them. The result is displayed on a map in real time.

The capacity of a delivery person

How many goods can they deliver in one go? This usually depends on the type of vehicle they operate. Thus, those who deliver by bike or on foot, albeit more eco-friendly, can deliver fewer and smaller items than car or van drivers. Couriers can indicate the maximum size and weight of packages that they can carry simultaneously.

Customers’ preferred delivery time

When placing an order, customers choose time slots when it is comfortable for them to receive their order. The preferred delivery time for each order is allowed for when calculating optimal routes for couriers.

Technologies

The new algorithm allows for faster, simpler and more efficient delivery.

Payments

Users can choose from four payment options – debit/credit card, SEPA, Google Pay and Apple Pay. Moreover, a third-party solution called Stripe was integrated into the platform to facilitate payment processing. Stripe offers many useful features and benefits, including fraud prevention and invoice generation.

Credit/Debit Card

To pay for a purchase with a credit or a debit card, users need to fill in the card details. This includes the card number, the name of the holder, the expiration date and the CVV code. Buyers can save the card details for further use.

Google and Apple Pay

Google and Apple Pay are some of the most popular and arguably comfortable payment options for many users. Those who have already set up their Google/Apple Pay accounts need no further integration – they are ready to pay.

SEPA

Single Euro Payments Area or SEPA is an EU initiative, facilitating cashless transactions within the area. Application is using the SEPA Direct Debit type of payment. For a business to be able to charge a customer, the latter has to provide their name and the number of their bank account in IBAN format.

Statistics

Statistics is an immensely useful feature when it comes to business analysis and planning. Administrators can choose for which month they want to view statistics. Questions to which statistics can provide answers include: How many orders were made in general and from each individual vendor? How much was ordered? What is the successful delivery rate?Which user ordered how much and from which vendors? Admin could view statistics in the form of graphs or tables. Our team has used JavaServer Faces (JSF) to create the statistics dashboard.

Notable Achievements

1

The founder, Marko Jeftic, was invited as a lecturer to The Smart Country Convention (SCCON) – Germany's largest exhibition and fair for the digitization of the public sector.

2

There are already more than 30,000 downloads on the Appstore and Google Play. The overwhelming majority of reviews are positive.

New feature development

1

The marketplace used to have a hub delivery method – users could order groceries to be delivered to self-service lockers. This type of delivery was not popular and difficult to manage. Moreover, it was adding a lot of complexity to the codebase, straining the system resources. The decision was made to discard this delivery method and remove the code supporting it from the codebase.

2

Our team has successfully removed the unnecessary code from the codebase, which was around 30% of the total amount. No harm was done to any other feature, during the process. Instead of the hub delivery, we have created a new, more efficient, home delivery feature.

Resource optimization

1

Hub delivery and pick-up options were available. Users were able to browse the list of nearby suppliers and their menus but without an option to order via the app. Users could view the merchandise but there was no option to buy it via the app.No such function as statistics was present.

2

We have created a home (or address) delivery feature. Choosing this type of delivery customers to specify the address and time where and when they want their groceries to be delivered. Then couriers are notified about the new order. Our team has set up a shopping cart feature, allowing users to add, change, delete orders, choose a payment method, set up delivery method, its location, and time. All of this is done on the front-end, after which a confirmation request is sent to the back-end. Such an architecture allows to optimize the system workload. Our team has added several payment options to the grocery app, including credit/debit card payments, Apple and Google Pay, and SEPA. We have also integrated Stripe to facilitate payment processing and protect the system against fraud. We have developed a statistics feature, using JSF. It is available to marketplace administrators. The feature simplifies tracking marketplace trends and changes, such as the number of orders, and their cost. Administrators also can see who are the most prolific vendors and loyal buyers.

1+ years

Of successful cooperation between Retama and Softkit

6 month

After the start of joined work, the app was reborn, with new features available to the stakeholders

5 professionals

Dedicated to the project development team