FIELD NOTES / SUPPLY CHAIN & FULFILLMENT

Fulfillment.
Finally governed.

RouteStock turns marketplace order files into stock-aware warehouse decisions, carton-level shipment records, and warehouse-ready outputs—without leaving critical logic inside one person’s spreadsheet.

SUPPLY CHAIN CASE STUDY

RouteStock

Multi-warehouse routing.
Fulfillment execution.

Full-stack operational platform
RouteStock / Fulfillment operationsPRODUCT EXPERIENCE
RouteStock operations overview with batches, exceptions, and warehouse load
ONE OPERATIONAL VIEWEvery run has an outcome.

Processed orders, configuration exceptions, stock gaps, and warehouse load stay visible.

Follow the workflow ↗
Channel ordersValidate & normalizeRoute & commitWarehouse files
DOMAIN

Multi-warehouse fulfillment

WHAT WE BUILT

Routing + allocation engine

OUR ROLE

Product & full-stack engineering

01 / THE OPERATIONAL CHALLENGE

An order arrives.
Four decisions follow.

Which warehouse should ship it? Is stock truly available? How should it be packed? What file does the warehouse need?

In a multi-site network, every order line combines channel-specific data, ZIP territories, live availability, SKU conventions, packaging rules, and downstream formats. A spreadsheet macro can hide that complexity, but it cannot govern it.

RouteStock turns those decisions into explicit configuration, an explainable engine, and a daily workflow any authorized operator can run.

01

Routing was tribal knowledge

Territories, priorities, and stock-aware failover lived inside a macro and the person who understood it.

02

Available was not the same as on hand

Concurrent order runs could compete for the same units without a reservation made at commitment.

03

Physical execution was still manual

Carton splits and per-warehouse file formats created repetitive work after allocation was complete.

02 / INSIDE THE PRODUCT

From order file.
To warehouse-ready work.

Explore the supplied screens behind daily processing, inventory control, packaging configuration, and operational visibility.

RouteStock operations dashboard

The daily operation, not just the data.

Recent batches, exceptions, warehouse load, and stock attention sit together so operations can see what moved and what needs intervention.

RouteStock operations dashboard
THE FULFILLMENT CYCLE

ImportValidateNormalizeRouteReserveCartonizeExport

03 / AUTOMATION WITH OPERATIONAL GUARDRAILS

Automate the decision.
Explain the exception.

The engine commits work only when configuration and stock support it. Every uncommitted line carries a specific reason, and a processed batch stays reversible only until warehouse files leave the system.

Look under the hood ↘
01

Normalize the inbound order

Amazon TSV · Walmart XLSX/CSV · Manual template

ROUTABLE + AVAILABLE

Commit and cartonize

Choose the strongest stocked site, reserve inventory, and emit physical boxes.

CONFIG / STOCK GAP

Classify the exception

Name the missing packaging rule or unavailable stock—per order line.

02

Render for each warehouse

Template-shaped XLSX or CSV, one file per destination site.

03

Reverse only while safe

Undo releases commitments before export; after export, the interlock protects physical execution.

04 / THE TECHNOLOGY & THE REASON

Configurable rules.
Transactional guarantees.

The stack separates operator experience, API authorization, business logic, and governed data—so a new channel or output format can be added without changing the fulfillment engine.

OPERATOR EXPERIENCE

React + Redux Toolkit

Permission-aware workflows make processing state, configuration, exceptions, and site scope visible.

Why this combination?

Complex operational state stays predictable while long-running batches can report live progress.

SERVICE BOUNDARY

FastAPI + Pydantic

Typed request and response contracts sit in front of 13 documented routers and a separate service layer.

Why separate the service layer?

Routing and allocation rules remain testable business logic rather than behavior buried in endpoints.

GOVERNED DATA

PostgreSQL + SQLAlchemy

Network rules, inventory, orders, shipments, users, and audits share one transactional record.

Why a relational core?

Row locks prevent double-commitment, constraints protect history, and transactions keep a batch coherent.

FILES IN / FILES OUT

openpyxl + tolerant parsers

Channel exports and configuration workbooks normalize into one model; stored templates shape warehouse output.

Why template-driven output?

New downstream formats become configuration rather than changes to the allocation engine.

ACCESS & SCOPE

JWT + bcrypt + server-side RBAC

Role baselines, user overrides, and warehouse assignments are enforced on each relevant request.

Why enforce scope in the API?

Hiding an interface control is not a security boundary; refusing an unauthorized request is.

CHANGE CONTROL

Alembic + audit snapshots

Versioned migrations evolve the schema while before/after records support attributable reversal.

Why retain prior state?

A bad configuration edit or import can be restored without reconstructing values from memory.

RouteStock solution architecture from inbound files through decision engine to warehouse execution
Operational architectureChannels, decision logic, warehouse execution, governed data, and the safe reversal boundary.
RouteStock layered technical architecture
Technical architectureReact client, FastAPI service layer, PostgreSQL data model, file adapters, and integrity guarantees.

Architecture visuals reproduce the supplied project documentation. Demo screen values illustrate product behavior and are not presented as measured client outcomes.

Explore the complete documented stack

The documented implementation covers the web client, API, business services, relational data, file handling, identity, and deployment.

Client
React 18 · Vite 6 · Redux Toolkit · guarded routes · batch progress polling
API & contracts
FastAPI · Uvicorn · Pydantic 2 · JSON + multipart file exchange
Business services
ingestion · ZIP routing · stock commitment · bulk conversion · carton splitting · output rendering · reversal
Data
PostgreSQL 15 · SQLAlchemy 2.0 · Alembic · row locks · decimal quantities · soft deletion
Files & identity
openpyxl · XLSX/CSV/TSV parsers · stored templates · JWT · bcrypt · RBAC
Platform
Docker Compose · composed database/API/web services · health and diagnostics endpoints

Technology names identify the documented implementation, not partnerships or endorsements.

A CONVERSATION ABOUT YOUR FULFILLMENT WORKFLOW

Which routing decision
still lives in a spreadsheet?

Bring one order-routing, inventory-allocation, or warehouse-output workflow. In 20 minutes, we’ll map the decision rules, operational risks, and a practical automation boundary.

20 minutes · Your operation, constraints, and next step

20 minutes · Your operation, constraints, and next step

CONTACT PREVIEW

Contact destination

No message has been sent. The destination will be connected before outreach.