← Lab
Showcase · Made to order on ERPNext

Order a print. ERPNext finds the maker.

Benchy is a working demo of a make-to-order network. A shopper buys a 3D print in a Vendure shop. ERPNext routes the job to a maker whose printer can make it, and the maker prints and ships it. The purchase order, invoice and maker payout then follow by themselves. It covers the whole path, shop to ERP to workshop and back.

The Benchy shop home page: Order a print. A maker near you prints it.
benchy.2nth.app · demo shop, test card only, no prints are sold
12models · 27 colours
5printers · 4 makers
7steps, order to payout
R0cloud spend
01 · The problem

Made to order breaks the usual shop.

A normal online shop sells what's on the shelf. Many businesses don't work that way. Print farms, signage, furniture, apparel and engineering parts make each order after it's paid, often through outside workshops. The hard part is everything after checkout: who makes it, at what cost, when it ships, and who gets paid.

That usually means spreadsheets and WhatsApp between the shop, the workshop and the books. Benchy puts all of it in the ERP, and keeps the shop thin.

02 · How an order flows

Shop to ERP to maker, and back.

The shop takes the order and the payment. Everything after that runs in ERPNext.

Vendure shop

The shopper orders

  1. Picks a model and a colour. It shows "made to order" and how many printers can make it today.
  2. Pays with a test card.
  3. The paid order goes to ERPNext as a Sales Order and Payment Entry, queued and retried if the ERP is down.
ERPNext

The job is routed

  1. One Print Job per printed unit.
  2. Every two minutes a router offers each job to the best three printers: right model, colour loaded, least busy, same province, most reliable.
The maker

It's printed and shipped

  1. Accepts on their phone. First to accept gets it.
  2. Prints from Bambu Handy with the model's official print profile.
  3. Adds a photo and the courier tracking number.
ERPNext, automatically

The books follow

  1. A drop-ship Purchase Order to the maker at the payout rate. It's cancelled and the job re-routed if a print fails.
  2. The Sales Invoice posts once every print has shipped.
  3. A self-billed payout invoice for each maker. Tracking flows back to the shopper's order page.
03 · What's in it

Built the way I'd build it for a client.

System of record

ERPNext owns the business

Catalogue, prices, the maker payout price list, customers, orders, print jobs, purchase orders, invoices and payouts. The shop reads prices and availability from ERPNext and never edits them.

Thin shop

Vendure storefront

Cart, checkout and order tracking. The shopper sees each print: who is printing it, how far it is, and the tracking number once it ships.

Maker and ops pages

Phones, not training

Makers sign in with an emailed PIN, register printers and the filament loaded, and accept jobs. Ops pages show the whole network, late and failed jobs, and the payout drafts.

No custom app

Config as code

DocTypes, server scripts and pages are created by scripts kept in git. There's no custom Frappe app and no core edits, so the site stays portable between hosts and upgrades.

Licence-aware

Only sell what you may

I checked the licence on all 47 of Bambu Lab's MakerWorld models, and only one allows selling prints. Each product records its licence and links to the designer. No model file ever passes through Benchy.

Simulator

A network you can watch

Three simulated makers accept, print at 60× speed, fail now and then, and ship. They go through the same maker API as a real printer, so routing, competition and failed prints show up in a ten-minute walkthrough.

04 · Where it runs

A Mac mini and a tunnel.

ERPNext v16 and the Vendure shop run in containers on a Mac mini. They're published through a Cloudflare Tunnel, with sign-in through Cloudflare Access. That's a deliberate point: a make-to-order business can start on hardware it owns, and move to Frappe Cloud or a hosted VM later without changing the build.

  • Shop: Vendure 3 storefront and plugin, at benchy.2nth.app
  • ERP: ERPNext v16 with its own MariaDB and Redis, at benchy-erp.2nth.app (sign-in required)
  • Sign-in: emailed PIN through Cloudflare Access. Password login is off
  • Printers: Bambu Handy for every maker. Live telemetry from the printer is an optional, read-only bridge on the maker's own network
  • Checks: 11 automated checks confirm the whole chain still works
ERPNext v16VendureBambu LabMakerWorldCloudflare TunnelCloudflare AccessDocker
Your version

Swap printers for your workshop.

The pattern isn't about 3D printing. It fits any business where a paid order becomes a job for an in-house team or outside makers, and the ERP keeps cost, delivery and payment straight. The playbooks behind it are public on ERPNext Africa.