Services

Building a Multi-Channel Inventory & Stock Control System: Costs, Timeline and the Traps Nobody Warns You About

2026.08.05 · 69 views
Building a Multi-Channel Inventory & Stock Control System: Costs, Timeline and the Traps Nobody Warns You About

When the same SKU sells on Shopee, momo, your own site and two physical stores, spreadsheets stop being a system and start being a liability. Here is the full build plan, real Taiwan cost ranges, and the six traps that sink most inventory projects.

Share:

Thirty-seven units missing at month end — and it is not the warehouse's fault

A Taiwanese housewares brand sells the same insulated bottle on Shopee, momo, its own site and in two stores. Stock lives in a spreadsheet one person copies out each morning and re-uploads to every channel by hand. Last month's count showed 214 units on the books and 177 on the shelf — a 37-unit gap. The same month brought 12 oversell refunds, a marketplace fulfilment penalty and a drop in ad weighting. Two staff spent 2.5 hours a day reconciling: over 100 hours in a month.

That is not a discipline problem. It is what happens when inventory has no single source of truth — five places holding a number means five versions of reality.

When to build, and when not to

Good fit

  • The same SKU sells across two or more channels (marketplace, own site, store)
  • More than 300 active SKUs, or variants, bundles and gift-with-purchase items
  • More than 800 orders a month; manual copying no longer keeps pace with shipping
  • Lot, expiry or serial tracking is required (food, supplements, electronics, medical devices)
  • Multiple stock locations needing transfers (own warehouse, 3PL, store back-room)

Poor fit — do not spend the money yet

  • Single channel, under 100 SKUs, under 200 orders a month — the marketplace back office plus a Google Sheet is enough
  • The real pain is slow packing slips and labels — buy an off-the-shelf shipping tool
  • Nobody owns the product master file — software cannot rescue an unowned master
  • The costing method is undecided (moving average vs FIFO) — hold that meeting before anyone writes code
  • Budget under NT$150,000 but real-time sync everywhere is required — start with one channel

The realistic alternatives compared

OptionTime to liveEntry costStrengthsLimits
Excel / Google SheetsImmediateNear zeroNo learning curve, total flexibilityNo transaction history, no safe concurrent writes, cannot stop oversells
SaaS multi-channel inventory tool2–4 weeksNT$1,500–6,000 / monthConnectors out of the boxBundle and lot rules must bend to the tool; data extraction is painful
Packaged ERP (Digiwin, Chain Sea, SAP B1)4–9 monthsFrom NT$600,000 plus annual feesComplete finance and audit modulesMulti-channel e-commerce needs customisation; consultant fees are steep
Self-hosted Odoo Inventory6–12 weeksFees per Odoo's pricing plus implementationBroad modules, large communityTaiwan logistics and e-invoicing need separate work; customisation complicates upgrades
Custom inventory hub (Laravel + Flutter)10–16 weeksFrom NT$380,000Fits your process, you own the dataHigher upfront cost, needs an internal project owner

Rule of thumb: if more than three exception flows affect stock deduction — bundle breakdown, defect exchange, consignment — customisation fees on a packaged tool usually catch up with a custom build within 18 months.

The build, stage by stage

  • Stage 0 — Data health check (3–5 days): audit the SKU master, unit conversions and opening balances. Deliverables: master inventory, duplicate part-number mapping, variance report (Google Sheets plus Metabase)
  • Stage 1 — Planning (5–8 days): enumerate every movement type — receiving, inspection, sale, return-to-stock, transfer, write-off, count adjustment, consignment. Deliverables: Miro process maps, Figma wireframes, a Notion spec and data dictionary
  • Stage 2 — Core build (5–7 weeks): Laravel 12 with MySQL 8. Stock lives in an append-only ledger; deductions use InnoDB locking reads to stop concurrent oversells. Deliverable: a working back office with seeded data
  • Stage 3 — Channel integration (3–4 weeks): connect the Shopee Open Platform, momo supplier interfaces, WooCommerce or Shopify, and store POS. Sync runs through Laravel queues with Horizon, retries and alerts
  • Stage 4 — Handheld app (2–3 weeks): a Flutter scanning app for receiving, picking and counting, with offline buffering, on Android PDAs or phones
  • Stage 5 — UAT and parallel run (2–3 weeks): old and new side by side for two weeks with a daily variance report; cut over after five straight days below 0.5% variance
  • Stage 6 — Cutover (1 week): freeze count on a Sunday evening, import opening quantities, enable channels one at a time. Deliverables: operating manual, recorded training, rollback script

What it actually costs

Line itemRange (TWD)
Data health check and planning45,000–80,000
Core module (purchasing, sales, transfers, counting)180,000–320,000
Channel integration, per channel45,000–90,000
Flutter handheld scanning app120,000–200,000
Costing and reporting module60,000–120,000
Typical total380,000–1,200,000

