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 nécessaires au fonctionnement. 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 des 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.
cartonsCreateWorkflowInput
Le cartonsCreateWorkflowInput
nécessite uniquement l'entrée elle-même. Consultez le schéma complet dans notre référence API GraphQL pour voir toutes les valeurs qui peuvent être passées. Il est important de passer les dimensions et le poids du carton si Zonos calcule le coût 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, si un régime de remise s'applique, ils sont remboursés 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 devis DDP n'est pas autorisé. UtiliserDAP
à la place peut entraîner une non-garantie des coûts de livraison, 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 offre la flexibilité de personnaliser la demande selon vos préférences. Il existe plusieurs options pour inclure les codes SH et les frais d'expédition dans la demande.
Codes SH
Les codes SH impactent les taux de droits et sont donc requis. Vous pouvez passer le code SH pour chaque article ou laisser Classify les générer.
Zonos recommande fortement d'utiliser des codes SH spécifiques aux produits, car cela conduit à un devis landed cost plus précis. Si vous connaissez vos codes SH, passez le hsCode
pour chaque item
lors du itemCreateWorkflow
.
Si vous passez un code SH, Zonos le validera en temps réel lors de l'obtention d'un devis landed cost. Si le code SH que vous avez fourni est invalide (c'est-à-dire qu'il n'existe pas), Zonos re-classify votre article en temps réel et utilisera le nouveau code SH valide au lieu de celui que vous avez fourni.
Si vous avez besoin d'aide pour générer des codes SH pour vos produits, apprenez-en plus sur Zonos Classify et comment demander une classification.
Si vous ne passez pas Zonos un hsCode
, nous vérifierons d'abord Zonos Catalog pour voir si vous avez un code SH enregistré pour votre article. Si ce n'est pas le cas, nous appellerons Classify pour générer une classification afin de soutenir votre calcul landed cost basé sur les champs de détails de produit suivants dans le itemCreateWorkflow
: description
, category
, et material
. Si vos champs de détails de produit ne sont pas suffisamment détaillés pour générer une classification basée sur le score de confiance de Classify's, le code SH 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 retourné 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 retournerons le code SH de Classify's dans votre réponse landed cost.
Coût d'expédition
Le niveau de service d'expédition et son coût impactent les droits, taxes et frais et sont donc requis. 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 retournées dans la réponse d'expédition calculée correspondront aux serviceLevels
que vous avez assignés aux profils d'expédition dans Dashboard.
Dépannage : Si vous vous attendez à un
serviceLevel
dans la réponse mais qu'il n'apparaît pas, veuillez vous assurer que leserviceLevel
est activé et est pris en charge par lamethod
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 serviceLevel
et le amount
pour un envoi, vous pouvez les passer dans la portion shipmentRatingCreateWorkflow
de la demande. Nous utiliserons ces valeurs pour calculer les frais de transporteur associés et les retourner 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 ou outil client choisi. Voici quelques exemples de la façon dont vous pouvez structurer la mutation.
Utilisez cette demande lorsque vous demandez à Zonos de calculer le coût d'expédition dans le cadre de la demande Landed Cost. Nous calculerons ensuite les droits et taxes sur l'expédition s'ils sont évalués par le pays de destination.
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, les courtiers ou les 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.