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.
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 sell | How ERPNext models it |
|---|---|
| Each collection (say, a signature 3-seater) offered in many fabrics and colours | One 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 time | Sales Order → Work Order → job cards through the floor, with the promise date tracked from order to dispatch |
| In-stock express range & seasonal factory sales | Make-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 store | A 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 guarantees | Serial 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
- Sales Order — showroom or online. The line carries the exact variant, the deposit, and the promised delivery date.
- 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 (raisesMaterial Requestsfor fabric, foam, timber against current stock). This is MRP without the acronym. - Work Order per sofa — materials transfer from stores into work-in-progress, so stock and finance both know what's on the floor.
- 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. - Quality inspection — templated checks at final QC (and incoming fabric if wanted); a sofa can't close to finished goods without passing.
- Finished goods → dispatch —
Delivery Noteagainst 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 Orderissues 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.
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.
(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
What distinguishes the channels inside ERPNext
| Lever | How it's used per channel |
|---|---|
Selling Price List | Retail 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 Group | B2C 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 series | Every 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. |
Warehouse | Stocked 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 & currency | Tax 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.
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:
| SysPro | ERPNext | Worth knowing |
|---|---|---|
| Stock codes + configuration options | Item templates + variants | Variants are first-class: generated from attributes, each with its own BOM, cost and stock history |
| BOM / structures & routings | BOM with operations & Routing | One document holds materials and operations; versioned, with cost roll-up built in |
| Work in Progress (WIP) jobs | Work Order + WIP warehouse | Material issues and labour bookings post to stock and GL as they happen |
| Requirements planning | Production Plan | Sales-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 core | No third-party SFDC layer or per-seat module licensing — it's part of the product |
| Per-module, per-user licensing | Open 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.
| Phase | Weeks | What happens | Your side |
|---|---|---|---|
| Discovery & design | 1–2 | Walk the factory and a showroom; map order-to-dispatch as it really runs; agree chart of accounts, warehouse structure, variant attributes, costing policy | Ops lead, factory manager, bookkeeper — a few workshop days |
| Core setup | 2–4 | Company, ledger, taxes (VAT), warehouses per showroom, users & roles; customers/suppliers loaded | Validate opening lists exported from the old system |
| Catalogue & BOMs | 3–7 | Item 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 daily | Product knowledge: fabric consumptions, build times, frame specs |
| Factory pilot | 6–9 | Run 10–20 real orders end-to-end (order → plan → job cards → QC → dispatch) alongside the old system; tune routings and screens with the floor | Floor supervisors run the pilot orders |
| Data migration | 8–12 | Master data finalised; opening stock (counted, not copied), open orders, debtors/creditors, GL opening balances per the playbook's data chapter | A stock count near cutover; sign-off on balances |
| Cutover & hypercare | 12–16 | Month-end cutover, the old system goes read-only; on-site support through the first weeks and first month-end close | All hands for cutover week |
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.
Sources
ERPNext Manufacturing manual — BOMs, Work Orders, Job Cards, Production Plan · ERPNext for furniture manufacturing · Frappe success stories · SysPro → ERPNext migration playbook (this site)