Bài toán: vì sao file xuất TikTok Shop khó dùng để quản trị?
File xuất tay khó dùng vì nó trộn nhiều tầng thông tin và thiếu nghĩa thống nhất. Một đơn có nhiều sản phẩm, mỗi sản phẩm có chiết khấu riêng, voucher của shop và của sàn đi chung một cột. Trạng thái "Đã hủy" gồm cả khách hủy lẫn giao không thành.
Shop chạy livestream thường có vài trăm đến vài nghìn đơn mỗi tuần. Nhân viên mất buổi sáng để tải file, gộp, sửa cột. Đến chiều thì số đã cũ, vì đơn vẫn đang giao.
Cần một bảng mà mỗi dòng có nghĩa rõ ràng, cập nhật tự động, và người đọc không phải tự đoán cột nào là tiền gì.
Tư duy dẫn đường: cần dữ liệu nào, đọc thế nào cho đúng?
Dữ liệu đơn TikTok Shop nằm ở ba API khác nhau: thông tin đơn, chi tiết giá theo dòng và yêu cầu trả hàng. Loại "Đơn hàng đã xử lý" của Quantri360 gọi đủ cả ba rồi ghép về một bảng phẳng, mỗi dòng một SKU.
| Câu hỏi | Cột trên bảng | Nguồn TikTok |
|---|---|---|
| Đơn đang ở bước nào? | status (created, paid, shipping, delivered, delivery_failed, cancelled, returned, completed) và platform_status gốc |
orders |
| Khách trả bao nhiêu cho từng SKU? | item_unit_sale_price, item_line_discount, item_line_voucher |
price_detail |
| Đơn nào bị trả lại? | status = returned, returns_json |
returns/search |
| Giao đi đâu, đơn vị nào? | ship_province, ship_carrier, ship_tracking_code |
orders |
Ba bẫy cần biết trước khi đọc số:
- Giao thất bại nằm trong đơn hủy. TikTok trả
CANCELLEDcho cả đơn khách hủy lẫn đơn giao không thành; chỉ lý do hủy ("Giao gói hàng thất bại") phân biệt hai loại. Bảng của 360 đã tách thànhdelivery_failedvàcancelled. Đơn hoàn thật là khách đã nhận hàng rồi trả, có yêu cầu trả hàng đi kèm. - Chiết khấu phải khớp theo mã dòng. Hai SKU cùng giá trong một đơn rất dễ bị gán nhầm chiết khấu nếu ghép theo giá. Bảng dùng
item_line_id(mã dòng TikTok cấp) làm khóa, không dùng số thứ tự dòng. - Phí sàn để trống là "chưa biết", không phải 0. Phí hoa hồng, phí giao dịch và tiền quyết toán chỉ có sau khi TikTok quyết toán, ở API tài chính. Ô
platform_fee,escrow_amounttrống nghĩa là chưa có số. Bảnstatement_transactionsđời 202309 đã ngừng trả dữ liệu; dùng bản 202501.
AI bứt tốc: thiết lập trong bao lâu, gồm những bước nào?
Thiết lập mất khoảng 15 phút, không cần viết code. Bạn chỉ cần quyền chủ gian hàng TikTok Shop và một tài khoản Google.
Lưu ý: Các bước tự đẩy về Google Sheets dưới đây thuộc Auto Data, hiện đang tạm đóng và chưa nhận đăng ký. Trong lúc chờ, bạn dùng cách gọi API ở cuối mục này.
- Tạo tài khoản ở trang đăng ký Partner, bật xác thực hai lớp.
- Vào nền tảng TikTok Shop và ủy quyền gian hàng. Brand nhiều gian hàng thì mỗi gian ủy quyền một lần.
- Đích nhận → Google Sheets → đăng nhập Google. Để trống ô bảng tính, hệ thống tự tạo bảng tính mới; tab mặc định tên
Orders, dòng đầu là tiêu đề cột. - Kết nối: TikTok Shop → "Đơn hàng đã xử lý" → đích vừa tạo → cách nhận. Chọn lịch mỗi giờ, hằng ngày lúc H:00 hoặc hằng tuần; hoặc chạy tay khi cần.
- Lọc thêm nếu muốn: chỉ một số gian hàng, chỉ một số trạng thái (ví dụ chỉ
deliveredvàreturnedcho kế toán).
Lịch tự động và nhận realtime là phần mua thêm, chi tiết ở bảng giá. Realtime (đẩy ngay khi TikTok báo đổi trạng thái, gom lô 10–60 giây) hiện dành cho brand chỉ dùng sản phẩm API.
Thích tự lập trình? Gọi API đơn của TikTok Shop qua 360, cách này dùng được ngay:
curl -s -X POST "https://partner.quantri360.com/v1/tiktok/order/202309/orders/search?page_size=50&platform_shop_id=<mã gian hàng>" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"update_time_ge":1760893200,"update_time_lt":1760979600}'
Kết quả là dữ liệu gốc của TikTok: danh sách đơn kèm next_page_token để lấy trang tiếp theo. Xem chi tiết tối đa 50 đơn một lần bằng GET /v1/tiktok/order/202309/orders?ids=<mã đơn>.
Dùng AI đọc bảng. Sau một phiên livestream, chép các dòng của ngày đó cho ChatGPT hoặc Claude:
"Đây là đơn TikTok Shop ngày 20/10, mỗi dòng một SKU. Tính theo item_parent_sku: số lượng bán, tỉ lệ delivery_failed, tỉ lệ returned. Không gộp delivery_failed vào cancelled. Mã nào có tỉ lệ giao thất bại trên 15%?"
AI làm phép tính nhanh. Việc chọn định nghĩa nào đúng vẫn thuộc về người quản lý.
Kết quả đo được
Đánh giá bằng chính dữ liệu trong bảng và nhật ký chạy, không cần số liệu bên ngoài. Bốn chỉ số dưới đây đủ để biết kết nối có đáng duy trì không.
- Giờ công: thời gian tải và gộp file mỗi tuần trước khi kết nối, so với sau khi bảng tự chạy.
- Độ trễ: cột
fetched_atcho biết thời điểm 360 lấy đơn từ TikTok; so với giờ bạn mở bảng. - Sai lệch phát hiện: số đơn
delivery_failedtrước đây nằm trong "đã hủy", và số dòng có chiết khấu khác giữa file tay và bảng mới. - Độ phủ phí: tỉ lệ dòng đã có
escrow_amount. Dòng còn trống là đơn chưa quyết toán, cần theo dõi tiếp.
Google Sheets nối thêm dòng mỗi lần chạy, không ghi đè. Khi tổng hợp, giữ dòng có fetched_at mới nhất theo order_id + item_line_id. Muốn ghi đè tự động, đổ vào MySQL / PostgreSQL / SQL Server. Bán cả Shopee thì xem bảng đơn Shopee trên Google Sheets.
API liên quan
- Tìm đơn theo cửa sổ thời gian: lấy danh sách đơn tạo hoặc cập nhật trong khoảng, phân trang bằng
page_token. - Chi tiết đơn: thông tin đơn, sản phẩm, vận chuyển, lý do hủy.
- Chi tiết giá theo đơn: chiết khấu, voucher shop và sàn theo từng dòng.
- Tìm yêu cầu trả hàng: xác định đơn hoàn thật.
- Giao dịch quyết toán của đơn: phí sàn và tiền thực nhận sau quyết toán.
Đọc thêm: tự động hóa quy trình kinh doanh — bài tổng quan của chủ đề này.