DOCS

建立單份寄件

建立單份寄件

CreateDeclarationShipment GraphQL 工作流在一次往返中將日本郵政寄件從原始輸入轉換為可列印的標籤。

CreateDeclarationShipment 將六個 *Workflow 變異鏈接到單個 GraphQL 請求中。每一步都基於前面步驟提供的資料,所有步驟一起提交,以便在一次往返中建立完整的寄件:

partyCreateWorkflow            → 描述原始地點和目的地方
itemCreateWorkflow             → 描述商品明細項
cartonsCreateWorkflow          → 描述實物包裝
shipmentRatingCreateWorkflow   → 記錄運輸商報價
landedCostCalculateWorkflow    → 計算關稅 / 稅項 / 費用
shipmentCreateWorkflow         → 建立寄件 + 標籤

Workflow 變異的設計可連鎖:您無需將 ID 從一個步驟引入下一個步驟,也無需為每個步驟發送單獨的請求。提交整份文件,取回最終的 Shipment

當最終步驟上的 serviceLevel 是日本郵政服務級別(japan_post.*)時,Zonos 代表您使用已驗證帳戶的延期支付號碼呼叫日本郵政標籤 API(代碼 52),產生標籤和追蹤號碼,建立聲明 ID,並將它們連結 — 全部在最終 shipmentCreateWorkflow 步驟中進行。

為什麼只用一個變異? 每個步驟都依賴於前一個步驟(已登陸成本需要商品 + 方面;標籤需要所有內容)。將它們捆綁到單個 GraphQL 文件中可保持資料一致性,避免五次額外的往返。

端點和身份驗證 

此鏈中的請求都使用相同的端點。您在標題中傳入的內容取決於您的設定 — 選擇您的標籤。

URL:

https://api.zonos.com/graphql

標題:

您在自己的已驗證帳戶下運送自己的訂單。以自己的身份進行身份驗證 — 無需帳戶金鑰。

credentialToken: {{YOUR_API_TOKEN}}

尋找位置: Zonos 儀表板 → 設定整合帳戶金鑰部分。複製API 金鑰行上的權杖;那就是您的 credentialToken

範例請求 

一個完整的 CreateDeclarationShipment 請求,您可以複製和調整 — 變異、其變數和回應 — 針對運送至美國的單個日本郵政包裹 DDP。下方逐步部分會逐項分析每個輸入。

1mutation CreateDeclarationShipment(
2$partyInput: [PartyCreateWorkflowInput!]!
3$itemInput: [ItemCreateWorkflowInput!]!
4$cartonInput: [CartonCreateWorkflowInput!]!
5$shipmentRatingInput: ShipmentRatingCreateWorkflowInput!
6$landedCostInput: LandedCostWorkFlowInput!
7$shipmentInput: ShipmentCreateWorkflowInput!
8) {
9 partyCreateWorkflow(input: $partyInput) {
10 id
11 type
12 location {
13 line1
14 locality
15 postalCode
16 countryCode
17 }
18 }
19 itemCreateWorkflow(input: $itemInput) {
20 id
21 name
22 sku
23 amount
24 currencyCode
25 hsCode
26 }
27 cartonsCreateWorkflow(input: $cartonInput) {
28 id
29 length
30 width
31 height
32 dimensionalUnit
33 weight
34 weightUnit
35 }
36 shipmentRatingCreateWorkflow(input: $shipmentRatingInput) {
37 id
38 amount
39 }
40 landedCostCalculateWorkflow(input: $landedCostInput) {
41 id
42 method
43 currencyCode
44 amountSubtotals {
45 duties
46 taxes
47 fees
48 shipping
49 landedCostTotal
50 }
51 }
52 shipmentCreateWorkflow(input: $shipmentInput) {
53 id
54 trackingDetails {
55 number
56 }
57 shipmentCartons {
58 label {
59 url
60 }
61 }
62 }
63}