The costs forgotten in the first budget:

  • Hosting, backups and monitoring: NT$2,500–8,000 / month, including UptimeRobot or equivalent
  • Hardware: Bluetooth scanners NT$4,000–12,000, Android PDAs NT$12,000–25,000, label printer NT$8,000–30,000 plus consumables
  • Carrier waybill integration: NT$30,000–60,000 one-off, per carrier
  • Payment fees on your own store, which shape margin reporting — see ECPay's rate page
  • Keeping up with marketplace API changes: 8–20 hours a year
  • Annual maintenance and support: 15–20% of build cost
  • Internal training and SOP writing: 16–40 hours, almost always omitted

All figures are estimated ranges; quotes depend on SKU count, channels and exception-flow complexity.

What clients expect vs what happens

ExpectationReality
Once the API is connected, stock syncs instantlyMarketplace APIs are rate-limited; write-back lands at 1–5 minutes. Fast movers need reserve buffers, not faster syncing
Go-live makes the numbers accurateSoftware amplifies existing discipline. A sloppy opening count means an inaccurate first month
Development ends at launchThe first six weeks are bedding-in. Exceptions — exchanges, damaged goods, breaking bundles — are the real work
Warehouse staff will adopt it immediatelyThe friction is one extra scan. Any routine action longer than two steps gets worked around
Reports can be changed any timeSwitching costing method between moving average and FIFO forces a recalculation of historical stock value

Six traps and how to avoid them

  • Updating a quantity column on the product table — use an append-only ledger; on-hand becomes a derived total, never an editable field
  • Overselling from simultaneous orders — give fast movers per-channel allocations plus a reserve buffer instead of one shared pool
  • The same product under several part numbers — normalise the master before go-live, one product one code, old codes kept as aliases
  • Bundles and gifts with no breakdown rule — define a bill of materials so shipping deducts components, not the bundle
  • Duplicate deductions from API retries — attach an idempotency key to every inbound message and keep a dedupe table
  • No rollback plan on cutover day — run the old process in parallel for two weeks and make the migration script reversible
  • Counting stock once a year — switch to cycle counting with ABC classification so A-items are counted monthly

Success metrics and the first 90 days

  • Day 30: book-to-shelf accuracy above 95%; oversells down to two or fewer a month; sync failure rate under 1%; daily reconciliation down from 2.5 hours to 30 minutes
  • Day 60: available-to-sell accuracy above 98%; pick error rate under 0.5%; replenishment lead time cut 3–5 days; stock untouched for 90 days flagged for clearance
  • Day 90: inventory turnover up 15–25%; lost-sale value quantified and trending down; 100% cycle-count coverage on A-items; 60–100 hours saved per month

Decision checklist

  • ☐ The same SKU sells on two or more channels
  • ☐ An oversell or mislabelled stockout occurred in the last three months
  • ☐ More than 300 active SKUs
  • ☐ More than 800 orders a month
  • ☐ Someone reconciles stock by hand for an hour or more a day
  • ☐ Bundles, add-ons or gifts need component-level deduction
  • ☐ Lot or expiry tracking is required
  • ☐ Two or more locations require transfers
  • ☐ The product master file has a named owner
  • ☐ Finance has confirmed the costing method
  • ☐ You will run one full freeze count at cutover
  • ☐ Budget covers hardware and annual maintenance, not just the build
  • ☐ An internal owner can commit four hours a week

Eight or more ticked: a custom hub usually pays back in 12–18 months. Five or fewer: a SaaS stepping stone is better economics.

FAQ

Can we start with our own site and one marketplace, then expand?

Yes, and we recommend it. Get the ledger and master file right once; each additional channel then costs roughly NT$45,000–90,000 and takes 3–4 weeks. Connecting five channels first and reworking the data model afterwards costs far more.

We already run Digiwin or Chain Sea ERP — do we still need an inventory hub?

If the ERP mainly handles finance and accounting documents, front-end available-to-sell calculation, reserves and sync scheduling still need a middle layer. The usual pattern: a hub owns real-time availability and posts documents back to the ERP.

How fast can stock sync actually be?

Internal deduction is instant, but outbound write-back is bound by marketplace rate limits and lands at 1–5 minutes in practice. Overselling is prevented by reserve buffers and per-channel allocation, not sub-second sync.

Our warehouse team is older — will they cope?

Yes, provided the interface is scan-first: carton on receiving, item on picking, shelf on counting, every action two steps or fewer. Training takes one to two hours; bedding-in about two weeks.

Can we get our data out later?

The database and source code of a custom system belong to the client. ScriptWalker hands over full schema documentation and export scripts at delivery. No data lock-in.

Next step

ScriptWalker builds custom inventory and stock control hubs, starting at NT$380,000 — covering the data health check, the core module and one channel integration. The first step is not a quote; it is a free 60-minute inventory health review. Bring three months of order volumes, your SKU list and your reconciliation routine, and leave with a variance assessment and a recommended rollout order.

Share: