Nos integramos con tu ERP para marcas que usan Fulfillment 3PL
La integración con ERPs se lleva por medio de un intercambio de APIs, algunos endpoints deben ser provistos por el ERP, y otros leídos por el ERP. APLIN OS es un sistema de gestión de almacén y es la fuente de verdad de dónde están los productos y cuánto inventario hay.
El ERP abrirá endpoints para que preguntemos cada cierto tiempo qué recursos son nuevos para crearlos, o han cambiado para actualizarlos. Y APLIN OS notificará cuando estos estén procesados.
La comunicación se deberá llevar por medio de una API en formato JSON.
La integración pretende sincronizar:
Ingresos: Artículos y cantidades de cada uno a recibir.
Ordenes: Artículos y cantidades de cada uno por enviar.
Intercambio de información
Pull (Lectura) de información del ERP hacia APLIN OS
Para que APLIN OS cree la información del ERP de Ingresos y Ordenes; el ERP debe tener endpoints que permitan obtener la información filtrando por fecha de creación:
GET /inbounds
GET /orders
Los endpoints podrán tener cualquier URL pero deberán tener un cuerpo que pueda relacionarse con los campos que se detallan a continuación.
Para que APLIN pueda actualizar información ya creada usando la información del ERP necesita además proveer la capacidad de filtrar por fecha de actualización a la información.
¡No toda la información se actualizará!
No siempre podrá actualizarse información ya creada en APLIN OS.
Es importante proveer a APLIN un endpoint con el cual notificar al ERP cuándo una orden o ingreso no pueda ser modificada. Si un recurso no puede cambiarse por integración deberá ser modificado directamente en nuestra plataforma.
Push de información de APLIN OS hacia el ERP
Para que el ERP pueda mantener sincronizada la información en base al avance de los procesos de almacén APLIN OS podrá notificar a los siguientes endpoints endpoints de su ERP:
PATCH /inbounds/:id/inbound
PATCH /orders/:id/ship
Sincronización de órdenes
Proceso funcional
El ERP tiene un endpoint con las órdenes por surtir.
El endpoint indica el tipo de orden (eg, dropship o mayoreo) y el canal (eg, amazon).
APLIN OS crea esas órdenes y las libera automáticamente * si hay stock, de lo contrario permanecen abiertas y se liberan en cuanto tengan stock disponible.
APLIN OS notifica al ERP cuando las órdenes hayan sido enviadas.
Modificaciones en las salidas:
Preguntaremos constántemente al ERP sobre las ventas.
Si una de las líneas cambia o la orden se cancela, antes de que se se inicie el surtido se refleja en el sistema. En caso de que se modifique posterior al surtido solo podrá haber cambios negativos (quitar piezas, líneas o cancelación completa).
Las piezas retiradas de las órdenes serán marcadas para retorno a almacén por un operador.
El ERP deberá bloquear la modificación positivo (eg, agregar líneas o piezas) en órdenes que ya hayan iniciado su proceso de surtido.
Endpoint GET Órdenes del ERP
Filtros
APLIN OS necesitará filtrar órdenes por:
Número de orden.
Estatus.
Fecha de última actualización.
Campos
Campo | Descripción |
order.orderNumber | Cadena de texto que servirá como identificador de la orden |
order.type | Identificador del tipo de orden necesario para su correcto procesamiento (Dropship, retail, etc.) |
order.buyer | Objeto que debe contar con los siguientes campos:
|
order.lines[] | Array de objetos. Cada uno de los objetos debe contener la siguiente información respecto a los artículos que forman parte de la orden:
|
order.address | Objeto que debe contar con los siguientes campos:
|
order.created | Fecha y hora de creación de la orden |
order.updated | Fecha y hora de la última actualización de la orden. Es útil para saber si se debe reflejar alguna actualización en las órdenes registradas |
order.skip | Bool que servirá para identificar si la creación de una orden debe omitirse. Al tener este valor en true, la orden no será creada ni verá sus actualizaciones reflejadas en sistema |
order.shipments[] | Array de objetos. Cada uno con un envío / guía que debemos de usar para empacar la orden:
|
Sincronización de ingresos
Proceso funcional
Vamos a leer un endpoint que nos dice los ingresos por arribar.
El endpoint indica el tipo de ingreso.
En el dashboard de APLIN OS un supervisor va a marcarlos como Arribados.
Esto cambia el estado de Pendiente a En proceso: Arribado y disponibiliza el ingreso para seleccionar en la handheld.
Un operador selecciona el ingreso en la handheld y inicia a contar las piezas.
Si el ingreso se concluyó de contar con faltantes, el estado cambia a Diferencia y esta es aprobada en el Dashboard por un supervisor.
Si el ingreso terminó de contar sin faltantes, o se aprobó la diferencia este cambia a un estado de Ingresado.
Al terminar el ingreso, notificaremos al ERP las piezas recibidas de cada SKU.
Modificaciones al ingreso:
Preguntaremos constántemente al ERP los cambios de los ingresos no finalizados, y en caso de que se agregue o elimine una línea, o se cancele el ingreso editaremos la cantidad esperada de cada linea del ingreso en APLIN OS para reflejar el movimiento.
Endpoint GET Ingresos del ERP
Filtros
APLIN OS necesitará filtrar ingresos por:
Número de orden.
Estatus.
Fecha de última actualización.
Campos
Campo | Descripción |
inbound.inboundNumber | Cadena de texto que servirá como identificador del ingreso |
inbound.lines[] | Array de objetos. Cada uno de los objetos debe contener la siguiente información respecto a los artículos que forman parte del ingreso:
|
inbound.supplier | Campo opcional que consiste en una cadena de texto que servirá como identificador del proveedor relacionado al ingreso |
inbound.created | Fecha y hora de creación del ingreso |
inbound.updated | Fecha y hora de la última actualización del ingreso. Es útil para saber si se debe reflejar alguna actualización en los ingresos registrados |
inbound.skip | Bool que servirá para identificar si la creación de un ingreso debe omitirse. Al tener este valor en true, el ingreso no será creado ni verá sus actualizaciones reflejadas en sistema |
Endpoints Push de APLIN OS → ERP
PATCH Ordenes - /orders/:id/ship
Podemos avisar a su ERP cuando una orden haya sido enviada, junto con los skus y guías que se usaron para mandarlas con un cuerpo como este:
Campo | Descripción |
lines | Array de objetos que contiene el desglose de los productos enviados:
|
shipments[] | Array de objetos. Cada uno de los envíos / guías que se usaron para empacar la orden:
|
PATCH Inbounds - /inbounds/:id/inbound
Podemos avisar a su ERP cuando un ingreso haya sido recibido, junto con los skus que se contaron para mandarlas con un cuerpo como este:
Campo | Descripción |
lines | Array de objetos que contiene el desglose de los productos y cantidades reportadas que forman parte del ingreso incluyendo:
¡Importante, la cantidad declarada y recibida puede ser diferente si contamos piezas de más o de menos! Sin embargo, solo avisaremos de las cantidades una vez que se aprueben las diferencias por uno de SUS usuarios en nuestra plataforma. |