逐步說明 

下方每個表格上的狀態欄使用這些術語:

  • 必需 — 無需請求將失敗。
  • 標籤必需 — GraphQL 架構中為選擇性,但產生有效的日本郵政美國標籤所需。
  • 條件式 — 取決於另一個欄位而需要(內聯註明)。
  • 建議 — 選擇性,但能推動準確的關稅和稅項。
  • 選擇性 — 不需要。

1. partyCreateWorkflow

建立涉及寄件的 — 至少 ORIGIN(寄件從哪裡寄出)和 DESTINATION(買家 / 收件人)。

欄位狀態註記
type必需ORIGINDESTINATIONRETURN 等。
location.countryCode必需ISO-2 國家代碼。
location.line1localityadministrativeAreaCodepostalCode標籤必需有效標籤所需的地址欄位。
person.firstNamelastNamephone標籤必需有效標籤所需的聯繫詳情。
person.companyNameemail選擇性

範例負載:

[
  { "type": "DESTINATION", "location": { "countryCode": "US" }, "person": {} },
  { "type": "ORIGIN", "location": { "countryCode": "JP" }, "person": {} }
]

回應會傳回已建立的 Party ID 和已解決的地址欄位。

2. itemCreateWorkflow

建立組成寄件的商品明細項。這些是將出現在商業發票上且會推動已登陸成本計算的 SKU。

欄位狀態註記
currencyCode必需單位價格的貨幣。
quantity必需此商品的單位數量。
amount條件式單位價格(非總計)。除非提供 totalAmount,否則必需。
totalAmount選擇性amount 的替代品;amount 源自 totalAmount / quantity
hsCode建議協調制度關稅代碼。推動關稅率。
countryOfOrigin建議製造商品的 ISO-2 代碼。推動關稅 / FTA。
namedescription建議面向客戶的產品名稱 + 說明。
customsDescription選擇性海關說明覆蓋。
skuproductId選擇性您的內部識別碼。
measurements選擇性每單位重量 / 尺寸。

HS 代碼、原產地國和金額是在步驟 5 中影響關稅/稅項結果最多的三個欄位。

3. cartonsCreateWorkflow

建立實物包裝 — 將容納商品的盒子、聚酯膜或信封。

欄位狀態註記
dimensionalUnit必需INCHCENTIMETER
weightweightUnit標籤必需日本郵政需要包裝重量。
lengthwidthheight選擇性外部尺寸。
type選擇性包裝風格(盒子、聚酯膜、信封)。預設為 PACKAGE

每個紙箱在步驟 6 的運輸商標籤上變成一個包裹。多個紙箱 → 多件寄件,每個紙箱有一個追蹤號碼。

4. shipmentRatingCreateWorkflow

記錄商家向買家收取的費率報價

欄位狀態註記
amount必需買家支付的運送費用。如免運費傳入 0
currencyCode必需amount 的貨幣。
serviceLevelCode必需運輸商服務代碼(例如 japan_post.air.parcel)。
displayName選擇性收據 / 發票的好看名稱。

這是買家在結帳時被報價的費率。它作為「運送」小計流入已登陸成本計算,以便針對正確的 CIF 值計算關稅和稅項。

5. landedCostCalculateWorkflow

運行目的地國家的關稅、稅項和費用計算。使用先前步驟中的商品、方和運送成本。

欄位狀態註記
endUse必需NOT_FOR_RESALEFOR_RESALE。某些目的地針對商業相對於個人最終使用適用不同的費率。
tariffRate必需如果省略,預設為 ZONOS_PREFERRED。告訴 Zonos 要應用哪個關稅來源/方法。
calculationMethod建議DDP(買家預付)或 DDU(買家在門口支付)。使用 DDP 進行預付。推動 LandedCost.amountSubtotals 是否包含關稅/稅項。
currencyCode選擇性已登陸成本小計傳回的貨幣。
arrivalDate選擇性如果提供,FX 費率和關稅時間表會釘在此日期。

