DOCS

Интеграция API отправки

Создайте Zonos отправления с вашей платформы

Предоставьте клиентам возможность создавать Zonos отправления и ярлыки с вашей платформы.

Если вы являетесь платформой для доставки, которая поддерживает клиентов Zonos при международной отправке, интеграция с Zonos для создания отправлений должна быть вашим приоритетом. Это позволит вам предложить наиболее бесшовный опыт для ваших торговцев и их клиентов, используя существующие функции вашей платформы, позволяя Zonos управлять созданием отправления, ярлыка и сопроводительной таможенной документацией.

Преимущества использования Zonos для создания отправлений включают:

  • Оплата пошлин и налогов третьими лицами - Мы гарантируем, что номер учетной записи вашего или вашего торговца будет использован для оплаты доставки, в то время как счета за пошлину и налог будут приходить в Zonos.
  • Гибкость - Вместо того чтобы выполнять разработку, чтобы гарантировать, что вы можете генерировать соответствующие ярлыки с вашей платформы, интегрируйтесь с нашим API и оставьте постоянно меняющиеся требования к международной доставке нам.
  • Точная таможенная документация - Когда вы используете Zonos для генерации ярлыков, мы гарантируем, что правильные данные передаются перевозчику, чтобы пакет быстро прошел таможню.

Этот гид проведет вас через шаги для реализации полной интеграции от начала до конца, которая позволит вам вызывать Zonos для отправлений с вашей платформы.

Позвольте клиентам печатать ярлыки Zonos с вашей платформы 

Следуйте приведенным ниже шагам, чтобы позволить вашим клиентам получать ярлыки Zonos с вашей платформы.

1

Позвольте клиентам вводить свои учетные данные API Zonos

Zonos API доступен с помощью credentialToken. Ваша платформа должна предоставить клиентам возможность ввести свой credentialToken из Zonos Dashboard в вашу платформу. Отсюда вы сможете делать запросы к Zonos от их имени.

2

Создайте отправление

Чтобы получить label, вам необходимо создать shipment, с которым будет связан label. Zonos управляет этим процессом с помощью рабочего процесса, который создает shipments и labels в одном запросе. При выполнении этой мутации вам не нужно передавать serviceLevel, так как мы используем serviceLevel, использованный из landedCost, который связан с order. Для orderId вы можете использовать идентификатор заказа Zonos или accountOrderNumber, который, вероятно, уже есть в вашей системе. Когда отправление и ярлыки успешно созданы, мы вернем ярлыки как labelImage, который является BASE64_ENCODED_IMAGE, или как url, откуда можно получить ярлык.

Мутация

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
    }
  }
}

Ответ

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

Аннулирование отправления

В случае, если клиент хочет аннулировать отправление, вы можете использовать следующую мутацию, которая аннулирует все этикетки, связанные с отправлением.

Запрос

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
  }
}

Была ли эта страница полезной?