All Services

Custom Order Management System (OMS)

One system of record from order to installation to invoice

Bespoke order management systems for businesses whose orders don't fit a shopping cart — configured products, staged payments, installation dates, contracts and certificates. I build the operational backbone that replaces the spreadsheet everyone is quietly afraid of losing.

Order #2041

Acme Trade Ltd

In Progress

Quoted

Quote-2041.pdf

Deposit Paid

Stock Allocated

Delivered

Installed

Invoiced

0/6 documents generatedAudit trail
One

System of Record

Zero

Re-keyed Order Data

Full

Audit Trail per Order

Common Challenges I Solve

High-growth companies often face these technical hurdles. I provide the architectural oversight to navigate them safely.

The Spreadsheet Is the System

The real order book lives in one shared file that three people edit, nobody can audit, and everybody is quietly afraid of losing.

Documents Are Made by Hand

Quotes, contracts, delivery notes, handover acts and certificates are assembled in Word from the last similar one — which means version drift and errors nobody catches until a dispute.

Nobody Can Answer "Where Is My Order?"

The answer lives across a spreadsheet, an inbox, a warehouse WhatsApp group and the installation coordinator's memory — so every customer query costs three internal calls.

Built in Slices, Not a Big Bang

The first useful piece goes live long before the whole platform is finished — and you can stop at any module boundary with real value delivered.

The "One Real Order" Package

Discovery & Data Model

I trace one real order end to end — every hand-off, every document, every place data gets re-keyed — and turn it into an agreed data model and build plan.

Best for

Businesses whose order book lives in a spreadsheet

  • One order traced from enquiry to final invoice
  • Status model written down — the rules everyone "just knows"
  • Data model agreed before any screens exist
  • OMS-vs-ERP assessment with honest costs of each
  • Costed build plan, sliced by module

Outcome

A plan you could hand to any developer — plus the immediate fixes that don't need software at all.

One week · from £3,500
Map Your Order Flow
Most Popular

The "Kill the Spreadsheet" Package

Order Desk MVP

Order intake, your real status model, and automated document generation — with your spreadsheet history migrated so the system launches with the past intact.

Best for

Teams losing hours to re-keying and hand-made documents

  • Order lifecycle with enforced status rules
  • Quotes, confirmations, delivery notes and acts generated from order data
  • Spreadsheet history migrated, cleaned and deduplicated
  • Full audit trail — who changed what, when
  • Parallel-run period before the hard switch

Outcome

"Where is my order?" gets answered from one screen — and documents stop carrying last customer's prices.

8–14 weeks · £30,000–£60,000
Scope the MVP

The "System of Record" Package

Full Commercial Platform

Stock allocation, dealer portal, pricing approvals and two-way accounting sync — the OMS becomes the operational spine, integrated with what you already run.

Best for

Distributors and manufacturers with dealer networks

  • Stock reservations and multi-warehouse visibility
  • Dealer and customer portal with self-serve tracking
  • Price lists, discount limits and approval workflows
  • Two-way sync with Xero, QuickBooks, Sage or your ERP
  • Configured and made-to-order product support

Outcome

Margin visible at the point of sale, dealers serving themselves, and one commercial truth across every team.

6–12 months · £80,000–£160,000
Discuss the Platform
Swipe to explore

With 18+ years in the industry, I've seen stacks rise and fall. I don't follow hype; I follow what works for your business.

What's Included

Every project is different, but here's what you can typically expect.

Order Lifecycle & Status Model

Your actual stages — quoted, deposit taken, allocated, manufactured, delivered, installed, signed off, invoiced — with the rules about what can move where, enforced rather than remembered.

Automated Document Generation

Quotes, order confirmations, contracts, delivery notes, handover acts and certificates generated from order data. One source of truth, correct every time, in your own templates.

Stock Allocation & Reservations

Stock reserved against an order rather than counted twice. Multi-warehouse visibility, incoming shipments, and honest lead times you can quote from with confidence.

