Realizá un envío
Antes de realizar tu primer envío es necesario comprender como 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 mas 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 que productos
tiene asociado el pedido.
El uso del parametro "productos" de implementación obligatoria si usas 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 esta disponible para cuentas marketplaces. Permite crear un pedido en la cuenta de un seller y asociado a la cuenta 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 posicionara en estado "Borrador"
- - Podes crear un envío sin confirmar, con todos los datos completos menos la selección de servicio y correo a utilizar, lo que hará que directamente se cree con estado "Por Confirmar"
- - Podes crear un envío con todos su datos completos y confirmado, lo que hará que directamente se cree 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 / Mis Direcciones |
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 envias en el request se completara automaticamente 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 que productos tiene el envío y nosotros nos ocupamos de separarlo en paquetes segun la configuracion que haya elegido dentro de cada producto. El uso del parametro "productos" de implementación obligatoria si usas el servicio de Fulfillment. También es nuestra opción recomendada Si por el contrario queres especificamente indicar como se conforma cada paquete en particular tambien podes 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 envio será despachado desde el deposito de fullpack. En el caso de que no tengas es el servicio de Fullpack activado el valor por defecto es false. En caso de que si lo tengas activado el valor por defecto es true. |
despacho | Condicional | String |
Indica si el operador logistico debe retirar el paquete por el deposito del vendedor o si el vendedor lo va a acercar 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",
}