The problem: why are TikTok Shop export files hard to use for management?
Manual export files are hard to use because they mix several layers of information and lack consistent meaning. One order has many products, each product has its own discount, and shop vouchers and marketplace vouchers share a column. The "Đã hủy" (Cancelled) status covers both customer cancellations and failed deliveries.
Shops running livestreams often have a few hundred to a few thousand orders each week. Staff spend the morning downloading files, merging them and fixing columns. By the afternoon the numbers are old, because orders are still being delivered.
You need a table where each row has a clear meaning, that updates automatically, and where the reader does not have to guess which column holds which money.
Thinking leads the way: what data do you need, and how do you read it correctly?
TikTok Shop order data lives in three different APIs: order information, line-level price details, and return requests. The Quantri360 "Đơn hàng đã xử lý" (Processed orders) type calls all three and combines them into one flat table, one SKU per row.
| Question | Table column | TikTok source |
|---|---|---|
| What stage is the order at? | status (created, paid, shipping, delivered, delivery_failed, cancelled, returned, completed) and the original platform_status |
orders |
| How much did the customer pay for each SKU? | item_unit_sale_price, item_line_discount, item_line_voucher |
price_detail |
| Which orders were returned? | status = returned, returns_json |
returns/search |
| Shipped where, by which carrier? | ship_province, ship_carrier, ship_tracking_code |
orders |
Three traps to know before reading the numbers:
- Failed deliveries sit inside cancelled orders. TikTok returns
CANCELLEDfor both customer-cancelled orders and failed deliveries; only the cancellation reason ("Giao gói hàng thất bại", package delivery failed) separates the two. The 360 table already splits them intodelivery_failedandcancelled. A truly returned order is one the customer received and then sent back, with a return request attached. - Discounts must match by line ID. Two SKUs at the same price in one order easily get the wrong discount if matched by price. The table uses
item_line_id(the line ID issued by TikTok) as the key, not the row sequence number. - A blank marketplace fee means "unknown", not 0. Commission, transaction fees and settlement amounts only exist after TikTok settles, in the finance API. Blank
platform_feeandescrow_amountcells mean there is no number yet. The 202309 version ofstatement_transactionshas stopped returning data; use version 202501.
AI speeds it up: how long does setup take, and what are the steps?
Setup takes about 15 minutes with no code. You only need TikTok Shop owner permission and a Google account.
Note: The steps below that send data to Google Sheets automatically are part of Auto Data, which is temporarily closed and not accepting sign-ups. In the meantime, use the API method at the end of this section.
- Create an account at the Partner sign-up page and turn on two-factor authentication.
- Go to the TikTok Shop platform and authorize your shop. A brand with many shops authorizes each one once.
- Destinations → Google Sheets → sign in to Google. Leave the spreadsheet field blank and the system creates a new spreadsheet; the default tab is named
Orders, and the first row holds the column headers. - Connections: TikTok Shop → "Đơn hàng đã xử lý" (Processed orders) → the destination you just created → delivery method. Choose a schedule of hourly, daily at H:00 or weekly, or run it by hand when needed.
- Add filters if you want: only certain shops, only certain statuses (for example only
deliveredandreturnedfor accounting).
The automatic schedule and realtime delivery are paid add-ons, with details in the pricing. Realtime (pushed as soon as TikTok reports a status change, batched every 10–60 seconds) is currently for brands using only the API product.
Prefer to program it yourself? Call the TikTok Shop order API through 360, which works today:
curl -s -X POST "https://partner.quantri360.com/v1/tiktok/order/202309/orders/search?page_size=50&platform_shop_id=<shop_id>" \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"update_time_ge":1760893200,"update_time_lt":1760979600}'
The result is TikTok's original data: a list of orders with next_page_token for the next page. Get details for up to 50 orders at a time with GET /v1/tiktok/order/202309/orders?ids=<order_id>.
Use AI to read the table. After a livestream session, copy that day's rows into ChatGPT or Claude:
"These are TikTok Shop orders for October 20, one SKU per row. Calculate by item_parent_sku: quantity sold, delivery_failed rate, returned rate. Do not merge delivery_failed into cancelled. Which codes have a failed delivery rate above 15%?"
AI does the calculation quickly. Choosing the right definition is still up to the manager.
Measurable results
Evaluate using the data in the table and the run log itself, with no outside numbers needed. The four metrics below are enough to tell whether the connection is worth keeping.
- Staff hours: the time spent downloading and merging files each week before connecting, compared with after the table runs on its own.
- Latency: the
fetched_atcolumn shows when 360 pulled the order from TikTok; compare it with the time you open the table. - Discrepancies found: the number of
delivery_failedorders previously inside "cancelled", and the number of rows with different discounts between the manual file and the new table. - Fee coverage: the share of rows that have
escrow_amount. Rows still blank are unsettled orders that need following up.
Google Sheets appends rows on each run and does not overwrite. When aggregating, keep the row with the latest fetched_at per order_id + item_line_id. For automatic overwrites, load into MySQL / PostgreSQL / SQL Server. If you also sell on Shopee, see the Shopee order table in Google Sheets.
Related APIs
- Search orders by time window: gets orders created or updated within a range, paginated with
page_token. - Order details: order information, products, shipping, cancellation reason.
- Order price details: discounts, shop and marketplace vouchers per line.
- Search return requests: identifies truly returned orders.
- Order statement transactions: marketplace fees and money actually received after settlement.
Read more: business process automation, the overview article for this topic.