Realizá un envío
Antes de realizar tu primer envío, es necesario comprender cómo se estructura la información de envíos en Envíopack.
Envíopack maneja dos entidades principales:
Pedido
Es la entidad que representa al pedido u orden en tu aplicación. Tiene los datos básicos para poder identificar un pedido de tu plataforma en Envíopack.
Envío
Es la entidad que representa al envío físico de tu pedido. De hecho, todo envío debe estar asociado a un pedido.
Tal como sucede en la realidad, un pedido puede tener uno o más envíos asociados: envío inicial, reintento de envío, devolución, etc.
Cada uno de estos representa un envío real por parte del correo, y de la misma manera, tiene su representación
en Envíopack.
Crear un pedido
POST /pedidos
Crea un nuevo pedido en Envíopack.
Listado de parámetros
Parámetro | ¿Es Obligatorio? | Tipo de Dato | Observaciones |
---|---|---|---|
id_externo | Sí | String | Máx. 30 caracteres |
nombre | Sí | String | Máx. 30 caracteres |
apellido | Sí | String | Máx. 30 caracteres |
Sí | String | Máx. 100 caracteres | |
telefono | No | String | Máx. 30 caracteres |
celular | No | String | Máx. 30 caracteres |
monto | Sí | Numero | Hasta 2 dígitos decimales |
fecha_alta | Sí | Fecha | Ej. 2016-04-26 13:52:00 |
pagado | Sí | Booleano | Recordá que "Booleano" no es "String" |
provincia | No | ID | Deberá informarse el valor ID devuelto por el webservice de provincias. Los IDs de provincias están bajo el estándar ISO_3166-2:AR sin el prefijo AR-. |
localidad | No | String | Máx. 50 caracteres |
productos | Condicional | Array |
Si tenes tu maestro de productos cargados en Envíopack, podes indicarnos qué productos
están asociados al pedido.
El uso del parámetro "productos" es de implementación obligatoria si utilizas el servicio de Fulfillment. El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
|
empresa | No | ID |
Este parámetro solo está disponible para cuentas de marketplaces. Permite crear un pedido en la cuenta de un seller y asociarlo a la cuenta del marketplace.
Te recomendamos revisar la sección "Marketplaces" en esta API Docs. |
Ejemplo
REQUEST
curl -X POST \
'https://api.enviopack.com/pedidos?access_token=[TU_ACCESS_TOKEN]' \
--data-binary '
{
"id_externo":"00001",
"nombre":"Juan",
"apellido":"Perez",
"email":"juanperez@gmail.com",
"telefono":"011 4965-1453",
"celular":"011 15 5848 1533",
"monto": 1234.50,
"fecha_alta":"2016-04-26 13:52:00",
"productos":[
{"tipo_identificador":"SKU","identificador":"ABC1234","cantidad":1},
{"tipo_identificador":"ID","identificador":65811,"cantidad":2},
],
"pagado": true,
"provincia":"C",
"localidad":"CABA"
}'
RESPONSE
{
"id_provincia":"C",
"id":352,
"plataforma":{
"id":"web",
"nombre":"Web"
},
"id_externo":"00001",
"nombre":"Juan",
"apellido":"Perez",
"email":"juanperez@gmail.com",
"telefono":"011 4965-1453",
"celular":"011 15 5848 1533",
"localidad":"CABA",
"monto":1234.5,
"fecha_alta":"2016-04-26 13:52:00",
"pagado":true,
"ultimo_envio":null
}
Crear un envío
POST /envios
Antes de crear tu primer envío es importante comprender los distintos estados del mismo.
Estado | Identificador | Observaciones |
---|---|---|
Borrador | B | Es aquel envío no confirmado, dado que aun no tiene sus datos completos. |
Por Confirmar | C | Es aquel envío no confirmado, que tiene todos sus datos completos menos la selección de servicio y correo a utilizar. |
En Proceso | E | Es aquel envío confirmado, que esta en camino a ser informado al correo. |
Procesado | P | Es aquel que ya fue informado al correo y tiene la etiqueta lista para ser impresa. |
Tené en cuenta que tus envíos no tienen que pasar obligatoriamente por cada uno de los estados.
Eso dependerá de tu operatoria.
Por ejemplo:
- - Podes crear un envío sin confirmar y con datos faltantes, el cual se posicionará en estado "Borrador".
- - Podes crear un envío sin confirmar, con todos los datos completos excepto la selección de servicio y correo a utilizar, lo que hará que se cree directamente se cree con estado "Por Confirmar".
- - Podes crear un envío con todos sus datos completos y confirmarlo, lo que hará que se cree directamente con estado "En Proceso".
En todos los casos, el estado final "Procesado" se alcanza una vez que se recibe la confirmación final por parte del correo y es informado por Envíopack a través de nuestro sistema de Notificaciones (Webhooks).
Por ultimo, recordá que podes crear un nuevo envío asociado a un pedido siempre y cuando dicho pedido no tenga envíos asociados o todos sus envíos estén en estado "Procesado".
Listado de parámetros
Los parámetros marcados como "Condicional" son aquellos que solo son obligatorios cuando el valor del parámetro "confirmado" es true.
Parámetro | ¿Es Obligatorio? | Tipo de Dato | Observaciones |
---|---|---|---|
pedido | Sí | ID | ID del pedido al que corresponde este envío |
direccion_envio | Condicional | ID |
ID que identifica la dirección, por donde el correo pasara a retirar la mercadería a enviar.
Podes obtenerlo ingresando en Configuración / Depósitos |
destinatario | Condicional | String | Máx. 50 caracteres |
observaciones | No | String | |
usa_seguro | No | Booleano |
Recordá que "Booleano" no es "String".
Si completas este campo con null o no lo envías en el request, se completará automáticamente según el modo de seguro elegido en tus preferencias. |
confirmado | Sí | Booleano | Recordá que "Booleano" no es "String". |
productos o paquetes |
Condicional | Array |
Podes enviar uno de estos dos campos posibles: "productos" o "paquetes".
Si tenes tu maestro de productos cargados en Envíopack, podes simplemente indicarnos qué productos tiene el envío y nosotros nos encargamos de separarlos en paquetes según la configuración que hayas elegido dentro de cada producto. El uso del parámetro "productos" es obligatorio si utilizas el servicio de Fulfillment. También es nuestra opción recomendada. Si, por el contrario, querés especificar cómo se conforma cada paquete en particular, también podés hacerlo. Si vas a usar el campo "productos": El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
Si vas a usar el campo "paquetes": El valor esperado es un array JSON, donde cada posición del array debe contener un objeto JSON formado por:
|
tiene_fulfillment | Condicional | Booleano |
Recordá que "Booleano" no es "String".
Debes indicar si el envío será despachado desde el depósito de Fullpack. En caso de que no tengas el servicio de Fullpack activado, el valor por defecto es false. En caso de que sí lo tengas activado, el valor por defecto es true. |
despacho | Condicional | String |
Indica si el operador logístico debe retirar el paquete desde el depósito del vendedor o si el vendedor lo llevará a una sucursal.
Los valores posibles son: - D: retiro por domicilio - S: despacho desde sucursal |
modalidad | Sí | String |
Los valores posibles son:
- D: para envíos a domicilio - S: para envíos a sucursal |
servicio | Condicional | String |
Los valores posibles son:
- N: para el servicio estándar - P: para el servicio prioritario - X: para el servicio express - R: para el servicio de devoluciones |
Si el envío es a domicilio | |||
correo | Condicional | ID |
Deberá informarse el valor ID devuelto por el webservice de correos.
Por ejemplo, para FastMail su ID es "fastmail". |
calle | Condicional | String | Máx. 50 caracteres |
numero | Condicional | String | Máx. 5 caracteres |
piso | No | String | Máx. 6 caracteres |
depto | No | String | Máx. 4 caracteres |
referencia_domicilio | No | String | Máx. 30 caracteres |
codigo_postal | Condicional | Numero | Entero de 4 dígitos |
provincia | Condicional | ID | Deberá informarse el valor ID devuelto por el webservice de provincias. Los IDs de provincias están bajo el estándar ISO_3166-2:AR sin el prefijo AR-. |
localidad | Condicional | String | Máx. 50 caracteres |
Si el envío es a sucursal | |||
sucursal | Condicional | ID | Deberá informarse el valor ID devuelto por el webservice de sucursales. |
Ejemplo
REQUEST Utilizando el campo "productos" (Obligatorio para uso de Fulfillment)
curl -X POST \
'https://api.enviopack.com/envios?access_token=[TU_ACCESS_TOKEN]' \
--data-binary '
{
"pedido":353,
"direccion_envio":1,
"destinatario":"Juan Perez",
"observaciones":"Timbre 5 - 3 - Campana",
"modalidad":"D",
"servicio":null,
"correo":null,
"confirmado":false,
"productos":[
{"tipo_identificador":"SKU","identificador":"ABC1234","cantidad":1},
{"tipo_identificador":"ID","identificador":65811,"cantidad":2},
],
"calle":"Ambrosetti",
"numero":"435",
"piso":"5",
"depto":"C",
"codigo_postal":"1405",
"provincia":"C",
"localidad":"Caballito"
}'
REQUEST Utilizando el campo "paquetes"
curl -X POST \
'https://api.enviopack.com/envios?access_token=[TU_ACCESS_TOKEN]' \
--data-binary '
{
"pedido":353,
"direccion_envio":1,
"destinatario":"Juan Perez",
"observaciones":"Timbre 5 - 3 - Campana",
"modalidad":"D",
"servicio":null,
"correo":null,
"confirmado":false,
"paquetes": [
{"alto":52,"ancho":42,"largo":3,"peso":2},
{"alto":52,"ancho":42,"largo":4,"peso":2.5}
],
"calle":"Ambrosetti",
"numero":"435",
"piso":"5",
"depto":"C",
"codigo_postal":"1405",
"provincia":"C",
"localidad":"Caballito"
}'
RESPONSE
{
"id":358,
"pedido":353,
"direccion_envio":1,
"destinatario":"Juan Perez",
"modalidad":"D",
"calle":"Ambrosetti",
"numero":"435",
"piso":"5",
"depto":"C",
"codigo_postal":"1405",
"referencia_domicilio": null,
"provincia":"C",
"localidad":"Caballito"
"paquetes":[
{"alto":52,"ancho":42,"largo":3,"peso":2},
{"alto":52,"ancho":42,"largo":4,"peso":2.5}
],
"observaciones":"Timbre 5 - 3 - Campana",
"correo":null,
"servicio":null,
"confirmado":false,
"fecha_solicitud":"2016-04-23T21:28:37-0300",
"fecha_aceptacion":null,
"tracking_number":null,
"peso_aforado":4.5,
"estado":"C",
"costo_envio": null,
"costo_seguro": null,
"costo":null,
"condicion": "R",
}