Timeline trạng thái đơn hàng giải thích chuyện gì đang xảy ra, điều gì tiếp theo và khi nào cần lo lắng, dùng mô hình sự kiện đơn giản để giữ cập nhật nhất quán.

Hầu hết các ticket “Đơn hàng của tôi đâu rồi?” thực ra không phải về vận chuyển. Chúng là về sự không chắc chắn. Nếu khách không thể biết chuyện gì đang xảy ra, họ hỏi người thật ngay cả khi chẳng có gì sai.
Các câu hỏi lặp lại xuất hiện: đơn hàng đang ở đâu ngay bây giờ, đã được gửi chưa hay vẫn đang chuẩn bị, khi nào sẽ đến (và liệu ngày đó có thay đổi không), có thể huỷ hay thay địa chỉ không, và phải làm gì khi tracking không cập nhật.
Khi đội bạn trả lời bằng tay, hai vấn đề nhanh chóng lộ ra. Thứ nhất, không thể scale. Một cú spike nhỏ về đơn hàng có thể biến thành một cơn lũ ticket, và thời gian phản hồi tệ đi. Thứ hai, câu trả lời lệch nhau. Một nhân viên nói “đang xử lý,” nhân viên khác nói “đang đóng gói,” và khách nghe thấy mâu thuẫn thay vì rõ ràng. Điều đó dẫn tới các câu hỏi phụ, tạo thêm công việc.
Mục tiêu đơn giản: khách hàng nên tự tra cứu trạng thái đơn hàng mà không phải đoán hay cần trả lời tuỳ chỉnh. Một timeline trạng thái tốt làm điều đó bằng cách biến hoạt động nội bộ thành một câu chuyện rõ ràng để khách theo dõi.
Minh bạch không có nghĩa là phơi bày mọi chi tiết nội bộ. Nó có nghĩa là khách có thể thấy rõ trạng thái hiện tại bằng ngôn ngữ đơn giản, khi nào nó thay đổi (kèm timestamp hợp lý), chuyện gì xảy ra tiếp theo (và điều gì có thể làm trễ), và khi nào họ nên liên hệ.
Khi khách có thể tự trả lời “đang xảy ra gì và tôi nên làm gì?” nhiều ticket sẽ không bao giờ được tạo ra.
Khách không kiểm tra tracking vì tò mò. Họ kiểm tra vì họ muốn câu trả lời nhanh: đơn hàng tôi đang ở đâu ngay bây giờ, khi nào có cập nhật gần nhất, và điều gì dự kiến xảy ra tiếp theo.
Một UI tracking tốt kể được một câu chuyện, không chỉ một nhãn. “Shipped” là một nhãn. Một câu chuyện là: “Đã đóng gói ở kho của chúng tôi hôm qua lúc 15:12, đã được hãng lấy, cập nhật tiếp theo là scan đang vận chuyển.” Câu chuyện giảm đoán mò, nên người ta không tìm đến hỗ trợ.
Ba điều quan trọng nhất trên timeline trạng thái đơn hàng:
Sự lo lắng tăng khi tracking im lặng hoặc mơ hồ. Những tác nhân lớn nhất là khoảng trống dài không có giải thích, văn bản trạng thái có thể có vô số nghĩa (“Processing”), và thiếu khung giao hàng. Nếu bạn chưa thể ước tính giao hàng, hãy nói thẳng và giải thích bạn đang chờ gì, ví dụ: “Chúng tôi sẽ hiển thị ETA sau khi hãng vận chuyển scan kiện.”
Độ chính xác quan trọng hơn lạc quan. Mọi người tha thứ cho chậm trễ hơn là những lời hứa sai. Nếu dữ liệu của bạn chưa đầy đủ, hãy cho thấy những gì bạn biết và tránh giả vờ biết phần còn lại.
Ví dụ đơn giản: nếu một kiện hàng đứng ở “Label created” 36 giờ, khách nghĩ nó bị kẹt. Một timeline hữu ích thêm ngữ cảnh: “Hãng vận chuyển chưa scan kiện. Cập nhật tiếp theo dự kiến sau khi lấy. Nếu sau 5 PM ngày mai không có scan, chúng tôi sẽ điều tra.” Một câu như vậy có thể ngăn chặn một đợt ticket “Đơn hàng của tôi đâu rồi?”.
Một timeline trạng thái tốt nên trả lời ba điều ngay lập tức: đơn hàng đang ở đâu, chuyện gì đã xảy ra trước đó, và khách nên mong đợi gì tiếp theo. Giữ cho nó đơn giản. Nếu người dùng phải đọc bài trợ giúp để hiểu timeline, nó sẽ không giảm ticket.
Bắt đầu với một tập nhỏ các mốc thân thiện với khách. Hầu hết cửa hàng có thể giải quyết phần lớn câu hỏi bằng một bộ ổn định như: Placed, Paid, Packed, Shipped, Delivered, cùng các kết thúc rõ ràng như Canceled và Returned.
Với mỗi bước, thêm một dòng microcopy ngắn giải thích ý nghĩa và điều tiếp theo. Ví dụ: “Packed: Các món của bạn đã được chuẩn bị trong kho. Tiếp theo: giao cho hãng vận chuyển.” Điều này ngăn câu hỏi cổ điển “Thật sự đã gửi chưa?”.
Luôn hiển thị timestamp và ghi nguồn cập nhật để khách tin tưởng. “Cập nhật 14:32 bởi Warehouse” cảm nhận khác với “Cập nhật hôm nay.” Khi nguồn là bên ngoài, ghi rõ: “Cập nhật bởi Carrier.” Nếu bạn không biết nguồn, đừng đoán.
Ngoại lệ nên nổi bật hơn tiến trình bình thường. Xử lý chúng như một bước riêng hoặc một huy hiệu rõ ràng trên bước liên quan, bằng ngôn ngữ đơn giản và hành động tiếp theo. Các ngoại lệ phổ biến: Delay, Address issue, Delivery attempt failed.
Một mẫu đơn giản và đáng tin cậy là:
Ví dụ: khách thấy “Shipped (Carrier) 09:10” rồi “Delivery attempt failed 18:40.” Nếu UI cũng hiện “Hãng không thể vào toà nhà. Lần thử tiếp theo: ngày mai,” bạn tránh được chuỗi trao đổi thừa.
Workflow nội bộ của bạn có thể gồm hàng chục bước: picking, packing, batching labels, handoff cho carrier, retries, exceptions, và nhiều hơn nữa. Khách không cần mức chi tiết đó. Họ muốn câu trả lời ngắn gọn: “Bạn đã nhận đơn của tôi chưa?”, “Đã gửi chưa?”, “Khi nào đến?”, và “Có vấn đề gì không?”.
Vì vậy, hãy tách hoạt động nội bộ khỏi trạng thái hiển thị cho khách. Giữ workflow nội bộ phức tạp ở mức cần thiết, nhưng trình bày một tập nhỏ, ổn định các bước timeline hợp lý bên ngoài kho.
Một cách thực tế là thêm lớp mapping: nhiều sự kiện nội bộ gộp lại thành vài trạng thái timeline. Ví dụ, payment authorized, fraud check passed, và inventory reserved có thể gộp thành “Order confirmed.” Pick started, packed, và label created thành “Preparing.” Handoff cho carrier và scan in-transit thành “Shipped.” Scan out-for-delivery thành “Out for delivery,” và delivered scan kèm ảnh xác nhận thành “Delivered.”
Lớp mapping này cũng là lưới an toàn. Nếu bạn thay backend sau này (carrier mới, trung tâm fulfillment mới, logic retry mới), timeline không nên nhảy lung tung hoặc đột nhiên xuất hiện bước mới. Khách tin tưởng khi timeline nhất quán giữa các đơn hàng.
Làm cho mỗi trạng thái hiển thị dễ đọc và truy cập. Dùng nhãn chữ trước, sau đó hỗ trợ bằng icon và màu sắc. Màu không bao giờ là tín hiệu duy nhất. Trạng thái trì hoãn phải ghi chữ “Delayed”. Giữ độ tương phản cao, dùng chỉ báo “bước hiện tại” rõ ràng, và viết dòng trợ giúp ngắn như “Chúng tôi đang chuẩn bị đơn hàng (thường 1–2 ngày).” Điều này giảm các ticket “cái này nghĩa là gì?” trước khi chúng bắt đầu.
Một timeline trạng thái tốt bắt đầu với một ý tưởng đơn giản: lưu các sự kiện, không chỉ trạng thái mới nhất. Sự kiện là một thực tế đã xảy ra vào một thời điểm cụ thể, như “label created” hoặc “package delivered.” Sự kiện là fact và sau này không đổi, nên timeline của bạn giữ nhất quán.
Nếu bạn chỉ ghi đè một trường trạng thái duy nhất (ví dụ status = shipped), bạn đánh mất câu chuyện. Khi khách hỏi “Khi nào nó được gửi?” hoặc “Tại sao lại lùi trạng thái?”, bạn không có câu trả lời rõ ràng. Với sự kiện, bạn có lịch sử rõ ràng và trail kiểm toán tin cậy.
Giữ bản ghi nhỏ và tẻ nhạt. Bạn luôn có thể thêm sau.
order_id: đơn hàng nào thuộc vềevent_type: chuyện gì đã xảy ra (picked_up, out_for_delivery, delivered)happened_at: khi nào nó xảy ra (thời điểm hành động trong đời thực)actor: ai gây ra (system, warehouse, carrier, support)details: dữ liệu phụ nhỏ (số theo dõi, vị trí, ghi chú)Khi UI hiển thị timeline, nó sắp xếp sự kiện theo happened_at và hiển thị chúng. Nếu bạn sau này thay cách đặt nhãn cho khách, bạn có thể remap event_type mà không phải viết lại lịch sử.
Hệ thống giao nhận thường gửi lại cùng một cập nhật. Idempotency nghĩa là: nếu cùng một sự kiện đến hai lần, nó không nên tạo hai mục trong timeline.
Cách đơn giản nhất là gán cho mỗi sự kiện đến một khoá duy nhất ổn định (ví dụ ID sự kiện của hãng, hoặc hash của order_id + event_type + happened_at + tracking_number) và lưu lại. Nếu nó đến lần nữa, bạn bỏ qua.
Timeline hoạt động tốt nhất khi nó phản ánh những khoảnh khắc thực sự mà khách nhận ra, không phải các tác vụ nội bộ. Bắt đầu bằng cách liệt kê các điểm mà điều gì đó thực sự thay đổi với người mua: tiền được thu, có hộp vật lý, hãng có kiện, kiện đến nơi.
Một tập nhỏ thường đủ trả lời hầu hết câu hỏi “Đơn hàng của tôi đâu?”:
Giữ tên nhất quán và cụ thể. “Packed” và “Ready” nghe tương tự nhưng nghĩa khác với khách. Chọn một nghĩa cho mỗi sự kiện, và đừng tái sử dụng nhãn cho khoảnh khắc khác.
Không phải sự kiện backend nào cũng thuộc UI. Một số chỉ dành cho đội bạn (fraud review, warehouse pick started, address validation). Quy tắc tốt: nếu hiện nó sẽ tạo ra nhiều câu hỏi hơn là câu trả lời, giữ nó nội bộ.
Map các bước nội bộ vào ít trạng thái khách hơn. Bạn có thể có năm bước trong kho, nhưng timeline chỉ hiển thị “Preparing your order” cho tới khi đạt “Handed to carrier.” Điều này giữ UI bình tĩnh và dễ đoán.
Thời gian quan trọng như nhãn. Lưu hai timestamp khi có thể: khi sự kiện xảy ra và khi bạn ghi nhận nó. Hiển thị thời điểm xảy ra trong UI (thời gian scan của hãng, thời gian xác nhận giao), vì nếu chỉ hiển thị thời gian xử lý, một lần import muộn có thể làm cho nó có vẻ như kiện lùi lại.
Dữ liệu hãng vận chuyển đôi khi thiếu. Lên kế hoạch cho điều đó. Nếu bạn không bao giờ nhận được scan “Handed to carrier”, fallback về “Label created” với thông điệp rõ ràng như “Chờ hãng vận chuyển scan kiện.” Tránh bịa tiến trình.
Ví dụ cụ thể: kho in nhãn lúc 10:05, nhưng hãng không scan tới 18:40. Mô hình sự kiện backend của bạn nên lưu cả hai sự kiện, nhưng timeline không nên ngụ ý có chuyển động trong khoảng trống. Chỉ riêng lựa chọn đó có thể ngăn nhiều ticket “Nó nói đã gửi nhưng chưa di chuyển.”
Bước 1: viết timeline cho khách trước. Liệt kê 5–8 bước người mua hiểu (ví dụ: Order placed, Paid, Packed, Shipped, Out for delivery, Delivered). Viết câu chính xác bạn sẽ hiển thị cho mỗi bước. Giữ bình tĩnh và cụ thể.
Bước 2: định nghĩa loại sự kiện và mapping. Hệ thống của bạn có thể có hàng tá trạng thái nội bộ, nhưng khách chỉ nên thấy ít hơn. Tạo bảng mapping đơn giản như warehouse.picked -> Packed và carrier.in_transit -> Shipped.
Bước 3: lưu sự kiện, sau đó tính view. Lưu mọi sự kiện như bản ghi append-only với order_id, type, occurred_at, và data tùy chọn (như mã carrier hoặc lý do). UI nên sinh từ các sự kiện, không phải từ một trường trạng thái mutable.
Bước 4: trả về API sẵn cho timeline. Response nên dễ dàng cho frontend: các bước (với nhãn), chỉ số bước hiện tại, các timestamp bạn biết, và một thông điệp ngắn.
{
"order_id": "123",
"current_step": 3,
"steps": [
{"key":"placed","label":"Order placed","at":"2026-01-09T10:11:00Z"},
{"key":"paid","label":"Payment confirmed","at":"2026-01-09T10:12:00Z"},
{"key":"packed","label":"Packed","at":"2026-01-09T14:40:00Z"},
{"key":"shipped","label":"Shipped","at":null,"message":"Waiting for carrier scan"}
],
"last_update_at": "2026-01-09T14:40:00Z"
}
Bước 5: giữ UI tươi mà không ồn ào. Với timeline trạng thái đơn hàng, polling mỗi 30–120 giây thường đủ trong giai đoạn vận chuyển tích cực, và ít hơn nhiều khi không có gì thay đổi.
Bước 6: thêm fallback cho dữ liệu trễ. Nếu scan của hãng quá muộn, hiển thị cập nhật cuối cùng và hành động tiếp theo rõ ràng: “Nếu không có cập nhật trước ngày mai, liên hệ hỗ trợ với đơn 123.”
Ví dụ thực tế: khách thấy “Packed” có timestamp, rồi “Shipped: Waiting for carrier scan” cho tới khi carrier.accepted đến. Không cần trả lời tùy chỉnh, chỉ trạng thái trung thực.
Khách đặt mua áo hoodie. Thanh toán ngay, nhưng đóng gói mất hai ngày làm việc. Giao hàng sau đó gặp trì hoãn của hãng. Khách vẫn nên cảm thấy được thông tin mà không cần hỏi hỗ trợ.
Đây là timeline khách thấy, theo ngày (cùng UI, chỉ thêm mục mới):
| Day and time | Status shown | Message in plain language |
|---|---|---|
| Mon 09:12 | Order placed | “We got your order. You will get updates as it moves.” |
| Mon 09:13 | Payment confirmed | “Payment approved. Next: we will prepare your package.” |
| Tue 16:40 | Preparing your order | “We are packing your items. Expected ship date: Wed.” |
| Wed 14:05 | Shipped | “Handed to carrier. Tracking will update as the carrier scans it.” |
| Thu 08:30 | In transit | “On the way. Current estimate: delivery Fri.” |
| Fri 10:10 | Delivery delayed | “The carrier reported a delay due to high volume. New estimate: Sat. No action needed right now.” |
| Sat 12:22 | Out for delivery | “With your local driver. It usually arrives today.” |
| Sat 18:05 | Delivered | “Delivered. If you cannot find it, check around your entrance and with neighbors.” |
Chú ý điều thay đổi vào thứ Sáu: bạn không tạo luồng hoàn toàn mới. Bạn thêm một sự kiện (ví dụ, shipment_delayed) và map nó thành thông điệp rõ ràng cho khách. Các bước cũ giữ nguyên, UI ổn định.
Tùy chọn liên hệ chỉ nên xuất hiện sau ngưỡng rõ ràng, để người ta không click vì lo lắng. Một quy tắc đơn giản hiệu quả: hiển thị “Contact us” nếu đơn đã quá 24 giờ so với ước tính giao hàng mới nhất, hoặc nếu trạng thái không đổi 72 giờ trong “In transit.” Trước đó, hiển thị lời trấn an và ước tính hiện tại.
Một timeline tốt giảm các câu hỏi “đơn hàng của tôi đâu?” Một timeline tệ tạo câu hỏi mới vì UI và dữ liệu không khớp với trải nghiệm thực tế.
Nếu bạn lộ mọi bước nội bộ, khách bị rối. Mười lăm micro-status như “picked”, “sorted”, “labeled”, “staged”, và “queued” trông rối nhưng không trả lời hai câu hỏi thật sự: “Khi nào sẽ đến?” và “Có gì sai không?” Giữ timeline công khai ở vài mốc rõ ràng, phần còn lại để nội bộ.
Ghi đè trạng thái hiện tại mà không lưu sự kiện dễ tạo mâu thuẫn. Khách thấy “Shipped”, refresh sau đó bỗng thành “Preparing” vì retry hoặc sửa thủ công. Lưu lịch sử đánh dấu thời gian và dựng trạng thái hiện tại từ lịch sử đó.
Các cạm bẫy phổ biến:
Vì sao nó quan trọng. Một món gửi hôm nay và món thứ hai backorder. Nếu bạn chỉ hiển thị “Shipped”, khách mong mọi thứ. Nếu bạn hiển thị “Partially shipped (1 of 2)” và giữ “Delivered” theo từng kiện, timeline đáng tin hơn.
Đối xử nhãn timeline như copy sản phẩm, không phải trường database. Viết cho con người, rồi map sự kiện nội bộ sang vài bước thân thiện đó.
Trước khi phát hành timeline trạng thái cho mọi khách, làm một lượt từ góc nhìn khách: “Nếu tôi thấy cái này lúc 11pm, tôi còn mở ticket không?” Mục tiêu là rõ ràng mà không làm khách nghĩ có vấn đề.
Bắt đầu với thời gian và kỳ vọng. Mỗi đơn nên hiển thị thời gian cập nhật cuối và gợi ý bước tiếp theo thường thấy. “Cập nhật lần cuối 2 giờ trước” cùng “Tiếp theo: chờ lấy hàng của hãng” giảm cảm giác bị kẹt.
Checklist trước khi ra mắt ngắn gọn:
Sau đó, test vài đơn lộn xộn cố ý. Chọn một đơn chia nhiều kiện, một đơn hãng scan muộn, và một đơn thử giao thất bại. Nếu timeline đọc như một bí ẩn, khách sẽ cần người giải thích.
Cuối cùng, xác nhận đội support thấy cùng view với khách, bao gồm timestamp và thông điệp ngoại lệ. Khi hai bên đọc cùng một câu chuyện, câu trả lời ngắn hơn, và nhiều ticket không bao giờ được viết.
Bắt đầu nhỏ. Một timeline trạng thái tối thiểu trả lời các câu hỏi hàng đầu (Bạn nhận được đơn chứ? Khi nào gửi? Đang ở đâu?) tốt hơn một tracker phức tạp đầy edge case. Ra mắt các trạng thái cốt lõi trước, sau đó thêm chi tiết khi phản hồi thực tế chứng minh có ích.
Lên kế hoạch rollout cẩn trọng để học hỏi mà không làm mất niềm tin. Chọn một lát nhỏ đơn hàng (ví dụ một kho, một phương thức vận chuyển, hoặc một quốc gia) và quan sát thay đổi về volume ticket và hành vi khách trước khi mở rộng.
Đừng đoán. Instrument timeline để xem nó có thực hiện nhiệm vụ hay không. So sánh các câu hỏi “Đơn hàng của tôi đâu?” trước và sau release, và theo dõi màn trạng thái nào khách xem ngay trước khi họ liên hệ hỗ trợ.
Một tập chỉ số khởi đầu đơn giản:
Phần lớn khối lượng hỗ trợ đến từ ngoại lệ: label created nhưng không có scan, trì hoãn thời tiết, vấn đề địa chỉ, split shipment. Chuẩn bị mẫu thông điệp cho các trường hợp này để đội bạn trả lời cùng một cách mỗi lần. Giữ ngắn, rõ, và theo hành động: chuyện gì xảy ra, bạn đang làm gì, khách mong đợi gì tiếp theo.
Nếu bạn đang prototype UI và API dựa trên event, một nền tảng vibe-coding như Koder.ai (koder.ai) có thể là cách thực tế để sinh bản đầu từ một cuộc trò chuyện ngắn, rồi tinh chỉnh copy và mapping khi học từ ticket thực tế.
Mở rộng dần từng bước. Khi rollout trên mẫu cho thấy ticket giảm (và không có nhầm lẫn mới), mở rộng cho nhiều loại đơn và carrier. Giữ cadence review định kỳ: vài tuần một lần, quét các chủ đề ticket mới và quyết định liệu sửa là chỉnh văn bản, mẫu ngoại lệ mới, hay thêm sự kiện cung cấp dữ liệu cho timeline.
Ưu tiên một timeline nhỏ, dễ đọc trả lời ba câu hỏi: đang xảy ra gì, khi nào thay đổi lần cuối, và tiếp theo là gì. Hầu hết ticket đến từ sự không chắc chắn, nên timeline phải giảm suy đoán (ví dụ: “Chờ scan của hãng vận chuyển” thay vì chỉ “Đang xử lý”).
Dùng một bộ trạng thái ổn định mà phần lớn người mua hiểu:\n\n- Placed\n- Payment confirmed\n- Preparing (hoặc Packed)\n- Shipped\n- Out for delivery\n- Delivered\n\nCũng bao gồm kết thúc rõ ràng như Canceled và Returned. Giữ các bước nội bộ (pick/pack/batch/retry) ngoài tầm nhìn khách.
Hiển thị dấu thời gian cho mỗi bước và một dòng “Cập nhật lần cuối” rõ ràng. Nếu bạn bán quốc tế, kèm theo múi giờ (hoặc làm cho nó không mơ hồ). Một dấu thời gian biến “không có gì xảy ra” thành “điều này vừa xảy ra”, tránh các yêu cầu theo dõi.
Xử lý nó như một ngoại lệ hiển thị, không phải tiến trình bình thường. Mẫu thông điệp mặc định tốt là:\n\n- Biết được gì: “Hãng vận chuyển chưa scan kiện hàng.”\n- Tiếp theo là gì: “Cập nhật tiếp theo sẽ là sau khi được lấy.”\n- Khi nào cần can thiệp: “Nếu không có scan trước 5 PM ngày mai, chúng tôi sẽ điều tra.”\n\nĐừng ngụ ý có chuyển động nếu bạn không thể chứng minh nó.
Tách sự kiện (facts) ra khỏi timeline cho khách (states). Lưu sự kiện nội bộ chi tiết, sau đó map chúng vào vài bước thân thiện với khách. Điều này giữ giao diện ổn định ngay cả khi quy trình kho thay đổi.
Lưu các sự kiện như các fact append-only (ví dụ: label_created, picked_up, out_for_delivery, delivered) với:\n\n- \n- \n- \n- (system/warehouse/carrier/support)\n- tùy chọn\n\nSau đó dựng timeline từ lịch sử sự kiện thay vì một trường trạng thái mutable duy nhất.
Dùng idempotency. Gán cho mỗi cập nhật đến một khoá duy nhất ổn định (ID sự kiện của hãng vận chuyển, hoặc hash của các trường chính) và bỏ qua bản sao. Điều này ngăn không cho các mục lặp lại như “Out for delivery” xuất hiện hai lần khi hãng gửi lại cập nhật.
Hiển thị ước tính tốt nhất bạn biết, và thành thật về những gì bạn đang chờ. Nếu bạn chưa có ETA, nói rõ (ví dụ: “Chúng tôi sẽ hiển thị ETA sau scan đầu tiên của hãng vận chuyển”). Độ chính xác còn quan trọng hơn lời hứa lạc quan dễ thất hứa.
Làm cho ngoại lệ rõ ràng và hướng hành động. Các ngoại lệ phổ biến:\n\n- Delay (với ước tính mới, nếu có)\n- Address issue (với “Xác nhận địa chỉ”)\n- Delivery attempt failed (với thông tin lần thử tiếp theo)\n\nNgoại lệ nên nổi bật hơn tiến trình bình thường và nói rõ khách cần làm gì, nếu có.
Một quy tắc thực tế là chỉ hiển thị tuỳ chọn liên hệ sau một ngưỡng rõ ràng, ví dụ:\n\n- 24 giờ quá so với ước tính giao hàng mới nhất, hoặc\n- 72 giờ không thay đổi khi trạng thái là “In transit”\n\nTrước ngưỡng đó, đưa ra lời trấn an cùng cập nhật lần cuối và bước tiếp theo để tránh khách bấm liên hệ do lo lắng.
order_idevent_typehappened_atactordetails