DOCS

Zintegruj API wysyłek

Twórz wysyłki Zonos z Twojej platformy

Daj klientom możliwość tworzenia wysyłek i etykiet Zonos z Twojej platformy.

Jeśli jesteś platformą wysyłkową, która wspiera klientów Zonos wysyłających międzynarodowo, integracja z Zonos w celu tworzenia wysyłek powinna być priorytetem. Pozwoli to na zaoferowanie najbardziej płynnego doświadczenia dla Twoich sprzedawców i ich klientów, wykorzystując istniejące funkcje Twojej platformy, jednocześnie pozwalając Zonos zarządzać tworzeniem wysyłki, etykiety i wspierającej dokumentacji celnej.

Zalety korzystania z Zonos do tworzenia wysyłek obejmują:

  • Fakturowanie przez stronę trzecią opłat celnych i podatków - Zapewnimy, że numer konta przewoźnika Twojego lub Twojego sprzedawcy będzie używany do opłat za wysyłkę, podczas gdy rachunki za cło i podatek trafią do Zonos.
  • Elastyczność - Zamiast wykonywać prace deweloperskie, aby zapewnić, że możesz generować zgodne etykiety z Twoją platformą, zintegrować się z naszym API i pozostawić zmieniające się przepisy dotyczące wysyłek międzynarodowych nam.
  • Dokumentacja celna - Kiedy używasz Zonos do generowania etykiet, zapewniamy, że odpowiednie szczegóły są przekazywane do przewoźnika, aby paczka szybko przeszła przez odprawę celną.

Ten przewodnik przeprowadzi Cię przez kroki implementacji pełnej integracji end-to-end, która pozwoli Ci wywoływać Zonos w celu wysyłek z Twojej platformy.

Umożliwienie klientom drukowania etykiet Zonos z Twojej platformy 

Postępuj zgodnie z poniższymi krokami, aby umożliwić swoim klientom pobieranie etykiet Zonos z Twojej platformy.

1

Umożliwienie klientom wprowadzenia swoich danych uwierzytelniających API Zonos

Zonos API jest dostępne za pomocą credentialToken. Twoja platforma musi umożliwić klientom wprowadzenie ich credentialToken z Zonos Dashboard do Twojej platformy. Stąd będziesz mógł składać zapytania do Zonos w ich imieniu.

2

Utwórz wysyłkę

Aby pobrać label, musisz utworzyć shipment, z którym będzie związana label. Zonos zarządza tym procesem za pomocą workflow, który tworzy shipments i labels w tym samym żądaniu. Podczas wykonywania tej mutacji nie musisz przekazywać serviceLevel, ponieważ użyjemy serviceLevel używanego z landedCost, który jest powiązany z order. Dla orderId możesz użyć identyfikatora zamówienia Zonos lub accountOrderNumber, który prawdopodobnie już znajduje się w Twoim systemie. Gdy wysyłka i etykiety zostaną pomyślnie utworzone, zwrócimy etykiety jako labelImage, które jest BASE64_ENCODED_IMAGE, lub jako url, z którego można pobrać etykietę.

