Built product · 2026

Kontor.

One place to handle what happens after a marketplace sale.

I designed and built this ERP for marketplace orders, stock, packing, shipping and books.

See the work
My role
Product, design, engineering, deployment
In use
One merchant · 3–4 marketplace stores
Shipping
2–4 integrations in the merchant's setup
Channel Orders / actual Kontor interfaceSynthetic development data

A real workflow

An order stops at packing.
What happens next?

Sample order #1036 is short one cup set at the packing table. Kontor keeps the reason visible, so nobody has to infer it from a status badge.

A / OwnerToday shows the hold, reason and release decision.
B / OperationsThe queue carries the cause, owner and next action.

Design decision Make the exception actionable in each person's own view. The two captures above show the same synthetic order.

Explore Kontor

Choose your starting point.

This sandbox uses a copy of my working local database. Pick a role, inspect its screen, then sign in to handle the same kind of work yourself.

Real product capture · synthetic records · click to enlarge

Owner / Channel Order

Can this order ship?

A country restriction appears on the order itself, with the reason and available decision next to the items.

In the demo

Open Channel Orders and inspect an order on hold.

The demo includes held, packed, shipped and invoiced orders from my local build. Shopify’s development store and DHL’s sandbox are connected; #1067 shows a completed shipping and invoice path. Company and buyer details are fictional. Screenshots are captures of the same product.

Under the UI

How an order moves through Kontor.

Three layers carry the work from an external event to a business record. They also make failures visible.

01 / Ingress

Marketplace and carrier adapters translate provider-specific events into Kontor's order and shipping workflows.

02 / Work

Queued jobs retry external calls. Idempotent processing avoids repeating an action when a request or event arrives again.

03 / Records

The order stays connected to items, parcels and ERPNext documents such as the invoice. Staff can trace what happened.

Python · Frappe / ERPNext · JavaScript · MariaDB · Redis · Docker

About

Hammad Bhutta.

I’m a software engineer in Germany. At SAP LeanIX I built enterprise SaaS features; at Distribusion I worked on travel-booking QA. Kontor is where I combine product decisions, UI, backend and deployment. I’m looking for product engineering roles.

Kontor / local development capture