Préparez l'entrée de mutation
Calculer un landed cost via l'API GraphQL implique plusieurs étapes ; nous avons organisé ces étapes en flux de travail. À la fin, vous aurez tout ce dont vous avez besoin pour effectuer un appel afin d'obtenir un landed cost basé sur la destination d'expédition, les articles dans le panier et l'expédition.
Chaque flux de travail nécessite des données d'entrée spécifiques. GraphQL vous permet d'inclure plus d'informations que nécessaire ; veuillez vous référer à notre référence API complète pour voir tous les champs possibles. Les champs requis sont marqués comme tels dans notre référence API, mais cette marque ne s'applique qu'aux champs qui sont requis pour la fonctionnalité. Quelques champs supplémentaires sont requis lors de l'utilisation de notre garantie.
Ci-dessous, nous avons listé tous les champs requis pour calculer un garanti landed cost. Assurez-vous d'avoir ces informations prêtes.
Entrées requises pour les calculs garantis
partyCreateWorkflowInput
Le partyCreateWorkflowInput
identifie les parties impliquées et leurs emplacements. Consultez le schéma complet dans notre référence API GraphQL. Les champs requis sont :
location
administrativeAreaCode
: Le code de l'état ou de la province, en deux lettres. Uniquement requis pour CA et BR.countryCode
: Le code ISO à deux lettres du pays.line1
: La première ligne de l'adresse.postalCode
: Le code postal ou le code ZIP de l'adresse.
person
email
: L'adresse e-mail de la personne.firstName
: Le prénom de la personne.lastName
: Le nom de famille de la personne.phone
: Le numéro de téléphone de la personne.
type
DESTINATION
: Les informationslocation
&person
pour la destination d'expédition.ORIGIN
: Les informationslocation
pour l'origine d'expédition. Laperson
associée à l'origine d'expédition n'est pas requise.
itemCreateWorkflowInput
Le itemCreateWorkflowInput
liste les articles dans le panier. Il existe de nombreux champs optionnels (voir toutes les possibilités dans notre référence API), mais les champs ci-dessous sont requis.
amount
: Le prix de l'article.currencyCode
: Le code de la devise pour le montant de l'article.quantity
: La quantité de l'article.- L'un des éléments suivants (selon ce qui est défini comme votre préférence de clé d'article. Votre clé d'article connecte les informations stockées dans le Catalogue à l'article dans le panier et est utilisée lors de la création de l'étiquette.)
productId
: L'ID produit de l'article.sku
: Le SKU de l'article.
Les measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) ne sont requis que si vous souhaitez cartoniser vos articles lors de l'obtention d'une évaluation d'expédition.
shipmentRatingCreateWorkflowInput
Ce flux de travail est utilisé lorsque vous connaissez déjà le service d'expédition et le coût ; si vous souhaitez que Zonos calcule ces coûts pour les services que vous avez activés, remplacez ce flux de travail par le shipmentRatingCalculateWorkflow
à la place.
Le shipmentRatingCreateWorkflowInput
communique le coût d'expédition. Consultez le schéma complet dans notre référence API GraphQL. Les champs requis sont :
amount
: Le coût d'expédition.currencyCode
: Le code de la devise du coût d'expédition.serviceLevelCode
: Le code indiquant le niveau de service d'expédition utilisé dans l'évaluation d'expédition.
landedCostWorkflowInput
Le landedCostWorkflowInput
dicte les préférences pour le calcul du landed cost. Consultez le schéma complet dans notre référence API GraphQL. Les champs requis sont :
calculationMethod
: Indique votre préférence pour la manière dont vous prévoyez d'expédier : DDP (droits et taxes prépayés) ou DAP (soit les droits et taxes sont payés à la livraison, soit s'il existe un régime de remise, ils sont remis via un identifiant fiscal).- Si vous utilisez notre garantie de landed cost, cette valeur doit toujours être
DDP_PREFERRED
, ce qui fournira un devis DDP lorsque cela est possible et un devis DAP si un DDP n'est pas autorisé. UtiliserDAP
à la place peut entraîner des coûts de livraison qui ne sont plus garantis, car cela entraîne généralement des droits et taxes payés à la livraison.
- Si vous utilisez notre garantie de landed cost, cette valeur doit toujours être
endUse
: Indique si les biens sont vendus à une autre entreprise (FOR_RESALE
) ou pour un usage final avec un consommateur (NOT_FOR_RESALE
).tariffRate
: Indique la méthode que Zonos doit utiliser pour calculer les taux tarifaires pour ce devis, dans le cas où il existe une gamme de taux tarifaires qui pourraient être appliqués. *Lors de l'utilisation de notre garantie de landed cost, cela doit toujours êtreZONOS_PREFERRED
.
Ajouter l'expédition calculée : Si vous souhaitez que Zonos calcule le coût d'expédition pour vous, remplacez le
shipmentRatingCreateWorkflow
par leshipmentRatingCalculateWorkflow
. Ajoutez lecartonizeWorkflow
si vous souhaitez que Zonos trie vos articles en cartons avant de trouver le coût d'expédition (utilisé pour le poids dimensionnel).
Options lors du calcul d'un landed cost
GraphQL vous donne la flexibilité de personnaliser la requête selon vos préférences. Il existe quelques options pour inclure les codes HS et les coûts d'expédition dans la requête.
Codes HS
Les codes HS ont un impact sur les taux de droits et sont donc nécessaires. Vous pouvez passer le code HS pour chaque article ou laisser Classify les générer.
Zonos recommande vivement d'utiliser des codes HS spécifiques aux produits car cela conduit à un devis de landed cost plus précis. Si vous connaissez vos codes HS, passez le hsCode
pour chaque article
lors du itemCreateWorkflow
.
Si vous passez un code HS, Zonos le validera en temps réel lors de l'obtention d'un devis de landed cost. Si le code HS que vous avez fourni est invalide (ce qui signifie qu'il n'existe pas), Zonos va re-classify votre article en temps réel et utiliser le nouveau code HS valide à la place de celui que vous avez fourni.
Si vous avez besoin d'aide pour générer des codes HS pour vos produits, découvrez Zonos Classify et comment demander une classification.
Si vous ne passez pas à Zonos un hsCode
, nous vérifierons d'abord dans Zonos Catalogue pour voir si vous avez un code HS stocké pour votre article. Si ce n'est pas le cas, nous appellerons Classify pour générer une classification pour alimenter votre calcul de landed cost en fonction des champs de détails du produit suivants de itemCreateWorkflow
: description
, catégorie
et matériau
. Si les champs de détails de votre produit ne sont pas assez détaillés pour générer une classification basée sur le score de confiance de Classify's, le code HS par défaut attribué à votre magasin sera utilisé.
Par défaut, si vous ne fournissez pas de hsCode
et que nous appelons Classify, le hsCode
généré par Classify ne sera pas renvoyé dans la réponse car il ne sera utilisé qu'en interne pour générer votre landed cost. Cependant, si vous avez un abonnement à Classify, nous renverrons le code HS de Classify's dans votre réponse de landed cost.
Coût d'expédition
Le niveau de service d'expédition et son coût ont un impact sur les droits, taxes et frais et sont donc nécessaires. Zonos peut calculer les frais d'expédition ou vous pouvez nous les transmettre.
Pour que Zonos calcule les frais d'expédition, utilisez le shipmentRatingCalculateWorkflow
. Les options d'expédition renvoyées dans la réponse d'expédition calculée seront en corrélation avec les niveaux de service
que vous avez attribués aux profils d'expédition dans Dashboard.
Dépannage : Si vous attendez un
niveau de service
dans la réponse mais qu'il n'apparaît pas, veuillez vous assurer que leniveau de service
est activé et est pris en charge par laméthode
que vous avez sélectionnée.
Ajoutez le cartonizeWorkflow
(qui n'a pas d'entrées) si vous souhaitez que Zonos trie vos articles dans des cartons avant de trouver le coût d'expédition (utilisé pour le poids dimensionnel.
Si vous connaissez le niveau de service
et le montant
pour un envoi, vous pouvez les transmettre dans la partie shipmentRatingCreateWorkflow
de la requête. Nous utiliserons ces valeurs pour calculer les éventuels frais de transport associés et les renvoyer dans la réponse.
Envoyer la mutation
Une fois que vous avez les données d'entrée requises, envoyez la mutation GraphQL à l'endpoint API en utilisant votre bibliothèque client ou outil choisi. Voici quelques exemples de comment vous pouvez structurer la mutation.
Mutation
mutation {
partyCreateWorkflow(
input: [
{
location: {
administrativeArea: "Utah"
administrativeAreaCode: "UT"
countryCode: US
line1: "345 N 2450 E"
line2: "#151"
locality: "St George"
postalCode: "84790"
}
type: ORIGIN
}
{
location: {
administrativeArea: "BC"
administrativeAreaCode: "BC"
countryCode: CA
line1: "27 Sussex Dr."
locality: "Victoria"
postalCode: "V8T 2V9"
}
person: {
email: "test@gmail.com"
firstName: "firstName"
lastName: "lastName"
phone: "5022303021"
companyName: "goProTest"
metadata: { key: "key", value: "value" }
}
type: DESTINATION
}
{
type: PAYOR
location: {
administrativeArea: "ON"
administrativeAreaCode: "ON"
countryCode: CA
latitude: 1.2
line1: "asdf"
line2: "asdf"
locality: "locality"
longitude: 3423.2
postalCode: "M4C 1A1"
}
person: {
email: "test@gmail.com"
firstName: "firstName"
lastName: "lastName"
phone: "5022303021"
companyName: "goProTest"
metadata: { key: "key", value: "value" }
}
}
]
) {
type
id
organization
}
itemCreateWorkflow(
input: [
{
amount: 69
currencyCode: USD
countryOfOrigin: US
quantity: 1
productId: "productId"
hsCode: "1006.30"
description: "description"
measurements: [
{ type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
{ type: WEIGHT, value: 2, unitOfMeasure: POUND }
]
}
{
amount: 62
currencyCode: CAD
countryOfOrigin: US
hsCode: "1006.30"
quantity: 1
productId: "productId2"
description: "description2"
measurements: [
{ type: WIDTH, value: 2, unitOfMeasure: CENTIMETER }
{ type: WEIGHT, value: 2, unitOfMeasure: POUND }
]
}
]
) {
id
amount
}
cartonizeWorkflow {
id
type
items {
item {
id
}
}
}
shipmentRatingCalculateWorkflow {
id
amount
}
landedCostCalculateWorkflow(
input: { endUse: FOR_RESALE, method: DAP, tariffRate: ZONOS_PREFERRED }
) {
id
duties {
amount
currency
}
taxes {
amount
currency
}
fees {
amount
currency
}
}
}
Réponse
{
"data": {
"partyCreateWorkflow": [
{
"type": "ORIGIN",
"id": "party_749959ae-b9ff-4de4-b4ac-59cc990c53ba",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
},
{
"type": "DESTINATION",
"id": "party_cd7ff245-76b6-464f-a7bf-151ebe1f8833",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
},
{
"type": "PAYOR",
"id": "party_00e63a9e-9735-44d9-b129-3b3e76c5df25",
"organization": "organization_dbb64939-12d7-4f12-98ea-7ae5b21acfd0"
}
],
"itemCreateWorkflow": [
{
"id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e",
"amount": 69
},
{
"id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115",
"amount": 62
}
],
"cartonizeWorkflow": [
{
"id": "carton_b34b29c1-ce27-464b-b91b-df8e4a696312",
"type": "PACKAGE",
"items": [
{
"item": {
"id": "item_eb27f071-de8b-4578-9db9-ae69aaf9be3e"
}
},
{
"item": {
"id": "item_fffa8ba8-cc8d-4e13-bed6-55044a71c115"
}
}
]
}
],
"shipmentRatingCalculateWorkflow": [
{
"id": "shipment_rating_96787309-9510-43cc-b4fa-c341ff80f4cc",
"amount": 173.2
},
{
"id": "shipment_rating_b0ccb109-7794-4c7c-b5cc-e2cfbbc5c8ac",
"amount": 190.1
}
],
"landedCostCalculateWorkflow": [
{
"id": "landed_cost_74d3ce11-bff2-4326-9e6f-368e03ac88b4",
"duties": [
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"taxes": [
{
"amount": 3.45,
"currency": "USD"
},
{
"amount": 3.1,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"fees": [
{
"amount": 0.13,
"currency": "USD"
},
{
"amount": 1.44,
"currency": "USD"
}
]
},
{
"id": "landed_cost_7bbfd354-028c-457f-8c8e-c81bb8fa09a0",
"duties": [
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"taxes": [
{
"amount": 3.45,
"currency": "USD"
},
{
"amount": 3.1,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
},
{
"amount": 0.0,
"currency": "USD"
}
],
"fees": [
{
"amount": 0.13,
"currency": "USD"
},
{
"amount": 1.44,
"currency": "USD"
}
]
}
]
}
}
Calculez un landed cost
Calculez les droits, taxes et frais avec GraphQL.GraphQL
Zonos calcule le total du landed cost pour les expéditions, ce qui inclut les droits, taxes et tous les frais supplémentaires que les douanes, courtiers ou transporteurs peuvent facturer. Nous garantissons souvent ces calculs en payant nous-mêmes la facture de droits, taxes et frais tout en vous facturant exactement ce que nous calculons. Dans de rares cas, nos calculs peuvent être utilisés sans notre garantie, où vous assumez toute différence entre notre calcul et la facture de droits et taxes.