AU Bespoke Presence

Custom Django & Python delivery for Australian SMEs and APAC — same stack as this showcase site.

Follow

Case study Updated 7 May 2026

Case Study: Nine Soup House (Jiu Tang Wu) — Franchise Operations Management & Wholesale ERP

Case Study: Nine Soup House (Jiu Tang Wu) — Franchise Operations Management & Wholesale ERP

Project Code: 9soup
Category: Franchise Management System / B2B Wholesale ERP
Status: Active Development (Port 8040)
Industry: Food & Beverage / Franchise Operations


1. Project Name

Nine Soup House Operations Platform — A franchise management and wholesale distribution ERP system for a Taiwanese restaurant franchise, managing the complete supply chain from headquarters procurement and warehouse operations through franchisee order fulfilment, inventory management, and financial reconciliation.


2. Core Technology Stack

Layer Technology
Backend Framework Django 5.0+, Python 3
Database PostgreSQL (with Docker Compose production environment)
Admin UI django-baton
Scheduling Cron jobs (cron app)
Document Generation PDF generation (fixed_pdf.pdf artifacts)
Frontend Django Templates (RWD)
Containerisation Docker Compose (dev + production configurations)
Hosting GCP / Docker

Custom App Structure:
basic (Company, CodeNO, Product, Brand, Warehouse, Supplier, Franchise) · core · sales (orders, sales order lifecycle) · purchase (procurement) · transaction (financial transactions) · accounting (reconciliation, reporting) · reports (operational reporting) · front (franchisee portal) · scripts · cron (automated scheduling)


3. The Challenge (The Problem)

Running a restaurant franchise in Taiwan creates a multi-party supply chain challenge that a single-location business never encounters:

  1. Headquarters → Franchisee inventory control: The franchisor must supply ingredients and branded products to multiple franchisee locations at the right quantities and on a reliable schedule. Without a system managing franchisee order consolidation, warehouse picking, and delivery scheduling, headquarters inventory management is driven by informal requests with no aggregate demand signal.
  2. Two-tier pricing and brand protection: Franchise agreements typically specify wholesale prices for franchise orders that differ from public pricing. Managing two-tier pricing (headquarters cost vs. franchisee wholesale vs. end-customer retail) across a mixed product catalogue (fresh ingredients, dry goods, branded merchandise) without a purpose-built data model creates pricing errors and disputes.
  3. Multi-warehouse inventory routing: The Warehouse model in basic indicates the system manages inventory across multiple storage locations. Without systematic warehouse routing, picking lists are manually assembled, inbound goods are posted to the wrong location, and transfer requests create stock discrepancies.
  4. Pre-order items with manual scheduling: Products ordered on a pre-order basis (not in stock at time of order) require separate handling — they cannot be committed to a delivery schedule until headquarters has confirmed a replenishment ETA. Without flagging pre-order items separately, franchisees receive incomplete deliveries without warning.

4. The Solution (The Implementation)

Feature 1: Two-Stage Order Fulfilment (Pick → Ship)

The core workflow — Order creation → Pick list → Delivery note — is enforced in the correct sequence. The system requires picking to be completed before a shipping document can be issued. This prevents the common failure mode where a delivery departs the warehouse before the actual picked quantity is confirmed, resulting in quantity discrepancies at the franchisee.

Feature 2: Multi-Order Consolidation at Picking

Multiple franchisee orders scheduled for the same delivery date are consolidated at the pick list level — a single warehouse operative sees all items across all that day's orders in one optimised picking sequence, minimising warehouse traversal distance. The pick list is then split back into individual delivery notes per franchisee.

Feature 3: Pre-Order Item Handling

Items not in current stock are flagged at order entry as pre-order. The system does not auto-assign a delivery date for pre-order lines; instead, it requires manual scheduling once headquarters confirms a replenishment date. This prevents the situation where a franchisee's delivery schedule shows a committed date for a product that cannot actually be fulfilled.

Feature 4: Two-Tier Unit Packaging Logic

Products support a two-layer packaging unit system (e.g., 1 carton = 30 bags; 1 bag = 1 kg). Procurement happens at the carton level, warehouse inventory is tracked at the bag level, and COGS is calculated per kilogram — with automated conversion between all three. This matches the physical reality of bulk food distribution, where purchasing, storage, and costing operate in different units.

Feature 5: Franchise Financial Reconciliation

The accounting and transaction apps manage the periodic financial reconciliation between headquarters and each franchisee — calculating what each franchise owes for product deliveries, any credits for returns, and generating the periodic statements required for franchise agreement compliance.


5. Business Impact (The Result)

  • Consolidated demand visibility: Headquarters can see aggregate franchisee order demand before committing to supplier procurement, enabling just-in-time purchasing rather than speculative stock-building.
  • Delivery reliability: The enforced pick-before-ship workflow means every delivery is grounded in actual picked quantities — eliminating the delivery shortfall disputes that erode franchisee confidence and operational trust.
  • Pre-order transparency: Franchisees receive accurate delivery schedules rather than optimistic commitments that are later revised. Predictable supply enables franchisees to plan kitchen operations and staffing accordingly.
  • Labour efficiency at the warehouse: Consolidated multi-order pick lists reduce warehouse operative travel and cognitive load, cutting pick time per order in batch operations.
  • [Needs Manual Input]: Number of active franchisees, monthly order volume, specific delivery accuracy metrics, pick time reduction.

6. AI / Innovation Factor

  • Production-Ready Containerisation: The project ships with both docker-compose.dev.yml and docker-compose.prod.yml configurations, including Nginx reverse proxy and environment-separated secrets management — a production-grade deployment practice that reflects senior engineering standards.
  • Automated Cron Scheduling: The cron app manages time-based operational tasks (delivery schedule generation, financial period closing) without manual intervention — a small but operationally important automation that prevents missed processing deadlines.
  • Franchise-Scale Architecture Pattern: The multi-entity, multi-warehouse, multi-franchisee data model demonstrates a scalable platform architecture applicable to any franchise or multi-location retail business — a sector with significant representation in Australian food and beverage where franchise operations management software commands premium pricing.
  • Specification-First Development: The requirements document (docs/requirements/2509-wanzheng-yewu-liucheng-guige_v2.0.md — internal filename in Hanyu Pinyin for wanzheng yewu liucheng guige, “complete business process specification”, v2.1, maintained through 2025-12-23) reflects a specification-first methodology — business process flows are documented before code is written, enabling quality assurance against defined requirements rather than inferred intentions.
  • [Needs Manual Input]: Any planned AI integration for demand forecasting, dynamic pricing, or franchisee performance benchmarking.

Document generated: 2026-05-03 | Maintained by Tom Lai / You Er Ta Mu She Ji