ShopDunk ERP & iPhone 15 Pre-order

Period
2023
Type
Client project (HESMAN Group)
Services
Web architecture, Backend, Realtime
Client
shopdunk.com ↗

About

A retail ERP for ShopDunk — an Apple authorized reseller chain — plus the iPhone 15 pre-order portal for the biggest launch day of the year.

Outcome

The pre-order system handled over 5,000 pre-orders on the first launch day without interruption. Our team stayed on watch from 8 AM on opening day until 6 PM the next day to make sure every order was captured and routed to the right store.

Problem

iPhone launch day is a flood of traffic: thousands of customers ordering at once in the first hours, and every order must match per-store, per-variant inventory. Double-booking one device for two customers costs both revenue and reputation.

At the same time, the ERP had to serve the chain's day-to-day operations — it couldn't be a system that only survives on sale day.

Context

  • ShopDunk belongs to HESMAN Group, one of Vietnam's largest Apple authorized reseller chains.
  • Preparation time for the pre-order campaign was measured in weeks, not months — the architecture had to rely on solid, proven choices.
  • The same year, the team shipped Tan Phu ERP in 2 weeks and contributed to Hoang Ha Mobile's ERP — reusing the same architectural foundation.

Product System

The architecture centers on queues and realtime messaging to absorb peak load:

  • BullMQ — every pre-order flows through a queue, guaranteeing sequential capture and no double-booked inventory.
  • MQTT — pushes order and inventory state to each store's operations screen in realtime.
  • NestJS + React + SQL Server — the ERP core; Redis for caching and distributed locks; Docker + Nginx for deployment.
  • VOIP integration and a Facebook Chat webhook so the care team could confirm and support customers inside the system.

Role

  • Web Team Lead — responsible for the system's web architecture
  • Designed the queued pre-order flow and double-booking prevention
  • Built core ERP modules and realtime operations screens
  • On call through launch day, firefighting alongside the operations team

Learnings

Queues are safety valves

Peak load can't be predicted precisely, but it can be absorbed. Routing every critical write through a queue turns "overloaded" into "a few seconds slower" instead of "orders lost".

Sale day is decided before sale day

Everything that saved us that day — fallback playbooks, monitoring dashboards, incident conventions — was prepared in advance. Improvisation only works as plan B, never as the only plan.

A lead's job is unblocking

Leading through peak week wasn't about writing the most code — it was keeping everyone unstuck: deciding fast, dividing work clearly, and standing where the risk was highest.

© 2026 Phi Dang Ho Chi Minh City — —:—:—