跳至主要內容

網店與市集

物流 Tracking 自動寫回訂單,不用人手 Copy & Paste

一個追蹤編號同時存在於三個地方——物流商的系統、一張試算表,以及最終那張訂單——然後由人手在三者之間搬來搬去。「我件貨去到邊」的查詢就是這樣來的:不是因為件貨遲了,而是因為那張訂單的狀態兩日之前就停止更新。物流狀態是要主動查詢的,不會自己推送過來,所以這裡的形狀是輪詢;而真正重要的一步,是把結果寫回客戶看得到的地方。

觸發
兩個
執行頻率
每 30 分鐘
工具
4 件
需要 durable execution
不需要

流程

上面那條在出貨一刻把追蹤編號記低一次,下面那條定時向物流商查詢,只有狀態真的變過才寫回去。

▶ 平台

訂單出貨

Shopify Admin API

編排

記下追蹤編號

n8n · Make

資料

寫入出貨紀錄

Sheets · Airtable

▶ 編排

每 30 分鐘

n8n 排程

平台

向物流商查詢

DHL Shipment Tracking API

編排

狀態是否有變?

n8n IF

平台

寫回訂單

Shopify Admin API

編排

維持原紀錄

—

逐步拆解

  1. 01

    訂單出貨

    Shopify Admin API

    建立出貨紀錄時 webhook 觸發。把它當成「追蹤編號開始存在」的一刻,而不是它的最終版本——那個編號有時一小時後會被更正。

  2. 02

    記下追蹤編號

    n8n · Make

    把編號連同它屬於哪一間物流商、來自哪一張訂單一併存起。物流商同編號一樣重要:不知道要向誰查,同一串字元本身沒有意義。

  3. 03

    寫入出貨紀錄

    Sheets · Airtable

    一次出貨一行,記住最後見到的狀態,以及見到的時間。第二欄的作用,是防止流程就同一個狀態再通知客戶一次。

  4. 04

    每 30 分鐘

    n8n 排程

    要主動查,不能等——物流狀態本身就是查詢式的。查詢頻率按物流商的配額來定,而不是按你希望數據有多新來定;配額才是真正的限制,而且比大部分人以為的細。

  5. 05

    向物流商查詢

    DHL Shipment Tracking API

    只查仍在運送中的出貨。已簽收的不會再變,繼續查它們只會消耗配額,而那些配額你會想留給仍在移動的包裹。

  6. 06

    狀態是否有變?

    n8n IF

    同紀錄上最後一個狀態比較,不要同一張固定清單比較。物流商重複回報同一次掃描,不應該被讀成有進展,否則客戶會收到兩封一樣的郵件,然後對下一封信心減一分。

  7. 07

    寫回訂單

    Shopify Admin API

    更新出貨紀錄上的物流資訊,並且刻意決定這一次變動值不值得發一封信。中途每一次掃描都不值得;出倉、派送中、派送失敗,就值得。

平台不容許的事

這個流程頭上有兩重上限:物流商肯回答你的頻率,以及寫回去之後網店會怎樣處理那個答案。

  • fulfillmentTrackingInfoUpdate 的說明是「Updates tracking information for a fulfillment, including the carrier name, tracking numbers, and tracking URLs.」開啟 notifyCustomer 之後,「customers receive shipping update emails with tracking details and receive notifications about future updates to the fulfillment」;欄位不填則不會發出任何通知。客戶會不會知道這一次掃描,是流程必須刻意決定的事。

    Shopify Admin GraphQL API — fulfillmentTrackingInfoUpdate
  • 在 company 欄填入受支援的物流商名稱,Shopify 會自動生成追蹤網址。單件包裹用 number 同 url;多件包裹用 numbers 同 urls 陣列——所以拆成多件的一張訂單,是一次呼叫帶多個編號,不是多次呼叫。

    Shopify Admin GraphQL API — fulfillmentTrackingInfoUpdate
  • DHL 追蹤的初始配額是「250 calls per day, with a maximum of 1 call every 5 seconds」,而文件本身形容它「intended for initial development and is not suitable for production use」;超出之後 API 回 429。幾百件在途包裹的每半小時輪詢,會在它成為一個真正在用的流程之前就先撞爆。

    DHL API — Shipment Tracking (Unified)
  • 各家物流商的批次上限不同,而批次上限決定你的輪詢設計。FedEx 文件寫明應該「Limit the number of tracking numbers in a single-track request to 30」——所以一千件在途出貨,每一輪、每一間物流商至少三十四次呼叫。

    FedEx Developer Portal — Track API

什麼情況不值得做

以下三種情況,維護成本會高於人手複製的代價。

  • 物流商本身已經把狀態寫回你的網店。既有整合已經存在的話,這個流程就是同一個欄位的第二個寫入者,兩者遲早會在客戶面前互相矛盾。

  • 你每日只寄幾件貨,而且只用一間物流商。貼一個追蹤編號只需要幾秒;一個帶配額、帶物流商對應、帶通知規則的輪詢迴圈,不止幾秒。

  • 未有人決定哪些狀態值得發通知。沒有這個決定,流程預設就是每一次掃描都通知,客戶於是學會略過你的物流郵件——那個代價,比從來沒有發過還要高。

延伸閱讀

聯絡我們

這些流程,你真正應該做哪一條?

我們每星期都在為香港的營運團隊跑這些流程。告訴我們哪個環節正在耗你的時間,我們會告訴你自動化划不划得來。

開始對談