Cotizar una devolución
El endpoint de cotización de una devolución nos permite obtener los precios y opciones para realizar la misma.
En cada cotización, se deberá indicar la cuenta, valor declarado del envío y detalle de paquetes e items que se devolverán.
El Request
Al hacer el request hay algunas particularidades con respecto a la definición de los paquetes e items que los componen que serán devueltos.
Particularidades en la definición de paquetes a devolver
En caso de no indicar el array de packages con los paquetes que contendrá la devolución. El sistema interpreta que se devolverán todos los paquetes del envío con todos sus items definidos. Si el array de paquetes esta definido solo se cotizará la devolución de los paquetes que contenga dicho array.
Particularidades en la definición de items a devolver
Para cada paquete que se indique en el array de paquetes se deberá indicar que items se devolverán. En caso de no indicar el array de items con los items que contendrán los paquetes de la devolución. El sistema interpreta que se devolverán todos los items del paquete indicado. Si el array de items esta definido dentro de un paquete solo se cotizará la devolución de los items que contenga dicho array.
POST /shipments/{id} /return/quote |
||||
---|---|---|---|---|
Parámetros para la URL: | ||||
id | int | ID de un envío | ||
sort_by | string | Opcional. Para indicar el ordenamiento de los resultados. | Opciones:
price Ordena por menor a mayor precio
rating Ordena por mejor a peor nivel de servicio
time Ordena por menor a mayor tiempo de entrega |
|
Parámetros para el body: | ||||
account_id | int | ID de la cuenta |
|
|
declared_value | decimal | Valor declarado del envío | Ej: 200.50 | |
packages | Opcional. Array de Packages (objetos). Para especificar los paquetes a devolver del envío. | |||
ID | int | Identificador de un paquete. |
|
|
items | Opcional. Array de Items (objetos). Para especificar los items a devolver de un paquete. | |||
ID | int | Identificador de un item de un paquete. |
|
El response
En el response nos encontraremos dos bloques:
El primer array, results
, contiene un resultado ganador de cotización por cada tipo de servicio. El mismo será el resultado ganador de la cotización dependiendo de la configuración de la cuenta o el parámetro opcional sort_by
. La clave del array será el código de cada tipo de servicio, y en el detalle estará la información del transporte ganador.
En el segundo array, all_results
, se proveen todos los resultados de transportes posibles. También se puede modificar el orden de estos resultados con el parámetro sort_by
en el query string.
Response (estructura de cada resultado) | ||
---|---|---|
selectable | bool | Si el resultado es seleccionable o no. |
impediments | null o array | Posibles limitaciones para crear el envio cuando selectable sea false. |
logistic_type | string | Forma de despacho del resultado de cotizacion. Se deberáindicar en la creación del envío. |
carrier | ||
id | int | ID del transporte. Se deberá indicar en la creación del envío. |
name | string | Nombre del transporte |
rating | decimal | Puntaje del nivel de servicio del transporte. 0%-100% |
logo | string | URL del logo del transporte |
amounts | ||
price | decimal | Precio sin IVA |
price_incl_tax | decimal | Precio con IVA |
delivery_time | ||
min | int | Tiempo de entrega mínimo, en días hábiles |
max | int | Tiempo de entrega máximo, en días hábiles |
service_type | ||
id | int | ID del tipo de servicio |
code | string | Código del tipo de servicio. Se deberá indicar en la creación del envío. |
name | string | Nombre del servicio |
is_urgent | bool | Si el servicio es urgente o no. |
pickup_points (atributos por cada item del array) | ||
point_id | string | ID del pickup point. Deberas guardarlo para enviarlo a la hora de crear el envío. |
description | string | Nombre del punto |
open_hours | string | Horarios de apertura |
phone | string | Telefono del punto. |
location | object | Datos del punto |
Ejemplo cotización de una devolución:
POST https://api.zippin.com.ar/v2/shipments/123456/return/quote
{ "account_id": "2", "declared_value": 629, "packages": [ { "id": 76524, }, { "id": 76525, "items":[ { "id": 986, }, { "id": 987, } } ], } RESPONSE 200 { "sorted_by": "price", "destination": { "id": 1735, "city": "San Isidro", "state": "Buenos Aires", "zipcode": "1642" }, "packages": [ { "id": 76524 "weight": 10000, "height": 10, "width": 50, "length": 30, "volume": 15000, "sku_id": null, "classification_id": 1, "items": [ { "id": 984 "weight": 500, "height": 8, "width": 8, "length": 8, "sku": "ITEM1" } ], "container": null }, { "id": 76524 "weight": 10000, "height": 10, "width": 50, "length": 30, "volume": 15000, "sku_id": null, "classification_id": 1, "items": [ { "id": 986 "weight": 500, "height": 8, "width": 8, "length": 8, "sku": "ITEM1" }, { "id": 987 "weight": 500, "height": 8, "width": 8, "length": 8, "sku": "ITEM2" } ], "container": { "id": 2, "description": "Caja Mediana 2", "inner_width": 14, "inner_length": 11, "inner_height": 8, "outer_width": 15, "outer_length": 12, "outer_height": 9, "empty_weight": 100, "max_weight": 3000 } } ], "results": { "standard_delivery": { "selectable": true, "impediments": null, "logistic_type": "carrier_dropoff", "carrier": { "id": 205, "name": "Leset", "rating": 0.95, "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/leset\/9Bw6vmnLH2ZUvKTdAcQtqJRkvkZdJTqcPlR9nwYU.png" }, "service_type": { "id": 10, "code": "return_origin", "name": "Devolución a origen", "is_urgent": 0 }, "delivery_time": { "min": 3, "max": 7 }, "amounts": { "price_shipment": 315.79, "price_insurance": 8.18, "price": 323.97, "price_incl_tax": 392 }, "rate": { "source": "tariff", "id": 12957, "tariff_id": 71 }, "tags": [ "cheapest", "fastest" ] } }, "all_results": [ { "selectable": true, "impediments": null, "logistic_type": "carrier_dropoff", "carrier": { "id": 205, "name": "Leset", "rating": 0.95, "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/leset\/9Bw6vmnLH2ZUvKTdAcQtqJRkvkZdJTqcPlR9nwYU.png" }, "service_type": { "id": 10, "code": "return_origin", "name": "Devolución a origen", "is_urgent": 0 }, "delivery_time": { "min": 3, "max": 7 }, "amounts": { "price_shipment": 315.79, "price_insurance": 8.18, "price": 323.97, "price_incl_tax": 392 }, "rate": { "source": "tariff", "id": 12957, "tariff_id": 71 }, "tags": [ "cheapest", "fastest" ] }, { "selectable": true, "impediments": null, "logistic_type": "carrier_pickup", "carrier": { "id": 220, "name": "Malargue", "rating": 0.94, "logo": "https:\/\/zippin-ar.s3.amazonaws.com\/carriers\/malargue\/gzHM0KZOWMtDbd0svUiRJpiExH9uIQsAa3n8auke.png" }, "service_type": { "id": 10, "code": "return_origin", "name": "Devolución a origen", "is_urgent": 0 }, "delivery_time": { "min": 5, "max": 10 }, "amounts": { "price_shipment": 725.7, "price_insurance": 8.18, "price": 733.88, "price_incl_tax": 888 }, "rate": { "source": "tariff", "id": 13050, "tariff_id": 113 }, "tags": [] } ] }