Skip to content
E-commerce · Colour cosmetics

One dashboard instead of five marketplace back offices

Two-way synchronisation of stock and prices through every marketplace API, automated price management driven by margin rules, unit economics per SKU and per platform.

−85%
time the e-commerce team spent on operations
−94%
penalties for oversells and late shipments
+12 pp
margin, through automated repricing
Project scenario

This is a representative build based on our expertise and stack. The architecture and the approaches are real. The metrics and the context are given as a reference point for projects of similar complexity, not as a delivered result.

Budget
mid six figures in roubles
Duration
3 months
Team
4 people
Stack
FastAPI · Celery · PostgreSQL · ClickHouse

About the client

A colour cosmetics brand selling on five platforms. Eight people in the e-commerce team, responsible for the whole cycle from product cards to purchasing.

The problem

Five separate back offices turned day-to-day operations into constant firefighting:

  • Manual price and stock updates three times a week on each platform, four to five hours of one person’s time each round.
  • Oversells. Stock figures diverged between platforms and the brand sold things it did not have. Penalties ran into six figures a month in roubles.
  • Margin was calculated quarterly in a spreadsheet, so there was no way to react quickly to a specific SKU going underwater.
  • Marketing and purchasing had no shared picture, so operational decisions were made on instinct.

What we built

Two-way synchronisation

Every fifteen minutes, stock and prices synchronise through the APIs of all five marketplaces. Queues on Celery and Redis with retry logic. If one platform is down, the others keep working.

Postgres holds the canonical stock figure and the marketplaces are layers on top of it. Any movement — a sale, a return, a delivery — updates the canonical figure and is published to every platform.

Automated price management

The manager sets margin rules in the admin panel: never below X% margin for a category, react to a competitor within plus or minus Y%, never go under minimum price Z. Once an hour the system recalculates optimal prices against the rules and publishes them.

A competitor price scraper runs through proxies, with a day of data in ClickHouse and comparison per SKU.

Real-time unit economics

Every sale is decomposed into price, marketplace commission, logistics, returns and cost of goods, ending in net profit. That is written to ClickHouse, with dashboards in Grafana and in the brand’s own portal built on Recharts.

The manager sees margin per SKU by day, week and month; the ten worst-performing items; and the trend on each platform.

A bot for alerts

  • Sales anomalies — a sharp rise or fall on a SKU.
  • Low stock, with a forecast of how long it lasts at the current rate of sale.
  • Competitor price changes.
  • Marketplace API problems.

Alerts go to the team’s group chat rather than to email, which means a reaction within an hour instead of within a day.

The architectural catch

The hardest part is that “stock” means different things on different platforms. On some, the figure includes reserved units; on others it does not. On some, returns go back into stock automatically; on others they need a manual check. We solved it with an adapter per platform and explicit typing — RawStock, ReservedStock, AvailableStock — and the canonical figure is computed by strict rules rather than taken as it arrives.

Results

  • 85% less time on operations. From thirty-five hours a week across the team to five, freeing up four person-weeks a month.
  • 94% fewer penalties for oversells.
  • 12 percentage points of margin, from automated repricing and from spotting loss-making SKUs.
  • Payback in four months.

What changes for each role

One dashboard feels different depending on where you sit in an e-commerce team.

The marketplace manager. Updating prices and stock on five platforms took hours several times a week, and that work disappears entirely: two-way synchronisation runs on its own. The freed time goes into assortment and promotions, which is what the manager was hired for.

The commercial director. Automated pricing against margin rules keeps prices in a corridor relative to competitors and prevents anything dropping below minimum margin. Doing that by hand is impossible — not for lack of skill, but because of how fast prices move on the platforms.

The finance director. Unit economics stops being a quarterly spreadsheet exercise: every sale is decomposed down to net profit, including platform commission, logistics, returns and cost of goods. Loss-making items become visible in a day rather than a quarter, and purchasing decisions start resting on numbers.

The head of purchasing. Low-stock alerts with a forecast of how long the stock lasts at the current rate is a small feature with a disproportionate effect: it closes out-of-stock on bestsellers, which is the most expensive failure of all.

The IT director. The canonical stock figure lives in Postgres and platforms attach as layers through adapters that understand each platform’s stock semantics. The practical point is resilience: if one platform’s API is unavailable, the others keep synchronising instead of the whole system stopping.

When this fits

  • A mid-sized brand selling on three or more marketplaces.
  • A catalogue of 200 SKUs or more.
  • An e-commerce team drowning in operations.
  • A willingness to work from numbers rather than habit.

A similar problem in your business?

In one call we will work out what this would be worth to you and which architecture fits.