Bonami: Software for in-house transportation in four months
The Czech e-shop Bonami needed software for their own delivery service in Prague. The deadline? Four months. We delivered a complete logistics solution with route optimization and capacity calculations.
Bonami is well known for their premium brands, design, and customer service. However, until 2020, they had been using 3PL services for deliveries of larger items like furniture, and didn't have control over this crucial part of the customer journey. Bonami faced too many complaints regarding deliveries, so they decided to introduce their own transportation service.
„This service delivers one of the best service experiences available in the furniture market. The convenience of choosing the exact delivery range is still not common. The ability to take away old furniture and install new furniture in one visit by our couriers is absolutely key and unique. We are happy we could offer these services thanks to Cookielab.“
The story
Our relationship with Bonami goes back to 2018. They know we have the experience in logistics and enthusiasm for a good challenge.
We put together a complete solution that included warehouse reservations, capacity calculations, and an app for drivers, combining existing tools and our own tech stack. The solution plans the ideal route based on van capacity, optimal customer sequence, time needed for delivery, and additional services like assembly and installation.
The solution is fully integrated into the company's warehouse system. We also redesigned the order form on the web, creating the complete user experience from service choice through time slot reservation to price calculation.
Working with the Bonami team, we expanded the solution to Slovakia and Hungary with translations and modifications for different logistics operations. At the end of 2020, we added a feature allowing customers to choose their preferred delivery time.
The challenges
The biggest challenge was the four-month deadline — from zero to a complete logistics system. We had to integrate with existing Bonami tools while building route optimization, capacity calculations, and a driver app. A few weeks after go-live, we discovered we had underestimated demand and limited orders in the system — once we removed the restriction, everything flowed smoothly.
What's next
We plan to expand the solution to more cities in the Czech Republic and continue cooperating on modifications for new locations and services. The logistics system we created is a strong base for Bonami's business plan, giving them space to expand on their own terms.
Bonami is well known for their premium brands, design, and customer service. Until 2020, they used 3PL services for furniture deliveries and had no control over this crucial touchpoint. They needed a complete logistics system — warehouse reservations, capacity calculations, and a driver app — in just four months.
What we delivered
„Every time we see Bonami's vans going to customers, we are pleased to be part of their journey. Thanks to our experience in the logistics industry, we were able to develop a high-quality turn-key solution relatively quickly. The new system is sustainable, scalable, and will help Bonami grow.“
Technologies
The story
To incorporate the logistics system into the existing stack, we wanted to use technologies Bonami already had, like GraphQL. We wanted schema stitching/federation with the existing Scala/Sangria gateway, but Sangria didn't support it. We ended up writing the integration manually in Scala using a Caliban client. Thanks to ongoing GraphQL development for Node.js, we delivered a sustainable solution.
For the database, the requirement was that a 'power-user' with SQL knowledge could manage the system directly. We applied multiple PostgreSQL constraints as a powerful baseline and added tests to verify constraint behavior. Later, we added GraphQL mutations to reduce direct database access.
For slot capacity, we developed an algorithm rating every part of the delivery process (travel, assembly, payment) with 'points' — similar to agile story points. The capacity of each delivery slot was defined in the same points. Calculation was done on-demand and optimized to work that way.
What's next
We plan to expand the logistics system to more locations. We closely cooperate on optimization and new requirements, and modified the delivery slot algorithm when customer time-preference selection was added in late 2020.