Configured & Made-to-Order Products

Products with options, dimensions, variants and dependent pricing rules — the orders that never fit a standard e-commerce cart, modelled properly.

Pricing, Discounts & Approvals

Price lists per customer tier or dealer, discount limits per salesperson, and approval workflows above threshold. Margin becomes visible at the point the deal is made, not at month end.

Dealer & Customer Portal

Let dealers place and track their own orders, and let end customers see status without phoning. Every self-served status check is a call your team doesn't take.

Accounting & ERP Integration

Two-way sync with Xero, QuickBooks, Sage or an existing ERP. Invoices raise from verified order data instead of someone re-typing it into a second system.

Full Audit Trail

Every price change, status move, document issued and approval given is recorded with who and when. Disputes stop being an argument about memory.

📦

Everything an Order Should Do By Itself

From quote to reconciled invoice — without anyone re-typing anything

Quote to Contract

Configured products priced and signed without Word

⚙️
Configure
💷
Price
📄
Quote PDF
✍️
e-Sign

Stale prices

Never

Versions

Tracked

Turnaround

Minutes

Dealer Portal

Dealers place and track orders without phoning you

🏪
Dealer
🛒
Order
📦
Stock
Confirmed

Calls

Fewer

Pricing

Per dealer

Status

Self-serve

Document Autopilot

Every document generated from one order record

📋
Order
📜
Contract
🚚
Delivery
🤝
Handover

Assembly

Automatic

Wrong clause

Never

Every copy

Identical

Staged Payments

Deposit, balance and retention tracked per order

💷
Deposit
🚚
Delivery
🧾
Balance
🔒
Retention

Due dates

Visible

Missed

None

Chasing

Automated

Trade Credit Accounts

Credit limits and terms enforced at order time

🏢
Account
💳
Limit
🛒
Order
📆
Terms

Limits

Enforced

Overdue

Flagged

Exposure

Visible

Back Orders

Out-of-stock lines fulfilled the moment goods land

📦
No Stock
Back Order
🚢
ETA
Auto-fulfil

ETAs

Honest

Fulfilment

Automatic

Lost sales

Fewer

Multi-Channel Intake

Web, phone and showroom land in one order book

🌐
Web
📞
Phone
🏬
Showroom
📚
One Book

Channels

Merged

Duplicates

None

Handling

Uniform

Returns & RMA

Inspections, credit notes and restock in one flow

↩️
Return
🔍
Inspect
🧾
Credit Note
📦
Restock

Reasons

Logged

Credits

Accurate

Stock

Recovered

Price List Engine

Cost changes ripple through every tier correctly

💷
Cost
📐
Margin Rules
🏷️
Tier Price
📤
Publish

Updates

One click

Margins

Protected

Old prices

Retired

Contract Renewals

Expiry dates chase themselves, not your team

📜
Contract
Expiry Alert
📄
Renewal
✍️
Signed

Expiries

Flagged

Renewals

On time

Revenue

Retained

Quote to Contract

Configured products priced and signed without Word

⚙️
Configure
💷
Price
📄
Quote PDF
✍️
e-Sign

Stale prices

Never

Versions

Tracked

Turnaround

Minutes

Dealer Portal

Dealers place and track orders without phoning you

🏪
Dealer
🛒
Order
📦
Stock
Confirmed

Calls

Fewer

Pricing

Per dealer

Status

Self-serve

Document Autopilot

Every document generated from one order record

📋
Order
📜
Contract
🚚
Delivery
🤝
Handover

Assembly

Automatic

Wrong clause

Never

Every copy

Identical

Staged Payments

Deposit, balance and retention tracked per order

💷
Deposit
🚚
Delivery
🧾
Balance
🔒
Retention

Due dates

Visible

Missed

None

Chasing

Automated

Trade Credit Accounts

Credit limits and terms enforced at order time

🏢
Account
💳
Limit
🛒
Order
📆
Terms

Limits

Enforced