Mutacja

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
mutation {
  partyCreateWorkflow(
    input: [
      {
        location: {
          administrativeArea: "Utah"
          administrativeAreaCode: "UT"
          countryCode: US
          line1: "123 Test Street"
          locality: "St George"
          postalCode: "84770"
        }
        person: {
          companyName: "test Corp"
          phone: "8018565714"
          firstName: "Tom"
        }
        type: ORIGIN
      }
      {
        location: {
          administrativeArea: "Quebec"
          administrativeAreaCode: "QC"
          countryCode: CA
          line1: "2147 Pitfield Blvd"
          locality: "Pierrefonds"
          postalCode: "H9H 3C7"
        }
        person: {
          email: "test@gmail.com"
          firstName: "firstName"
          lastName: "lastName"
          phone: "5022303021"
          companyName: "goProTest"
        }
        type: DESTINATION
      }
    ]
  ) {
    type
    id
    organization
  }
  itemCreateWorkflow(
    input: [
      {
        amount: 50
        currencyCode: USD
        countryOfOrigin: US
        quantity: 1
        metadata: { key: "tags", value: "accessory" }
        sku: "ow-accessory-gtr"
        productId: "1892949164056"
      }
    ]
  ) {
    amount
    id
    quantity
    sku
    productId
  }
  cartonsCreateWorkflow(
    input: {
      dimensionalUnit: INCH
      height: "5"
      length: "5"
      weight: "5"
      weightUnit: POUND
      width: "10"
    }
  ) {
    items {
      item {
        amount
        id
        quantity
        sku
      }
    }
    length
    width
    weight
    weightUnit
    height
    id
  }
  shipmentCreateWorkflow(
    input: { orderId: "order_f648793c-2585-4684-afa0-da1fdb0d4f94" }
  ) {
    id
    serviceLevel {
      id
      name
      carrier {
        id
        name
      }
    }

    shipmentCartons {
      id
      tracking {
        number
      }
      label {
        labelImage
        labelFileType
      }
      carton {
        id
        width
        length
        height
        weight
        items {
          item {
            id
            amount
            description
          }
        }
      }
    }
    customsDocuments {
      id
      fileType
      fileUrl
    }
  }
}

Odpowiedź

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{
  "data": {
    "shipmentCreateWorkflow": {
      "id": "shipment_90f3c62a-c50e-466c-a317-70ececb26dc4",
      "serviceLevel": {
        "id": "service_level_a7129244-7334-4e8b-8b10-6494b0e49a7d",
        "name": "UPS Worldwide Express",
        "carrier": {
          "id": "carrier_26bf7275-cac2-47b5-979a-4325fa2efa82",
          "name": "UPS"
        }
      },
      "shipmentCartons": [
        {
          "id": "shipment_carton_d254a6df-9dcd-47fc-926b-48eaeaea232c",
          "tracking": {
            "number": "1Z2030216698896462"
          },
          "label": {
            "labelImage": "{{BASE64_ENCODED_IMAGE}}",
            "labelFileType": "PDF",
            "labelAmounts": [
              {
                "amount": 41.88,
                "amountType": "QUOTE"
              }
            ]
          },
          "carton": {
            "id": "carton_0jhg9mxk431q7",
            "width": 10.0,
            "length": 5.0,
            "height": 5.0,
            "weight": 5.0,
            "items": [
              {
                "item": {
                  "id": "item_0jhg9mxdwm77w",
                  "amount": 50,
                  "description": null
                }
              }
            ]
          }
        }
      ],
      "customsDocuments": [
        {
          "id": "customs_doc_d8bedf7a-2de0-4729-8bdd-ebd901b67127",
          "fileType": "PDF",
          "fileUrl": "https://prod-zonos-shipping-label.s3.us-east-2.amazonaws.com/organization_a61090a2-d18b-415c-9870-03b9087cbf2d/shipment_90f3c62a-c50e-466c-a317-70ececb26dc4/customs/International_Forms.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20250117T231615Z&X-Amz-SignedHeaders=host&X-Amz-Credential=AKIAR3GS2GP6V4LZE3OI%2F20250117%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Expires=14400&X-Amz-Signature=6c17e358a038c3cd7d61391302909ee503344249405974e490d9b46051c79dba"
        }
      ]
    }
  }
}
3

Anulowanie przesyłki

W przypadku, gdy klient chce anulować przesyłkę, możesz użyć następującej mutacji, która anuluje wszystkie etykiety powiązane z przesyłką.

Żądanie

1
2
3
4
5
6
7
8
9
10
11
12
mutation {
  shipmentStatusUpdate(
    input: {
      shipment: "shipment_f1fe4dbd-e471-49fa-94e7-84e369083223"
      status: VOIDED
      note: "Voiding shipment"
    }
  ) {
    id
    status
  }
}

Czy ta strona była pomocna?