DOCS

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

Ответ

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

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

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

Запрос

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

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