Overdue

Flagged

Exposure

Visible

Back Orders

Out-of-stock lines fulfilled the moment goods land

📦
No Stock
Back Order
🚢
ETA
Auto-fulfil

ETAs

Honest

Fulfilment

Automatic

Lost sales

Fewer

Multi-Channel Intake

Web, phone and showroom land in one order book

🌐
Web
📞
Phone
🏬
Showroom
📚
One Book

Channels

Merged

Duplicates

None

Handling

Uniform

Returns & RMA

Inspections, credit notes and restock in one flow

↩️
Return
🔍
Inspect
🧾
Credit Note
📦
Restock

Reasons

Logged

Credits

Accurate

Stock

Recovered

Price List Engine

Cost changes ripple through every tier correctly

💷
Cost
📐
Margin Rules
🏷️
Tier Price
📤
Publish

Updates

One click

Margins

Protected

Old prices

Retired

Contract Renewals

Expiry dates chase themselves, not your team

📜
Contract
Expiry Alert
📄
Renewal
✍️
Signed

Expiries

Flagged

Renewals

On time

Revenue

Retained

Quote to Contract

Configured products priced and signed without Word

⚙️
Configure
💷
Price
📄
Quote PDF
✍️
e-Sign

Stale prices

Never

Versions

Tracked

Turnaround

Minutes

Dealer Portal

Dealers place and track orders without phoning you

🏪
Dealer
🛒
Order
📦
Stock
Confirmed

Calls

Fewer

Pricing

Per dealer

Status

Self-serve

Document Autopilot

Every document generated from one order record

📋
Order
📜
Contract
🚚
Delivery
🤝
Handover

Assembly

Automatic

Wrong clause

Never

Every copy

Identical

Staged Payments

Deposit, balance and retention tracked per order

💷
Deposit
🚚
Delivery
🧾
Balance
🔒
Retention

Due dates

Visible

Missed

None

Chasing

Automated

Trade Credit Accounts

Credit limits and terms enforced at order time

🏢
Account
💳
Limit
🛒
Order
📆
Terms

Limits

Enforced

Overdue

Flagged

Exposure

Visible

Back Orders

Out-of-stock lines fulfilled the moment goods land

📦
No Stock
Back Order
🚢
ETA
Auto-fulfil

ETAs

Honest

Fulfilment

Automatic

Lost sales

Fewer

Multi-Channel Intake

Web, phone and showroom land in one order book

🌐
Web
📞
Phone
🏬
Showroom
📚
One Book

Channels

Merged

Duplicates

None

Handling

Uniform

Returns & RMA

Inspections, credit notes and restock in one flow

↩️
Return
🔍
Inspect
🧾
Credit Note
📦
Restock

Reasons

Logged

Credits

Accurate

Stock

Recovered

Price List Engine

Cost changes ripple through every tier correctly

💷
Cost
📐
Margin Rules
🏷️
Tier Price
📤
Publish

Updates

One click

Margins

Protected

Old prices

Retired

Contract Renewals

Expiry dates chase themselves, not your team

📜
Contract
Expiry Alert
📄
Renewal
✍️
Signed

Expiries

Flagged

Renewals

On time

Revenue

Retained

Stock Allocation

Reserved against orders, never counted twice

📋
Order
🔒
Reserve
📦
Pick
🚚
Dispatch

Double-sold

Never

Warehouses

All visible

Lead times

Honest

Accounting Sync

Verified completions become invoices in Xero

Complete
🔄
Sync
🧾
Invoice
📗
Reconciled

Re-typing

Zero

Two-way

Synced

Month-end

Calmer

Made-to-Order Spec

The order is the production spec — no misreads

⚙️
Configure
📄
Spec Sheet
🏭
Factory
🔍
QC

Remakes

Fewer

Spec

One source

Ambiguity

Zero

"Where Is My Order?"

Answered by a portal, not three internal calls

👤
Customer
🌐
Portal
📊
Status
😌
Answered

