ERPNext Africa
ERPNext Africa · industry briefing

ERPNext Manufacturing for sofa & upholstered-furniture makers

How ERPNext's Manufacturing module runs a factory-direct, made-to-order furniture business — the order-to-floor flow, what changes coming from a legacy ERP such as SysPro, the realistic effort to configure it, and who else runs on it. Furniture is the worked example; the same pattern fits bedding, joinery, curated home goods and other made-to-order light manufacturers.

ERPNext Africa industry briefing · 2026 · companion to the SysPro → ERPNext migration playbook

01 · Why the factory-direct sofa model fits ERPNext

The typical shape of this business — a factory-direct maker promising a fixed lead time (ships within 20 working days is the common standard), selling through a handful of showrooms and online, with tiered collections offered in a wide spread of fabrics and configurations, plus a smaller in-stock express range — is exactly the pattern ERPNext's Manufacturing module is built around: make-to-order as the spine, make-to-stock for the fast lines, both reading from one catalogue, one stock ledger and one set of books.

How these businesses sellHow ERPNext models it
Each collection (say, a signature 3-seater) offered in many fabrics and coloursOne Item template per model; each fabric/colour/leg combination is an Item Variant generated from attributes — the catalogue stays manageable while every sellable combination is a real item with its own cost and history
Made to order against a promised lead timeSales OrderWork Order → job cards through the floor, with the promise date tracked from order to dispatch
In-stock express range & seasonal factory salesMake-to-stock flow: reorder levels on finished goods, produced ahead of demand via Production Plan — the two flows coexist per order line (see Make-to-order & curated brands)
Multiple showrooms + online storeA warehouse per showroom, POS or showroom Sales Orders, one company ledger; e-commerce orders land as Sales Orders automatically
Long frame warranties (5–10 years) and stitching guaranteesSerial No per built sofa with warranty period; Warranty Claim tracks any repair with the original build record — which frame, which fabric batch, who built it, when

02 · The Manufacturing module, in sofa terms

The catalogue: templates, variants and BOMs

Each model is an item template with attributes — size/configuration, fabric, colour, leg finish. A customer's choice resolves to one variant. Behind each variant sits a multi-level Bill of Materials: the sofa BOM contains the frame (itself a BOM of timber, webbing, fasteners), the cushion set (foam, fibre, inners), and the cover (fabric by the metre, thread, zips), plus the labour operations. Common structure lives once at template level; only what varies (fabric, metres) differs per variant, so a new colourway is minutes of work, not a re-build.

BOMs carry costing: material at valuation rate plus operation cost from workstation hour rates. You see the true cost of a signature-line sofa in premium fabric versus an entry-line model in standard, before you price it — and actual cost per built unit after.

Order to floor: the lead-time promise, systematised

  1. Sales Order — showroom or online. The line carries the exact variant, the deposit, and the promised delivery date.
  2. Production Plan — pulls open Sales Orders, explodes the BOMs, and answers two questions at once: what to build (raises Work Orders) and what to buy (raises Material Requests for fabric, foam, timber against current stock). This is MRP without the acronym.
  3. Work Order per sofa — materials transfer from stores into work-in-progress, so stock and finance both know what's on the floor.
  4. Job Cards per operation — frame assembly → cutting → sewing → upholstery → final QC, each at a Workstation. The floor logs start/finish on a screen or scanner; a single dashboard shows every order's station, operator and status — where every customer's sofa is, live, against its promise date.
  5. Quality inspection — templated checks at final QC (and incoming fabric if wanted); a sofa can't close to finished goods without passing.
  6. Finished goods → dispatchDelivery Note against the order, balance invoice, serial number assigned for the warranty record.

Materials: fabric is the hard part, so treat it properly

  • Fabric by batch/roll — batch tracking per roll means dye-lot traceability (both covers of a sectional cut from the same lot) and honest shrinkage numbers per supplier.
  • Reorder levels on the long-lead inputs — foam grades, frame timber, high-runner fabrics replenish automatically; slow fabrics are bought against the order via the Production Plan.
  • Projected quantity, not gut feel — every purchase decision sees stock on hand, what's already committed to open Work Orders, and what's on order from suppliers.
  • Subcontracting — if any step is outsourced (e.g. frames from a partner shop), a Subcontracting Order issues your materials to them and receives built components back, costed correctly.

Capacity: protecting the promise date

