N3S

← All cases// Systems & integrations · Web apps

A fulfillment platform for marketplace sellers: 78,832 orders with no manual re-keying

A portal that connects Wildberries, Ozon, Yandex Market, MoySklad, T-Bank, CDEK and Russian Post. We have been building and supporting it since June 2025.

A fulfillment platform for marketplace sellers: 78,832 orders with no manual re-keying
marketplace orders in 14 months
78,832
turnover of those orders
₽97.4M
orders in one day, record set on 19 January 2026
1,456
from the start of development to the first real orders
2 months

// Client

A fulfillment platform. Wildberries, Ozon and Yandex Market sellers take suppliers' goods from a shared catalog, and the platform's warehouse picks and ships their orders. The platform also gives sellers their own storefronts with delivery, dropshipping, product card generation, a pricing bot, accounting and marketing services.

The system now has 233 accounts: 172 sellers, 34 suppliers, 19 seller-suppliers and 8 administrators. 166 marketplace stores are connected. The catalog holds 7,886 products from 53 suppliers, with stock tracked across 31 warehouses.

// The task

The platform needed a system where an order from any of the three marketplaces reaches the warehouse on its own and the money is split between seller, supplier and platform automatically. Without it, every operation would have been done by hand in three marketplace accounts, in MoySklad and in the bank.

// What the system does on its own

OperationHow often
Pulls new orders from Wildberries, Ozon and Yandex Marketevery morning at 05:30 Moscow time
Checks the seller's balance and charges the order costfor every order
Builds the marketplace shipment, gets stickers and box QR codesfor every shipment
Creates the customer order and supplier orders in MoySkladfor every shipment
Updates stock on the marketplacesevery hour
Recalculates and uploads pricesevery 15–20 minutes
Checks payments in the bankevery 5 minutes
Marks dispatch and closes the shipmentevery hour from 16:00 to 04:00
Transfers money to suppliers, partners and the platform, processes refundsevery hour
Creates a CDEK or Russian Post parcel and tracks deliveryfor every storefront order

What's still manual: picking and receiving at the warehouse, moderating new products and checking FBO requests.

Process map

  1. 01

    Order on a marketplace

  2. 02

    The portal pulls it in the morning

  3. 03

    Shipment with fulfillment services

  4. 04

    The seller pays for it via T-Bank

  5. 05

    The warehouse ships

  6. 06

    Payouts to suppliers and the platform

// Integrations

  • Wildberries
  • Ozon
  • Yandex Market
  • MoySklad
  • T-Bank
  • CDEK and Russian Post
  • Google Gemini
  • Yandex Metrica and Yandex Maps
Wildberries
FBS orders, shipments, stickers and boxes, stock, prices, product cards, categories, fees
Ozon
FBS orders and postings, labels, stock, prices, product cards, categories, fees
Yandex Market
orders, returns, stock, prices, product cards
MoySklad
catalog, warehouses and stock, counterparties, orders, shipments, payments, seller balance
T-Bank
payments, safe deal with payment splitting, card payouts, refunds
CDEK and Russian Post
storefront order delivery: rates, pickup points, parcels, statuses
Google Gemini
descriptions and images for product cards
Yandex Metrica and Yandex Maps
analytics on seller storefronts, pickup point selection

// The hardest parts

01

Money between three parties

The seller's payment for a shipment is split between suppliers and the platform through T-Bank's safe deal. By default a deal allowed a single payout, so we moved to deals with multiple payouts: suppliers first, the platform last. A refund is issued only after the payment is verified in the bank, so money is never returned twice.

02

MoySklad as the source of truth

7.9K products and 339K stock rows across 31 warehouses are synced every day. If MoySklad returns incomplete data, the sync stops instead of wiping the catalog.

03

Three marketplaces, three rulebooks

Wildberries shipments with boxes, Ozon postings and labels, Yandex Market orders. Every morning orders are grouped into shipments by marketplace warehouse.

04

Updates with almost no downtime

The new version is built while the old one keeps running. Deployment downtime went from about 27 minutes to 40 seconds.

// Results

MetricValue
Marketplace orders78,832 since 1 August 2025: Wildberries 57,882, Ozon 19,452, Yandex Market 1,498
Peak load15,523 orders in November 2025, a record 1,456 on 19 January 2026
Shipments built automatically16,265
Shipped₽32.1M of goods and ₽7.9M of fulfillment services
Balance top-ups3,683 for ₽34.1M from 102 clients
Automatic payouts and refunds772 for ₽727K
Supplier orders created automatically1,186 for ₽2.9M
AI generations for product cards3,034 since April 2026
Supplier settlementmedian 26.5 hours from shipment to payout

// Timeline, team, stack

Timeline
Development started on 9 June 2025; two months later, on 1 August 2025, the system went live on real orders. After that we developed it in stages, each one going straight into production.
Team
4 developers, 2,491 commits. We now support it: improvements, log-based incident analysis, keeping up with marketplace and bank API changes, 28 scheduled background jobs.
Stack
  • Django 5
  • Django REST Framework
  • Channels
  • Celery
  • Redis
  • PostgreSQL
  • React 19
  • TypeScript
  • Vite
  • Docker Compose
  • nginx
  • GitHub Actions

Similar challenge?

Selling on marketplaces while orders, stock and money live in different accounts? We'll review your process for free.

Review my process→