DOCS

Integrate label api

/

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żliw klientom drukowanie 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żliw klientom wprowadzenie 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 związanego 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
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" }
        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"
          metadata: { key: "key", value: "value" }
        }
        type: DESTINATION
      }
    ]
  ) {
    type
    id
    organization
  }
  itemCreateWorkflow(
    input: {
      amount: "50"
      currencyCode: USD
      quantity: 1
      sku: "test1"
      description: "shoes"
      hsCode: "670121"
    }
  ) {
    amount
    id
    sku
  }
  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_627db90e-d2e2-4499-b388-bfd5d8d33e18" }
  ) {
    id
    status
    shipmentCartons {
      id
      label {
        id
        url
        labelAmounts {
          amount
          amountType
        }
      }
    }
    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
{
  "data": {
    "shipmentCreateWorkflow": {
      "id": "shipment_cd535d6f-c92a-41a9-ae70-f6e67ed30dc9",
      "status": "CREATED"
    },
    "shipmentCartons": [
      {
        "id": "label_171c7cf5-b005-45cb-bac4-2bfc141dbacb",
        "trackingNumber": "794602938880",
        "status": "CREATED",
        "documentFiling": "ELECTRONIC",
        "labelImage": "{{BASE64_ENCODED_IMAGE}}",
        "labelAmounts": [
          {
            "amount": 137.87,
            "amountType": "QUOTE"
          }
        ],
        "shipmentCarton": "shipment_carton_480d776e-48d8-4699-9b37-bc26c7d0cd1b",
        "statusTransitions": [
          {
            "changedAt": "2024-02-09T18:54:37.158Z",
            "note": "Label created",
            "status": "CREATED"
          }
        ]
      }
    ]
  }
}
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?