← Back
Confidential client · 2021 – active

Order and warehouse system for e-commerce

The story

A multi-country operation that no longer runs on spreadsheets and email.

The operational backbone for an e-commerce operator selling across several countries, running orders, packages, warehouses and couriers from one place.

Worth noting

  • · Closer to a thousand orders a day than to hundreds
  • · Supplier files in any format, none of them retyped
  • · Running since 2021, one of our first big production systems

The problem

The client sells in several countries through different courier companies. Orders arrive from Shopify. Supplier data arrives in whatever format that country uses: CSV one day, Excel the next, XML from a courier abroad, with local quirks such as Croatian currency formatting, missing images and inconsistent reference data. All of it had to land in one place, linked and auditable, with warehouses and packages tracked end to end. By hand, the work did not scale past a few countries.

Outcome

The team runs day-to-day operations across several countries from one dashboard, where changes show up as they happen. Whatever format a supplier or courier sends, the data lands linked and auditable, and the team can answer what changed and when. Volume sits at several hundred orders a day, closer to a thousand than to hundreds.

What we built

The team works from one dashboard covering orders, packages, products, warehouses, couriers, invoices, archives and logs, with charts on the overview. Orders come in from Shopify. Supplier and courier files go to a separate reader that knows each country's format and quirks, so the team never handles a broken file. Every stock movement is a transaction against a warehouse, every change to an order is logged, and old records go to the archive.

What it covers

Orders and order changes, packages and package items, products, warehouses and stock transactions, couriers, invoices, supplier file import, Shopify orders, archives, change log.

How we approached it

We split the work by what each part is good at. One core holds the operational model, and the dashboard is a window onto it with no data of its own. File reading got its own service because CSV and Excel tangles from suppliers are a different kind of problem from running orders. That service accepts calls only from the core, so no surprise input reaches it. Country-specific logic lives there too, so a new supplier format is a new code path.

In use

Have a similar problem?

Tell us how your operation works today. We'll tell you what we'd build.

Get in touch