回應包括 amountSubtotalsdutiestaxesfeesshippinglandedCostTotal) — 這些是您在結帳時向買家顯示的數字,以及在商業發票上列印的數字。

6. shipmentCreateWorkflow

終端步驟 — 建立**Shipment** 實體,產生運輸商標籤,以及(選擇性)商業發票 / 包裝單。

對於日本郵政已驗證帳戶,這也是 Zonos 代表您呼叫日本郵政標籤 API(代碼 52)、注入您的延期支付號碼、建立聲明 ID,並將聲明 ID 連結到日本郵政傳回的追蹤號碼的地方。

關鍵欄位:

欄位狀態註記
serviceLevel標籤必需要運送的日本郵政服務(例如 japan_post.air.ems_merchandise)。必須是 japan_post.* 服務級別。
generateLabel選擇性預設為 true;必須為 true 以傳回標籤。
contentsType建議SALE_OF_GOODSGIFTDOCUMENTSSAMPLE 等。推動海關處理。
nonDelivery選擇性如果交付失敗,運輸商應執行的操作:RETURNABANDONFORWARD
references選擇性商家提供的參考號碼,列印在標籤和商業發票上。請參閱下文。
declaredValue / isDeclaredValue選擇性寄件的保險價值。
shipmentConsolidationId選擇性當此寄件是批次分派的一部分時使用。

references 子輸入

這些欄位列印在運輸商標籤和/或商業發票上。使用它們來顯示收件人或海關當局需要看到的 PO 號、許可號和自由文字備註。

欄位狀態註記長度
invoiceNumber選擇性商家發票號。
purchaseOrderNumber選擇性商家 PO 號。
licenseNumber選擇性出口/進口許可號。
certificateNumber選擇性海關證書號。
paymentConditions選擇性商業發票上顯示的免費文字支付條款。限制為 200 個字符 — 較長的值會在列印發票上溢出。
customsRemarks選擇性自由文字海關備註。
taxCode選擇性列印在標籤上的自訂稅代碼。

回應

傳回的 Shipment 上有趣的欄位是:

{
  id
  trackingDetails {
    number
  }
  shipmentCartons {
    label {
      url
      labelImage
    }
  }
}

trackingDetails.number 是日本郵政追蹤號碼。

label 物件可以用兩種方式傳回標籤 — 請求任一方式符合您的工作流程(或兩者都要):

欄位傳回使用時機
url一個到已呈現標籤檔案 (PDF) 的託管連結,準備好下載或列印。您想交付一個連結 — 開啟它、透過電郵發送或稍後取回檔案,無需在負載中保留它。
labelImageBase64 編碼的標籤影像 (PNG/PDF/ZPL),內聯於回應中。您想直接在回應中獲得標籤位元組,以附加到履行工作流程或儲存到您的 WMS。

僅選擇您需要的欄位。請求 url 可保持回應較小;請求 labelImage 會內聯傳回完整標籤,因此您無需第二次往返來取回它。上方範例請求 url

錯誤處理 

  • 驗證錯誤(遺漏的必需欄位、無效的國家代碼等)會進入標準 GraphQL errors 陣列並中止鏈的其餘部分。
  • 日本郵政錯誤(標籤產生失敗、無效地址等)出現為 shipmentCreateWorkflow 上的 GraphQL 錯誤。如果需要重試,請聯繫支援 — 建議的路徑是使用已更正的輸入重新提交完整變異。

權限 

每個步驟都獨立保護。您的 API 金鑰必須擁有鏈中每個實體的寫入範圍(ITEM_WRITECARTON_WRITESHIPMENT_RATING_WRITELANDED_COST_WRITESHIPMENT_WRITE)。已驗證帳戶上的標準商家角色可授予所有這些。

後續步驟 

預約演示

這個頁面有幫助嗎?


在此頁面: