Skip to content
APLIN Help Center home
APLIN Help Center home

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

  1. El ERP tiene un endpoint con las órdenes por surtir.

  2. El endpoint indica el tipo de orden (eg, dropship o mayoreo) y el canal (eg, amazon).

  3. 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.

  4. 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:

  • name: Nombre del comprador

  • lastName: Apellido del comprador

  • email: Correo electrónico del comprador para contacto (opcional)

  • phone: Teléfono del comprador para contacto (opcional)

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:

  • sku: Identificador del artículo

  • quantity: Cantidad de piezas dentro de la orden

order.address

Objeto que debe contar con los siguientes campos:

  • name: Nombre de la persona que recibirá la orden

  • lastName: Apellido de la persona que recibirá la orden

  • phone: Teléfono del destinatario de la orden para contacto

  • street1: Dirección de entrega de la orden

  • street2: Campo opcional  de complemento para dirección de entrega de la orden

  • reference: Campo opcional de detalles o indicaciones para identificación de dirección de entrega

  • country: País destino de la orden

  • city: Ciudad destino de la orden

  • company: Nombre de empresa de destino (opcional)

  • state: Estado destino de la orden

  • zip: Código postal destino de la orden

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:

  • file: Guía en formato base64.

  • fileName: Nombre del archivo con extensión (eg, .pdf, .png)

  • waybill: Número de tracking.

  • courier: Nombre de la paquetería.

Sincronización de ingresos

Proceso funcional

  1. Vamos a leer un endpoint que nos dice los ingresos por arribar.

  2. El endpoint indica el tipo de ingreso.

  3. En el dashboard de APLIN OS un supervisor va a marcarlos como Arribados.

  4. Esto cambia el estado de Pendiente a En proceso: Arribado y disponibiliza el ingreso para seleccionar en la handheld.

  5. Un operador selecciona el ingreso en la handheld y inicia a contar las piezas.

  6. Si el ingreso se concluyó de contar con faltantes, el estado cambia a Diferencia y esta es aprobada en el Dashboard por un supervisor.

  7. Si el ingreso terminó de contar sin faltantes, o se aprobó la diferencia este cambia a un estado de Ingresado.

  8. Al terminar el ingreso, notificaremos al ERP las piezas recibidas de cada SKU.

Modificaciones al ingreso:

  1. 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:

  • sku: Identificador del artículo

  • quantity: Cantidad de piezas reportadas dentro del ingreso

  • batch: Identificador del lote al que pertenecen los productos.

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:

  • batchNumber: Identificador del lote registrado por el usuario asignado a la pieza

  • quantity: Cantidad de piezas enviadas dentro de la orden.

  • sku: SKU del producto (si el producto cuenta con variaciones será null)

shipments[]

Array de objetos. Cada uno de los envíos / guías que se usaron para empacar la orden:

  • waybill: Número de tracking.

  • courier: Nombre de la paquetería.

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:

  • batchNumber: Identificador del lote registrado por el usuario asignado a la pieza

  • quantityDeclared: Cantidad de piezas reportadas dentro del ingreso

  • quantityReceived: Cantidad real de piezas recibidas en el ingreso

  • sku: SKU del producto (si el producto cuenta con variaciones será null)

¡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.