Workstations declare capacity and working hours; the production planning report shows the load each order book puts on cutting, sewing and upholstery. When a seasonal sale spikes demand, you see the pinch before promise dates slip — and decide to add a shift, resequence, or quote a longer lead time on the affected lines.

What the floor actually getsNo spreadsheets shadowing the factory. The cutting list is generated from real orders; the sewing queue is the job-card queue; the question “where is this customer's sectional?” is answered by looking at the screen, not walking the floor.

03 · Many sales channels, one manufacturing core

A maker often runs more than one storefront — say a retail Shopify store for the main brand and a second Shopify store (an outlet, a second brand, or another market), plus a B2B portal for trade buyers, plus physical showrooms. The architecture rule that keeps this sane: channels are fronts; ERPNext is the core. Every channel does exactly two things — it sends orders in, and it reads availability and status back. Catalogue, price, stock, production and the ledger live in ERPNext only.

Shopify — Store 1Retail brand storefrontB2C
Shopify — Store 2Outlet · second brand · exportB2C
B2B trade portalFrappe Webshop or custom portalB2B
ShowroomsPOS / showroom sales ordersIn person
↓ ↓ ↓ ↓orders in · availability & status out
ERPNext core — one truth
One catalogue
(templates + variants)
Price List per channel Customer Group per channel One stock ledger
(warehouse per channel/showroom)
One Sales Order stream,
tagged by source
One general ledger
consolidated demand
Production Planexplodes BOMs across all channels' orders
Factory floorWork Orders → Job Cards → QC
DispatchDelivery Note & invoice back to the originating channel

What distinguishes the channels inside ERPNext

LeverHow it's used per channel
Selling Price ListRetail store at RRP; outlet store at outlet pricing; B2B portal at trade prices — same items, different lists. A price change is one edit per list, not a catalogue rebuild.
Customer / Customer GroupB2C orders map to guest/consumer customers; each trade buyer is a real Customer with credit limit and payment terms. Margin and receivables report cleanly per group.
Order source / naming seriesEvery Sales Order carries its channel, so "what did Store 2 sell last month" and "which channel's demand is loading the sewing line" are ordinary reports.
WarehouseStocked lines can be fenced per channel (or shared from one finished-goods pool); made-to-order lines don't hold stock at all, so channels can't fight over them.
Taxes & currencyTax templates and currency per channel/company — relevant when store 2 serves another market.

Connecting two Shopify stores — the honest version

Frappe's official Shopify connector is built as a single-store configuration per ERPNext site (multi-store support is an open feature request). Two stores is a well-trodden bespoke integration build — real work to architect, scope and cost, not something the product does out of the box:

  • Connector + integration layer — the official connector runs the primary store; the second store connects through Shopify webhooks into ERPNext's REST API (directly or via a small middleware such as n8n). Each store gets its own price list, customer defaults and order series. This is the pattern we recommend and have run in production.
  • Multi-store connector — community/commercial connectors support multiple stores natively; worth evaluating when both stores need deep two-way sync (inventory push, fulfilment status) rather than order capture.
  • What never changes — whichever wiring you choose, ERPNext's finished-goods number is the availability both stores show, and both stores' orders land in the same Production Plan. The wiring is replaceable; the core isn't.

The B2B portal channel

  • Frappe Webshop (built in) — trade buyers log in as portal users and see their price list, place orders against their credit limit and terms, and track order and invoice status. No extra platform: it reads the same catalogue and writes the same Sales Orders.
  • Custom portal on the API — when the trade experience needs to be fully branded or workflow-heavy (quotes, approvals, project orders), a lightweight portal on ERPNext's REST API does it — we run this pattern for client portals today.
  • B2B is where made-to-order shines — a hospitality or property order for 40 units enters as one Sales Order, and the Production Plan immediately shows what that does to fabric purchasing and the sewing line's capacity, next to the retail flow.
Why the core matters for the factoryWith every channel writing to one Sales Order stream, production planning consolidates demand it can see — the floor never learns about a channel's orders by surprise. And because promise dates live on the order, each channel can show its own honest lead time while the factory works from a single sequenced queue. The operating detail — sync ownership, returns, reconciliation — is in Shopify → ERPNext (setup) and Operating with Shopify.

04 · Coming from a legacy ERP (the SysPro example)

The concepts map cleanly — the full functional mapping, data migration approach and cutover plan are in the SysPro → ERPNext playbook (and see the Sage 300, Sage X3 and Dynamics playbooks for those routes). The short version for the factory:

