Inventory

Get Nhanh.vn orders and inventory into Google Sheets automatically

Authorize your Nhanh.vn account on Quantri360 Partner, choose "Nhanh.vn orders (processed)", a Google Sheets destination and a run schedule to get a self-updating order table. Inventory per warehouse comes from the product/list v3 API through 360, run from n8n or Apps Script.

The problem: why do Nhanh.vn order and inventory numbers in Sheets so often drift?

They drift because a manual Nhanh.vn report export is a snapshot, while orders and stock change by the minute across many stores. The person filtering by hand also has to decide which orders belong to Facebook and which to Website, and everyone does it differently.

A familiar situation: the shop owner asks "how much did Facebook sell this week, and how many size M shirts are left in the Hanoi warehouse?" Staff spend half a morning exporting two files, filtering and pasting into Sheets. By the time it is sent, the stock has changed.

Two jobs need to be kept apart: an order table by sales channel, and an inventory table by warehouse. Both should come straight from the Nhanh.vn API.

Thinking leads the way: what data do you need, and how do you read it correctly?

Nhanh.vn orders and inventory come from different APIs, and each API has a few fields that are easy to misread. The table below matches questions to sources.

Question Nhanh v3 API Which field to read
Which channel sold how much? order/list saleChannel, order source, status
How much stock is left in each warehouse? product/list the per-warehouse inventory object of each product
Which store is a warehouse ID in the inventory? business/depot warehouse name and address
How much did retail stores collect? bill/list retail bills, stock in and out

Three traps that have produced wrong reports:

  • saleChannel = 1 means "Admin", not Facebook. These are orders staff create by hand in Nhanh. They may come from Facebook, Shopee chat, customer care or Website, and you tell them apart by order source. Treating every Admin order as Facebook inflates the Facebook channel. The processed table from 360 has a channel column classified by the brand's channel configuration; orders that cannot be classified stay blank, with no guessing.
  • The shipping fee is a quote until handover. carrier.shipFee is calculated when the waybill is created. It only becomes a real cost once the order has been handed to the carrier (sendCarrierAt > 0). A "Thành công" (Successful) order with a waybill number may still never have reached the carrier.
  • Nhanh.vn has no "returned order" in the marketplace sense. The statuses Xác nhận hoàn (Return confirmed), Đang chuyển hoàn (Returning), Đã chuyển hoàn (Returned to sender) and Thất bại (Failed) all mean goods going back to the seller. The 360 table records them all as delivery_failed. Do not add them to the return rate when comparing with Shopee or TikTok Shop.

AI speeds it up: how long does setup take, and what are the steps?

The order table takes about 15 minutes and needs no code. The inventory table needs a small workflow, about 30 minutes if you use n8n.

Scheduled order table

  1. Sign up at Quantri360 Partner and turn on two-factor authentication.
  2. Go to the Nhanh.vn platform and authorize your Nhanh business.
  3. Destinations → Google Sheets → sign in to Google; leave the spreadsheet field blank and the system creates a new sheet.
  4. Connections: Nhanh.vn → "Đơn hàng Nhanh.vn (đã xử lý)" (Nhanh.vn orders, processed) → Sheets destination → an hourly, daily or weekly schedule. You can filter by status.

Each row is one product in an order, including channel, status, province, carrier, waybill number, price and discount. The automatic schedule is a paid add-on: see the pricing.

Inventory table by warehouse

The ready-made connection type "Tồn kho Nhanh.vn" (Nhanh.vn inventory) is currently "Coming soon". For now, pull inventory with the Nhanh API through 360:

curl -s -X POST "https://partner.quantri360.com/v1/nhanh/v3.0/product/list" \
  -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
  -d '{"paginator":{"size":50}}'

Each product comes with an inventory object holding stock per warehouse. In n8n: schedule at 07:00 → HTTP Request calling product/list, looping on paginator.next → split by product and warehouse → write to Google Sheets (clear the old tab and rewrite so it always holds the latest numbers). Call business/depot once to turn warehouse IDs into store names. A Nhanh order workflow template is available under Docs after you log in; for inventory, change its HTTP node to product/list.

Use AI to read the table. Put the two tabs side by side and ask ChatGPT or Claude:

"The Orders tab holds Nhanh orders for the last 14 days, and the Stock tab holds current stock by warehouse. For each product code and warehouse, calculate days of stock remaining = stock ÷ (quantity sold in 14 days ÷ 14). List the codes under 7 days. Skip rows with status = delivery_failed or cancelled."

You settle the definition of "sold" in your question. AI just does the calculation quickly and consistently.

Measurable results

Record the three metrics below over the first two weeks, compared with the old way. You need no outside tools, only the table and the run log.

  • Staff hours: the time spent exporting, filtering and pasting two files each week, before and after having an automatic table.
  • Inventory latency: the time of the latest workflow run compared with when you read the table. Running daily at 07:00, the numbers are at most one day old; if you need them closer, run hourly.
  • Discrepancies found: the number of Admin orders previously counted as Facebook, the number of orders with a quoted shipping fee not yet handed over, and the number of failed delivery rows once called returns.

If you also sell on marketplaces, see Shopee orders in Google Sheets. To send a Zalo message when a Nhanh order changes status, see ZNS by order status.

Read more: business process automation, the overview article for this topic.

Quantri360
Written by Quantri360 · Management & data consulting team

Building Quantri360, a multichannel sales risk management platform; writing about managing with real data and applying AI to operations.

Updated
Message us on Messenger