How it fits together
One store, five systems. Scroll through an order.
- 01Storefront
A product page someone trusts enough to tap Buy.
Built: the WooCommerce store - 02Order
Someone confirms it, fixes the address and adds delivery.
Built: QC99 Manager - 03Packing
The right items, in the right parcel, with the right slip.
Built: QC99 Packer - 04Tracking
Booked, in transit, delivered, without opening three portals.
Built: QC99 Track + courier API integration - 05Analytics
The payout matches the order, and the margin is real.
Built: QC99 Analytics + Accounts
Every step was possible. None of it was quick.
Orders arrived through the website. Confirming them, fixing addresses, booking couriers and matching payouts happened across WP-admin, courier portals and spreadsheets, often on a phone.
Cash on delivery makes this matter. An unconfirmed order is a parcel that might come back.
Constraints
A small team working mostly on phones. No budget for an ERP subscription. And the store had to keep taking orders during every change.
Small apps, one database
Instead of one big system, I built single-purpose apps that sit on the store’s own WooCommerce data. Each does one job, they share one login, and each can be fixed without touching the others.
- Storefront
- Checkout (COD)
- Order messages
- WooCommerce
- Orders (HPOS)
- Products & costs
- Manager · orders
- Packer · packing
- Track · delivery
- Products · catalogue
- Analytics · numbers
- Accounts · money
- PostEx
- Leopards
- Meta catalogue
Simplified. Real app names, no internal URLs.
What shipped
- Manager. A phone-first order control room. Delivery charges are added as a real shipping line, and coupons come with a ready-to-send customer message.
- Analytics. Revenue, margins, product ROI, courier payouts and reconciliation. Read-only by design.
- Accounts. Customer and supplier ledgers, and bank payments matched to orders.
- Packer, Track and Products. Packing, courier tracking and catalogue editing.
- Plugins. Courier Tracker, Shipping Rules and Loop Variations, running on the live store.
Recreated screens
#10482 · Customer A · Lahore
#10483 · Customer B · Multan
Rebuilt for this page with made-up orders. The real screens hold customer data, so they stay private.
What I learned
- In WooCommerce a refund can look like a completed order. Treat it like one and a dashboard crashes on a missing name.
- Product costs on variations can quietly read as zero. The dashboard now says “No cost” instead of showing a fake profit.
- Most bugs in internal tools are honest data being misread. Show the uncertainty; don’t round it away.


