A web platform for delivering goods from the USA to Kazakhstan
DinDon is a web service that ensures safe and fast delivery of goods from the USA to clients in Kazakhstan.
January 2021 — now
Our client partnered with us to create a web platform that would facilitate the shipment of goods from the USA to Kazakhstan. There was almost no good alternative where you could place your orders and track the delivery, so the system needed to be convenient, fast, and easy to use
The client had
- A general idea of the service
We were responsible for
- Building a web service from scratch
Two PHP engineers
We started the project from the wireframing stage to visualize its architecture and understand the core user flow.
The process of building machine learning solutions
A user creates an account and receives a storage locker number to use as an address when ordering on US websites.
The parcel arrives at the warehouse and is registered in the system by an employee.
Warehouse staff inspect the parcels for anything illegal or damaged.
The parcels are organized into containers and sent to Kazakhstan on cargo planes.
All parcels go through customs to see if there is anything which requires a declaration.
The user receives their parcel either at the airport or at the pick-up point.
Project’s key features
The service receives the most up-to-date information about the status of orders and keeps track of the delivery process.
Preparing declarations for customs and couriers
This process includes parcel declaration, barcode generation, package labeling, and data collection for the specific parcels in each container.
In addition to quick and secure payments via PayBox, users can also return money to their e-wallets immediately if necessary.
The Simple Mail Transfer Protocol was implemented with the help of SendPulse, enabling the sending of custom notifications and maintenance of email lists for promotions.
Challenges and Solutions
Damaged, dangerous, and prohibited goods
A parcel may contain damaged, dangerous, or prohibited goods. Warehouse staff check every parcel and if there is anything like that, they remove it. The system doesn’t know what items were removed and what the new weight of the parcel is. Since weight affects total delivery price, it is important to make sure the system stays updated.
Every parcel with damaged, dangerous, or prohibited goods is divided into two parts. Part 1 includes allowed items and Part 2 includes the ones that should be returned to shops. After that, Part 1 is weighed again, the system calculates a new price and notifies the user of the changes.
Integration with the warehouse in the USA
We needed to integrate a third-party warehouse (Ukraine Express) as a part of the platform to make sure we would have a storage facility for goods and could receive the most up-to-date information about orders.
The warehouse cooperated with us and made several custom alterations to their API so we could smoothly integrate its services into the platform.
There are many scenarios of things that can possibly go wrong with the parcel during a delivery. For example, a barcode could be damaged or a warehouse employee could forget to register the order. We needed to predict as many of these possible scenarios as possible so they could be identified quickly.
To get the most relevant information about the status of orders, we implemented a cron job that runs once an hour and collects the necessary data. We've also added several webhooks that are triggered whenever the status of an order changes.
Updating parcel information
With most services, users can’t update their parcel information like adding or removing items. Therefore, they had to wait for the next flight for their orders to be delivered up until now.
We have made it possible for users to edit parcel information. However, this function is only available up to the container loading phase.
Our next step is creating DinDon.Business—a delivery solution for retailers and small businesses.