DOCS

Integrate label api

/

Crear envíos de Zonos desde su plataforma

Brinde a los clientes la capacidad de crear envíos y etiquetas de Zonos desde su plataforma.

Si usted es una plataforma de envío que apoya a los clientes de Zonos en envíos internacionales, integrar Zonos para la creación de envíos debería ser una consideración principal. Esto le permitirá ofrecer la experiencia más fluida para sus comerciantes y sus clientes aprovechando las características existentes de su plataforma, mientras deja que Zonos gestione la creación del envío, la etiqueta y la documentación aduanera de apoyo.

Las ventajas de usar Zonos para crear envíos incluyen:

  • Facturación de terceros de derechos e impuestos - Nos aseguraremos de que se utilice el número de cuenta del transportista de usted o de su comerciante para los cargos de envío, mientras que las facturas por derechos e impuestos llegarán a Zonos.
  • Flexibilidad - En lugar de realizar trabajo de desarrollo para asegurarse de que puede generar etiquetas conformes con su plataforma, integre con nuestra API y deje la siempre cambiante conformidad transfronteriza en nuestras manos.
  • Documentación aduanera precisa - Cuando utiliza Zonos para generar etiquetas, nos aseguramos de que los detalles correctos se pasen al transportista para garantizar que el paquete pase por la aduana rápidamente.

Esta guía lo guiará a través de los pasos para implementar una integración completa de extremo a extremo que le permitirá llamar a Zonos para envíos desde su plataforma.

Permitir a los clientes imprimir etiquetas de Zonos desde su plataforma 

Siga los pasos a continuación para permitir que sus clientes recuperen etiquetas de Zonos desde su plataforma.

1

Permitir que los clientes ingresen sus credenciales de API de Zonos

La Zonos API es accesible mediante un credentialToken. Su plataforma deberá dar a los clientes la capacidad de ingresar su credentialToken desde el Zonos Dashboard en su plataforma. Desde aquí, podrá hacer solicitudes a Zonos en su nombre.

2

Crear un envío

Para recuperar una label, se requiere crear un shipment con el que se asociará la label. Zonos gestiona este proceso con un flujo de trabajo que crea shipments y labels en la misma solicitud. Al realizar esta mutación, no necesita pasar un serviceLevel, ya que utilizaremos el serviceLevel utilizado del landedCost que está vinculado al order. Para el orderId, puede usar el ID de pedido de Zonos o el accountOrderNumber que probablemente ya esté en su sistema. Cuando un envío y las etiquetas se crean con éxito, devolveremos las etiquetas como una labelImage, que es una BASE64_ENCODED_IMAGE, o como una url desde donde se puede obtener la etiqueta.

Mutación

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

Respuesta

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

Anular un envío

En caso de que un cliente desee anular un envío, puede utilizar la siguiente mutación que anulará todas las etiquetas vinculadas al envío.

Solicitud

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

¿Fue útil esta página?