DOCS

Integrate label api

/

Créer des Zonos expéditions depuis votre plateforme

Offrez aux clients la possibilité de créer des expéditions et des étiquettes Zonos depuis votre plateforme.

Si vous êtes une plateforme d'expédition qui prend en charge les clients Zonos expédiant à l'international, l'intégration avec Zonos pour la création d'expéditions devrait être une priorité. Cela vous permettra d'offrir l'expérience la plus fluide possible à vos commerçants et à leurs clients en tirant parti des fonctionnalités existantes de votre plateforme tout en laissant Zonos gérer la création de l'expédition, de l'étiquette et de la documentation douanière de soutien.

Les avantages d'utiliser Zonos pour créer des expéditions incluent :

  • Facturation tierce des droits et taxes - Nous veillerons à ce que le numéro de compte de transporteur de vous ou de votre commerçant soit utilisé pour les frais d'expédition tandis que les factures pour les droits et taxes seront adressées à Zonos.
  • Flexibilité - Au lieu de réaliser des travaux de développement pour vous assurer que vous pouvez générer des étiquettes conformes avec votre plateforme, intégrez notre API et laissez-nous gérer la conformité transfrontalière en constante évolution.
  • Documentation douanière précise - Lorsque vous utilisez Zonos pour générer des étiquettes, nous veillons à ce que les bonnes informations soient transmises au transporteur pour garantir que le colis passe rapidement la douane.

Ce guide vous expliquera les étapes à suivre pour mettre en œuvre une intégration complète de bout en bout qui vous permettra d'appeler Zonos pour des expéditions depuis votre plateforme.

Permettre aux clients d'imprimer des étiquettes Zonos depuis votre plateforme 

Suivez les étapes ci-dessous pour permettre à vos clients de récupérer des étiquettes Zonos depuis votre plateforme.

1

Permettre aux clients de saisir leurs identifiants API Zonos

LZonos API est accessible par un credentialToken. Votre plateforme devra donner aux clients la possibilité de saisir leur credentialToken depuis le Zonos Dashboard dans votre plateforme. À partir de là, vous pourrez faire des demandes à Zonos en leur nom.

2

Créer une expédition

Pour récupérer une label, vous devez créer une shipment à laquelle la label sera associée. Zonos gère ce processus avec un flux de travail qui crée des shipments et des labels dans la même demande. Lorsque vous effectuez cette mutation, vous n'avez pas besoin de passer un serviceLevel car nous utiliserons le serviceLevel utilisé à partir du landedCost qui est lié à la order. Pour l'orderId, vous pouvez utiliser l'ID de commande Zonos ou le accountOrderNumber qui sera probablement déjà dans votre système. Lorsqu'une expédition et des étiquettes sont créées avec succès, nous retournerons les étiquettes sous forme de labelImage qui est une BASE64_ENCODED_IMAGE, ou sous forme de url d'où l'étiquette peut être récupérée.

Mutation

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

Réponse

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

Annuler un envoi

Dans le cas où un client souhaite annuler un envoi, vous pouvez utiliser la mutation suivante qui annulera tous les étiquettes liées à l'envoi.

Demande

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

Cette page était-elle utile?


Des questions ?

Contactez-nous.