Internal calls

Zero

Status

Live

Trust

Earned

Supplier POs

Low stock raises the purchase order itself

📉
Low Stock
📥
PO
🚚
Goods In
📗
Reconciled

Reorders

Automatic

Stock-outs

Rarer

Goods-in

Matched

Delivery Scheduling

Routes, time slots and proof of delivery

📋
Orders
🗺️
Routes
Slots
✍️
POD

Slots

Kept

POD

Signed

Disputes

Closed fast

Serial Tracking

Every unit traced from goods-in to warranty

📥
Goods In
🏷️
Serial
💷
Sold
🛡️
Warranty

Units

Traced

Recalls

Scoped fast

Claims

Verified

Margin Dashboard

Profit per order visible before month end

📋
Orders
💷
Costs
📊
Margin
🔔
Alerts

Margin

Per order

Leaks

Spotted

Month-end

No surprises

Part Deliveries

Split shipments without losing the balance

📋
Order
✂️
Split
🚚
Ship Part
📦
Balance

Splits

Tracked

Balances

Never lost

Invoicing

Per shipment

Quote Follow-Ups

No quote dies in someone's sent folder

📄
Quote
🔕
No Reply
📨
Nudge
🏁
Won/Lost

Follow-ups

Automatic

Pipeline

Visible

Forgotten

None

Stock Allocation

Reserved against orders, never counted twice

📋
Order
🔒
Reserve
📦
Pick
🚚
Dispatch

Double-sold

Never

Warehouses

All visible

Lead times

Honest

Accounting Sync

Verified completions become invoices in Xero

Complete
🔄
Sync
🧾
Invoice
📗
Reconciled

Re-typing

Zero

Two-way

Synced

Month-end

Calmer

Made-to-Order Spec

The order is the production spec — no misreads

⚙️
Configure
📄
Spec Sheet
🏭
Factory
🔍
QC

Remakes

Fewer

Spec

One source

Ambiguity

Zero

"Where Is My Order?"

Answered by a portal, not three internal calls

👤
Customer
🌐
Portal
📊
Status
😌
Answered

Internal calls

Zero

Status

Live

Trust

Earned

Supplier POs

Low stock raises the purchase order itself

📉
Low Stock
📥
PO
🚚
Goods In
📗
Reconciled

Reorders

Automatic

Stock-outs

Rarer

Goods-in

Matched

Delivery Scheduling

Routes, time slots and proof of delivery

📋
Orders
🗺️
Routes
Slots
✍️
POD

Slots

Kept

POD

Signed

Disputes

Closed fast

Serial Tracking

Every unit traced from goods-in to warranty

📥
Goods In
🏷️
Serial
💷
Sold
🛡️
Warranty

Units

Traced

Recalls

Scoped fast

Claims

Verified

Margin Dashboard

Profit per order visible before month end

📋
Orders
💷
Costs
📊
Margin
🔔
Alerts

Margin

Per order

Leaks

Spotted

Month-end

No surprises

Part Deliveries

Split shipments without losing the balance

📋
Order
✂️
Split
🚚
Ship Part
📦
Balance

Splits

Tracked

Balances

Never lost

Invoicing

Per shipment

Quote Follow-Ups

No quote dies in someone's sent folder

📄
Quote
🔕
No Reply
📨
Nudge
🏁
Won/Lost

Follow-ups

Automatic

Pipeline

Visible

Forgotten

None

Stock Allocation

Reserved against orders, never counted twice

📋
Order
🔒
Reserve
📦
Pick
🚚
Dispatch

Double-sold

Never

Warehouses

All visible

Lead times

Honest

Accounting Sync

Verified completions become invoices in Xero

Complete
🔄
Sync
🧾
Invoice
📗
Reconciled

Re-typing

Zero

Two-way

Synced

Month-end

Calmer

Made-to-Order Spec

The order is the production spec — no misreads

⚙️
Configure
📄
Spec Sheet
🏭
Factory
🔍
QC

