Prepare la solicitud
Calcular un landed cost a través de la API requiere varias entradas, que hemos organizado en flujos de trabajo. Una vez completado, podrá hacer una única solicitud para devolver un landed cost basado en el destino de envío, los artículos en el carrito y los detalles de envío.
Cada flujo de trabajo tiene sus propias entradas requeridas. GraphQL le permite pasar más datos de los necesarios, pero solo ciertos campos son obligatorios para devolver un landed cost. Estos están claramente marcados en nuestra referencia de API para ver todos los campos posibles.
Tenga en cuenta que algunos campos son condicionalmente requeridos si desea que su cálculo esté garantizado.
A continuación, hemos esbozado todos los campos requeridos para calcular un landed cost garantizado. Asegúrese de que esta información esté incluida antes de hacer su solicitud.
Entradas requeridas para cálculos garantizados
partyCreateWorkflowInput
El partyCreateWorkflowInput
identifica las partes involucradas y sus ubicaciones. Vea el esquema completo en nuestra referencia de API GraphQL referencia. Los campos requeridos son:
location
administrativeAreaCode
: El código del estado o provincia, en dos letras. Solo requerido para CA y BR.countryCode
: El código ISO de dos letras del país.line1
: La primera línea de la dirección.postalCode
: El código postal o zip de la dirección.
person
email
: La dirección de correo electrónico de la persona.firstName
: El nombre de la persona.lastName
: El apellido de la persona.phone
: El número de teléfono de la persona.
type
DESTINATION
: La información delocation
yperson
para el destino de envío.ORIGIN
: La información delocation
para el origen del envío. Laperson
asociada con el origen del envío no es requerida.
itemCreateWorkflowInput
El itemCreateWorkflowInput
enumera los artículos en el carrito. Hay muchos campos opcionales (vea todas las posibilidades en nuestra referencia de API), pero los campos a continuación son obligatorios.
amount
: El precio del artículo.currencyCode
: El código de moneda para el monto del artículo.quantity
: La cantidad del artículo.- Uno de los siguientes (cualquiera que se establezca como su preferencia de clave de artículo. Su clave de artículo conecta la información almacenada en el Catálogo con el artículo en el carrito y se utiliza durante la creación de etiquetas.)
productId
: El ID del producto del artículo.sku
: El SKU del artículo.
Las measurements
(WEIGHT
, LENGTH
, WIDTH
, HEIGHT
) solo son requeridas si desea cartonizar sus artículos al obtener una calificación de envío.
cartonsCreateWorkflowInput
El cartonsCreateWorkflowInput
solo requiere la entrada en sí. Vea el esquema completo en nuestra referencia de API GraphQL referencia para ver todos los valores que se pueden pasar. Es importante pasar las dimensiones y el peso del cartón si Zonos está calculando el costo de envío.
shipmentRatingCreateWorkflowInput
Este flujo de trabajo se utiliza cuando ya conoce el servicio de envío y el costo; si desea que Zonos calcule estos costos para los servicios que ha habilitado, cambie este flujo de trabajo y utilice el shipmentRatingCalculateWorkflow
en su lugar.
El shipmentRatingCreateWorkflowInput
comunica el costo de envío. Vea el esquema completo en nuestra referencia de API GraphQL referencia. Los campos requeridos son:
amount
: El costo de envío.currencyCode
: El código de moneda del costo de envío.serviceLevelCode
: El código que indica el nivel de servicio de envío utilizado en la calificación de envío.
landedCostWorkflowInput
El landedCostWorkflowInput
dicta las preferencias para el cálculo de landed cost. Vea el esquema completo en nuestra referencia de API GraphQL referencia. Los campos requeridos son:
calculationMethod
: Indica su preferencia sobre cómo planea enviar: DDP (aranceles e impuestos prepagados) o DAP (ya sea que los aranceles e impuestos se paguen a la entrega, o si se aplica un esquema de remesas, se remiten a través de un ID fiscal).- Si utiliza nuestra garantía de landed cost, este valor siempre debe ser
DDP_PREFERRED
, lo que proporcionará una cotización DDP cuando sea posible y una cotización DAP si no se permite una DDP. UsarDAP
en su lugar puede resultar en que los costos de entrega ya no estén garantizados, ya que esto generalmente resulta en aranceles e impuestos pagados a la entrega.
- Si utiliza nuestra garantía de landed cost, este valor siempre debe ser
endUse
: Indica si los bienes se venden a otra empresa (FOR_RESALE
) o para uso final con un consumidor (NOT_FOR_RESALE
).tariffRate
: Indica el método que Zonos debe utilizar para calcular las tarifas arancelarias para esta cotización, en caso de que haya un rango de tarifas arancelarias que se puedan aplicar. *Al utilizar nuestra garantía de landed cost, esto siempre debe serZONOS_PREFERRED
.
Agregar envío calculado: Si desea que Zonos calcule el costo de envío por usted, reemplace el
shipmentRatingCreateWorkflow
con elshipmentRatingCalculateWorkflow
. Agregue elcartonizeWorkflow
si desea que Zonos clasifique sus artículos en cartones antes de encontrar el costo de envío (utilizado para peso dimensional).
Código HS y opciones de envío
GraphQL te brinda la flexibilidad para personalizar la solicitud según tus preferencias. Hay un par de opciones sobre cómo incluir códigos HS y costos de envío en la solicitud.
Códigos HS
Los códigos HS impactan las tasas de aranceles y, por lo tanto, son requeridos. Puedes pasar el código HS para cada artículo o dejar que Classify los genere.
Zonos recomienda encarecidamente utilizar códigos HS específicos para productos, ya que esto conduce a una cotización de landed cost más precisa. Si conoces tus códigos HS, pasa el hsCode
para cada item
durante el itemCreateWorkflow
.
Si pasas un código HS, Zonos lo validará al instante al obtener una cotización de landed cost. Si el código HS que proporcionaste es inválido (lo que significa que no existe), Zonos re-classify tu artículo al instante y usará el nuevo código HS válido en lugar del que proporcionaste.
Si necesitas ayuda para generar códigos HS para tus productos, aprende sobre Zonos Classify y cómo solicitar una clasificación.
Si no pasas a Zonos un hsCode
, primero verificaremos Zonos Catalog para ver si tienes un código HS almacenado para tu artículo. Si no lo tienes, llamaremos a Classify para generar una clasificación que potencie tu cálculo de landed cost basado en los siguientes campos de detalle del producto en el itemCreateWorkflow
: description
, category
, y material
. Si los campos de detalle de tu producto no son lo suficientemente detallados para generar una clasificación basada en el puntaje de confianza de Classify's, se utilizará el código HS predeterminado asignado a tu tienda.
Costo de envío
Tanto el nivel de servicio de envío como su costo impactan los aranceles, impuestos y tarifas, y por lo tanto son requeridos. Zonos puede calcular el envío o puedes pasarnos esta información.
Para que Zonos calcule los costos de envío, utiliza el shipmentRatingCalculateWorkflow
. Las opciones de envío devueltas en la respuesta de envío calculado se correlacionarán con los serviceLevels
que has asignado a los perfiles de envío en Dashboard.
Solución de problemas: Si esperas un
serviceLevel
en la respuesta pero no aparece, asegúrate de que elserviceLevel
esté habilitado y sea compatible con elmethod
que seleccionaste.
Agrega el cartonizeWorkflow
(que no tiene entradas) si deseas que Zonos clasifique tus artículos en cartones antes de encontrar el costo de envío (utilizado para peso dimensional.
Si conoces el serviceLevel
y el amount
para un envío, puedes pasarlos en la parte de shipmentRatingCreateWorkflow
de la solicitud. Usaremos esos valores para calcular cualquier tarifa asociada del transportista y devolveremos esos en la respuesta.
Solicitar un landed cost a través de la API
Una vez que tengas los datos de entrada requeridos, envía la mutación GraphQL al punto final de la API utilizando la biblioteca o herramienta de cliente que elijas. Aquí hay algunos ejemplos de cómo puedes estructurar la mutación.
Utiliza esta solicitud cuando estés haciendo que Zonos calcule el costo de envío como parte de la solicitud de Landed Cost. Luego calcularemos los aranceles e impuestos sobre el envío si son evaluados por el país de destino.
Mutación
mutation CalculateLandedCostWithShipping(
$parties: [PartyCreateWorkflowInput!]!
$items: [ItemCreateWorkflowInput!]!
$landedCostConfig: LandedCostWorkflowInput!
) {
partyCreateWorkflow(input: $parties) {
type
id
organization
}
itemCreateWorkflow(input: $items) {
id
amount
}
cartonizeWorkflow {
id
type
items {
item {
id
}
}
}
shipmentRatingCalculateWorkflow {
id
amount
}
landedCostCalculateWorkflow(input: $landedCostConfig) {
id
duties {
amount
currency
}
taxes {
amount
currency
}
fees {
amount
currency
}
}
}
Variables
{
"parties": [
{
"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" }
}
}
],
"items": [
{
"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" }
]
}
],
"landedCostConfig": {
"endUse": "FOR_RESALE",
"method": "DAP",
"tariffRate": "ZONOS_PREFERRED"
}
}
Respuesta
{
"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"
}
]
}
]
}
}
Solicitar un landed cost en el Dashboard
También puedes calcular los costos de importación directamente en el Zonos Dashboard sin usar la API. Esto es útil para probar cálculos, capacitar a tu equipo o obtener cotizaciones rápidas para consultas de clientes.
El Dashboard utiliza los mismos puntos finales de API descritos anteriormente, por lo que los resultados coincidirán con los que obtendrías de llamadas directas a la API. Esto lo convierte en una excelente manera de validar tu integración de API o explorar cómo diferentes entradas afectan los cálculos.
Usando la calculadora del Dashboard
Con la calculadora de landed cost en el Dashboard, puedes obtener cotizaciones con tarifas de envío calculadas, crear cotizaciones con costos de envío conocidos o procesar múltiples cotizaciones en bloque.
Utiliza este flujo cuando conozcas el nivel de servicio de envío y el costo de tu envío.
- Ve a Dashboard → Orders → Cotizaciones
- Haz clic en Nueva cotización
- Opcional — Modifica la ubicación de tu dirección de envío
- Selecciona un País de destino del menú desplegable
- Ingresa el monto de envío
- El nivel de servicio es opcional; agregarlo nos permite calcular las tarifas aplicables del transportista
- Agrega los detalles del artículo para el envío
- Cuando ingresas una descripción, automáticamente classify el producto y generamos un código HS
- Puedes sobrescribir el código HS generado si es necesario
- Para múltiples artículos, haz clic en Guardar y agregar otro. De lo contrario, haz clic en Guardar
- Opcional — Haz clic en Más opciones para cambiar:
- Tipo de venta a Para reventa
- Modo de entrega a Derechos de entrega no pagados
- Haz clic en Obtener cotización
- Para hacer cambios, haz clic en Editar formulario y modifica cualquier detalle
- Haz clic en Obtener cotización nuevamente para actualizar
Una cotización de landed cost aparecerá a la derecha, incluyendo costos de producto, envío e importación. Expande la cotización para ver desgloses detallados de artículos, envío, derechos, impuestos y tarifas. Todas las cotizaciones se guardan en la página de cotizaciones para referencia futura.
Editar cotizaciones existentes: Haz clic en Cotizar nuevamente en la parte superior derecha para modificar una cotización existente en lugar de comenzar desde cero.
Beneficios de usar el Dashboard
- No se requiere codificación — Genera cotizaciones a través de una interfaz fácil de usar
- Capacitación del equipo — Ayuda a los miembros del equipo no técnicos a entender los componentes de landed cost
- Validación de API — Verifica que tu integración de API produzca resultados esperados
- Soporte al cliente — Genera rápidamente cotizaciones para consultas de clientes
- Procesamiento en bloque — Maneja múltiples cálculos de manera eficiente (próximamente)
Las cotizaciones del Dashboard incluyen los mismos desgloses detallados disponibles a través de la API, lo que lo convierte en un excelente complemento para tu integración automatizada.
Calcule un landed cost
Calcule aranceles, impuestos y tarifas con GraphQL.GraphQL
Zonos calcula el total de landed cost para envíos internacionales, incluidos aranceles, impuestos y cualquier tarifa adicional cobrada por aduanas, agentes o transportistas. En la mayoría de los casos, garantizamos estos cálculos pagando la factura final nosotros mismos y cobrando exactamente lo que calculamos. En algunos casos, puede utilizar nuestro landed cost sin garantía, lo que significa que asume la responsabilidad por cualquier diferencia entre nuestro cálculo y los cargos reales.