SysProERPNextWorth knowing
Stock codes + configuration optionsItem templates + variantsVariants are first-class: generated from attributes, each with its own BOM, cost and stock history
BOM / structures & routingsBOM with operations & RoutingOne document holds materials and operations; versioned, with cost roll-up built in
Work in Progress (WIP) jobsWork Order + WIP warehouseMaterial issues and labour bookings post to stock and GL as they happen
Requirements planningProduction PlanSales-order-driven MRP suited to make-to-order; raises purchases and work orders in one pass
Shop-floor data collection (add-on)Job Cards, in the coreNo third-party SFDC layer or per-seat module licensing — it's part of the product
Per-module, per-user licensingOpen source (GPL)Cost scales with hosting and support, not with adding showroom users or floor terminals

05 · Effort to configure and set up

For a single factory with a handful of showrooms, one legal entity, and a typical collection catalogue, this is a 12–16 week implementation to full cutover, run as overlapping workstreams — not a big-bang. The factory pilot proves the model on real orders by roughly week 8.

PhaseWeeksWhat happensYour side
Discovery & design1–2Walk the factory and a showroom; map order-to-dispatch as it really runs; agree chart of accounts, warehouse structure, variant attributes, costing policyOps lead, factory manager, bookkeeper — a few workshop days
Core setup2–4Company, ledger, taxes (VAT), warehouses per showroom, users & roles; customers/suppliers loadedValidate opening lists exported from the old system
Catalogue & BOMs3–7Item templates and variants for the collections; multi-level BOMs with operations and workstation rates. The single biggest effort block — and the one that pays back dailyProduct knowledge: fabric consumptions, build times, frame specs
Factory pilot6–9Run 10–20 real orders end-to-end (order → plan → job cards → QC → dispatch) alongside the old system; tune routings and screens with the floorFloor supervisors run the pilot orders
Data migration8–12Master data finalised; opening stock (counted, not copied), open orders, debtors/creditors, GL opening balances per the playbook's data chapterA stock count near cutover; sign-off on balances
Cutover & hypercare12–16Month-end cutover, the old system goes read-only; on-site support through the first weeks and first month-end closeAll hands for cutover week
What moves the numberThe estimate holds if scope holds: one company, current collections only (archive dead SKUs in the old system — don't migrate them), standard costing policy, and showroom POS kept simple at first. E-commerce integration (e.g. a storefront sync per the Shopify playbook) and HR/payroll are natural phase-2 additions, not cutover blockers.
Effort ≠ licence spendERPNext itself is open source. The implementation above is services and your team's time; run costs are hosting and a support retainer. Adding another showroom, or twenty floor terminals, doesn't change a licence bill.

06 · Reference clients on ERPNext

Furniture & make-to-order manufacturing

  • In House Furniture (Middle East) — furniture manufacturer; digital transformation of manufacturing, inventory and operations on ERPNext. Published in Frappe's success stories.
  • Meru Greens Horticulture (Kenya) — make-to-order production with multi-level BOMs, 109 users across 7 modules. The closest operational analogue in our network: order-driven manufacturing with real BOM depth.
  • A South African designer-furniture manufacturer — live in production on ERPNext with a Shopify storefront, running the exact make-to-order pattern described above (deposits, work orders, curated stocked lines). Named reference and system walkthrough available on request.

Regional scale references

  • Bigger Steel (Kenya) — steel manufacturing & distribution: 10+ warehouses, 500+ customers, 100 staff, migrated off QuickBooks/Excel.
  • CIIRA Agrovet (Kenya) — 4 branches, 9,000+ SKUs, 10,000+ walk-in customers — the multi-branch retail pattern of the showroom side.
  • Live reference implementations — a viewable demonstration site and a completed private migration; walkthroughs on request. Access on request.

Globally, Frappe publishes manufacturing stories across discrete and process industries — from DL Valve's 90,000 standardised SKUs to Avanti Overseas running four factories on one instance — and ERPNext is used by tens of thousands of companies as the leading open-source ERP.

Suggested next stepA half-day working session: we model two of your real products — one entry line, one signature line, with genuine fabric consumptions — as live BOMs in a demo instance, and run an order through job cards to dispatch. Seeing your own sofa move through the system beats any slide deck.

Sources

ERPNext Manufacturing manual — BOMs, Work Orders, Job Cards, Production Plan · ERPNext for furniture manufacturing · Frappe success stories · SysPro → ERPNext migration playbook (this site)