Remakes

Fewer

Spec

One source

Ambiguity

Zero

"Where Is My Order?"

Answered by a portal, not three internal calls

👤
Customer
🌐
Portal
📊
Status
😌
Answered

Internal calls

Zero

Status

Live

Trust

Earned

Supplier POs

Low stock raises the purchase order itself

📉
Low Stock
📥
PO
🚚
Goods In
📗
Reconciled

Reorders

Automatic

Stock-outs

Rarer

Goods-in

Matched

Delivery Scheduling

Routes, time slots and proof of delivery

📋
Orders
🗺️
Routes
Slots
✍️
POD

Slots

Kept

POD

Signed

Disputes

Closed fast

Serial Tracking

Every unit traced from goods-in to warranty

📥
Goods In
🏷️
Serial
💷
Sold
🛡️
Warranty

Units

Traced

Recalls

Scoped fast

Claims

Verified

Margin Dashboard

Profit per order visible before month end

📋
Orders
💷
Costs
📊
Margin
🔔
Alerts

Margin

Per order

Leaks

Spotted

Month-end

No surprises

Part Deliveries

Split shipments without losing the balance

📋
Order
✂️
Split
🚚
Ship Part
📦
Balance

Splits

Tracked

Balances

Never lost

Invoicing

Per shipment

Quote Follow-Ups

No quote dies in someone's sent folder

📄
Quote
🔕
No Reply
📨
Nudge
🏁
Won/Lost

Follow-ups

Automatic

Pipeline

Visible

Forgotten

None

Trace My Order Flow

These are examples — your products, price rules and documents define the real system.

Technologies:Next.jsNode.jsLaravelPostgreSQLMySQLREST & GraphQL APIsXero / QuickBooks / SagePDF GenerationStripe

Common Use Cases

Tailored solutions designed for your specific business requirements.

Equipment distributors selling through dealers
Made-to-order and configured product manufacturers
Orders that include an installation stage
Staged payments — deposit, balance, retention
Contract and certificate paperwork at scale
Multi-channel orders: web, phone and showroom
Replacing a business-critical shared spreadsheet
18+ yearsBuilding order and back-office systems businesses run their day on

Direct Expert Partnership

When you hire an agency, your project is often delegated to junior developers while senior architects only appear during sales calls. With me, you work directly with the architect.

Senior Involvement

100% of architectural and critical code is handled by a Senior Developer with 18+ years experience.

Lower Overhead

No project managers or account executives. You pay for engineering, not for office space and sales teams.

Rapid Decision Making

Direct access means no "internal meetings" to get an answer. We move as fast as your business needs.

"I build systems that don't just work—they excel under pressure."

IC

Ihor Chyshkala

Senior Technical Architect

How We Work Together

01

Map the Order

I trace one real order end to end — every hand-off, every document, every place data is re-keyed — and write down the status model you actually use.

02

Model & Migrate

The data model is agreed before any screens exist, and historic orders are migrated so the new system launches with real history behind it.

03

Build in Slices

Order intake and documents first, because that's where the pain is. Stock, portal and integrations follow once the core is live and trusted.

04

Cut Over

A parallel-run period where both systems hold the truth, then a hard switch once reconciliation is clean. No big-bang weekend gambles.

Frequently Asked Questions

Ready to Get Started?

Let's discuss your project and see how I can help.

An order management system is the operational spine of any business where an order is more than a checkout. If your orders involve configuration, lead times, deposits, delivery, installation, sign-off and a stack of documents, then the order is not an event — it's a process that runs for weeks or months. Most UK businesses in that position manage the process in a shared spreadsheet supplemented by email, and it holds together far longer than it should, right up until the order book grows past what one coordinator can hold in their head.

The Symptoms of Outgrowing the Spreadsheet

There's a fairly reliable set of signals. Nobody can answer "where is my order?" without asking at least two colleagues. The same order data is typed into three places — the spreadsheet, the accounting package and a Word document. Two people editing the file at once produces a version conflict and a quiet argument. A customer produces a quote with a price nobody can explain and there's no record of who approved it. And most tellingly: one specific person cannot go on holiday without the order process degrading, because the rules live in their memory rather than in any system.

None of these is individually fatal. Together they impose a tax on every order you process, and that tax grows faster than headcount, because coordination cost scales worse than volume does.

Where This Works Best

Equipment distribution through dealer networks — dealer-specific price lists, order tracking dealers can self-serve, stock allocation across branches, and warranty registration tied to serial numbers. The dealer portal alone usually removes a meaningful share of inbound phone traffic.

Made-to-order manufacturing — configured products where the order determines the production spec. The value is a single unambiguous record of what was ordered, so remakes caused by a misread spec stop being a monthly occurrence.

Installed products — windows, kitchens, HVAC, solar — where the order carries a survey, a manufacturing slot, a delivery and an installation date, plus deposit and balance payments. This is the case where an OMS and field service management genuinely belong together.

B2B trade supply — account customers with credit terms, negotiated pricing, part deliveries and back orders. Standard e-commerce platforms model none of this well; an OMS models all of it as first-class concepts.

Documents Are Usually the Fastest Win

When I map a client's order process, document generation is almost always the first thing worth automating. Quotes, order confirmations, contracts, delivery notes, handover acts, warranty certificates — assembled by hand from the last similar document, which means every one carries the risk of a stale price, a wrong address or a clause from a different customer's deal.

Generating documents from order data removes an entire class of error and typically saves hours per week per person, but the real benefit is downstream: once documents are generated rather than authored, they're consistent, they're versioned, and they're admissible when a dispute arrives eighteen months later. It's also the module that builds internal trust in the new system fastest, which is why I usually ship it first.

Custom OMS vs Off-the-Shelf

The honest position: if you sell standard products through a standard checkout, you don't need this. Shopify, WooCommerce and their ecosystems handle that well, and bolting a custom system onto a solved problem is a waste of money.

A custom OMS earns its cost when the order has a long life after payment, when your pricing and approval rules are specific to your business, when the process spans teams that currently work in separate tools, and when the system must integrate with things you already run rather than replace them. The alternative — a full ERP implementation — solves the problem too, but at several times the cost and with a change-management burden that mid-sized businesses routinely underestimate.

Integration, Not Replacement

The most common mistake I see is scoping an OMS to replace everything. It shouldn't. Your accounting package is fine — Xero, QuickBooks and Sage all have solid APIs and your accountant knows them. Your storefront is fine. Your warehouse system, if you have one, is probably fine too.

The OMS should own the order lifecycle and become the system of record for commercial truth, then push and pull cleanly across the boundaries. That keeps the build scoped, keeps the risk bounded, and means the project can be stopped or paused at a module boundary with something valuable already delivered. Replace-everything projects don't offer that, which is exactly why so many of them fail expensively.

What It Costs and How Long It Takes

A fixed-price discovery — mapping the order flow, agreeing the status model and data model, and producing a costed build plan — starts around £3,500 and takes about a week. An MVP covering order intake, the status model, document generation and spreadsheet migration typically runs £30,000–£60,000 over 8–14 weeks. A full platform adding stock allocation, dealer portal, pricing approvals and two-way accounting integration generally sits between £80,000 and £160,000 across 6–12 months.

Those ranges are wide because scope genuinely varies. What doesn't vary is the sequencing: intake and documents first, because that's where the daily pain lives and where trust in the new system gets built.

Getting Started

The starting point is one real order, traced end to end. Every hand-off, every document produced, every point where the same information is typed a second time. That exercise usually takes a day and produces both a costed build plan and a short list of fixes worth making immediately, before any software exists.

Based in Manchester, I work with distributors, manufacturers and installation businesses across the UK. If your order book lives in a spreadsheet that's become too important to trust, let's map it out and see what the honest options are.