Estas recetas muestran cómo una marca con Enterprise conecta su circuito de venta con el módulo de campo, la API de escritura y sus webhooks de campo (página de planes): los pedidos tomados en las tiendas se convierten en pedidos de venta, vuelve la respuesta del ERP y el ERP factura a partir de los albaranes que firmaron las tiendas. MercaMap nunca pone precios, impuestos ni facturas; lo hace tu ERP. Los archivos se describen en Formatos CSV del módulo de campo.
Lo que comparten todas las recetas
Claves. Un administrador crea en «Ajustes de la cuenta» › «API» una clave para la integración (orders:read, orders:write, deliveries:read, catalogue:write) y, si se quiere, otra para informes (data:read, releases:read, issues:read, scorecards:read). Guárdalas en el almacén de secretos de la plataforma, nunca en el código de un programa, y envíalas como Authorization: Bearer.
Datos maestros. Un proceso programado envía las referencias a POST /api/portal/v1/imports/skus, los códigos de tienda a /imports/store_codes una vez emparejada cada tienda con nuestro identificador de tienda (la columna store_id de cualquier exportación), las tarifas que enseñan tus comerciales a /imports/price_list?priceListId=… (se muestran, nunca se suman) y las cargas de cada furgoneta a /imports/van_load, una vez por documento. Para las referencias basta una vez por semana, y una celda vacía conserva lo que MercaMap tiene.
Pedidos. Un pedido llega al ERP cuando se entrega, y solo un pedido entregado admite la respuesta del ERP. La oficina entrega los pedidos por archivo («Pedidos» › «Entregar al ERP», con el formato de MercaMap o con el de Odoo o NetSuite), o la cuenta entrega cada uno en cuanto la tienda lo confirma (Archivos del ERP y entrega de pedidos). Por eso el ERP importa ese archivo, o lee GET /orders?status=handed_off cada pocos minutos; o toma él mismo los pedidos confirmados: lee GET /orders?status=confirmed y llama a POST /orders/{id}/handoff para cada uno, que entrega el pedido una vez por nuestro identificador y, si se llama de nuevo, responde con el pedido tal como está. Lee GET /orders/{id} para conocer la tienda y las líneas de cada pedido, y crea el pedido de venta con el identificador de pedido de MercaMap como referencia, para que un reintento encuentre el pedido que ya ha creado, y responde con POST /orders/{id}/answer: {"answer": "acknowledged", "externalRef": "…"}, o {"answer": "rejected", "reason": "…"} cuando el pedido está bloqueado. Un pedido respondido sale de esa lista; el archivo de respuestas hace lo mismo por CSV.
Albaranes. Con el webhook delivery.recorded, o una vez al día con deliveries.csv?days=1, el ERP lee cada albarán con GET /deliveries/{id} (su número, como A-000123, su tienda, su pedido y sus líneas) y crea a partir de él sus propios documentos, con el número del albarán como referencia. Un albarán anulado más tarde aparece como voided: deshaz lo que se ha hecho a partir de él. El propio MercaMap envía el PDF del albarán a la dirección confirmada de la tienda.
Comprobaciones. Cada semana, concilia los pedidos aceptados en MercaMap con los pedidos de venta que llevan una referencia de MercaMap, y los albaranes de la semana con lo que el ERP ha contabilizado. La página «Actividad» de la cuenta nombra la clave que hay detrás de cada respuesta y de cada importación.
SAP S/4HANA y SAP ERP
- Claves: en el destino de SAP BTP o en el almacén seguro de Integration Suite.
- Referencias: un iFlow de Integration Suite, o un informe ABAP programado en SM36 que llama al endpoint con
CL_HTTP_CLIENT, lee los materiales que vende la marca (MARA y MVKE):codees el número de material,eanel EAN que MEAN tiene para la unidad de medida base, la que se lleva el comprador (nunca el de la unidad de venta, que puede ser una caja), ycase_sizeel numerador de la unidad de venta. - Códigos de tienda: los solicitantes o los destinatarios de mercancía, con
codecomo número de cliente de SAP yglncomo el ILN. Tarifas: los registros de condición PR00, un archivo por tarifa. Cargas de furgoneta: los traslados de existencias al almacén de cada furgoneta. - Pedidos: crea el pedido de venta con
BAPI_SALESORDER_CREATEFROMDAT2o con el servicio ODataAPI_SALES_ORDER_SRV, con el cliente tomado del código de la tienda y el identificador de MercaMap en la referencia de cliente (BSTKD); responde con el número del pedido de venta (VBELN) comoexternalRef. - Albaranes: crea la entrega de salida o el documento de facturación a partir de cada albarán.
Microsoft Dynamics 365
- Claves: en Azure Key Vault, usadas desde Power Automate o Logic Apps con una acción HTTP.
- Referencias: la API
itemsde Business Central, o la entidad de productos liberados en Finance and Operations:codees el número de artículo,eanel GTIN de la unidad base, la que se lleva el comprador, ycase_sizesale de la unidad de medida de venta. - Códigos de tienda: los clientes o las direcciones de envío, con
codecomo número de cliente. Tarifas: una lista de precios de venta por archivo. Cargas de furgoneta: las órdenes de transferencia a la ubicación de cada furgoneta, una vez por transferencia. - Pedidos: un flujo que se repite cada pocos minutos crea el pedido de venta (la API
salesOrdersde Business Central, o las entidades de cabecera y líneas de pedido de venta en Finance and Operations) con el identificador de MercaMap como número de documento externo, y responde con el número del pedido de venta. Business Central en línea no necesita un flujo propio cuando esté abierta la conexión directa de la página «ERP»: trae los artículos, los clientes y una tarifa, y entrega los pedidos que se entregan al confirmarse. - Albaranes: un desencadenador de solicitud HTTP con
delivery.recorded, que comprueba la cabeceramercamap-signature, registra el envío y la factura de venta con el número del albarán como número de documento externo; un albarán anulado revierte lo registrado.
JD Edwards EnterpriseOne
- Claves: en una conexión REST de Orchestrator que envía la cabecera
Authorization: Bearer, nunca en los pasos de una orquestación. - Referencias: una orquestación programada lee los artículos (F4101 y F4102, y de la referencia cruzada de artículos el GTIN de la unidad que se lleva el comprador, no el de la caja):
codees el número corto o el segundo número de artículo ycase_sizesale de la conversión de unidades de medida. - Códigos de tienda: las direcciones de envío (F0101 y F0301), con
codecomo número de dirección. Tarifas: los precios base (F4106) de cada tarifa. Cargas de furgoneta: los traslados a la sucursal/planta de cada furgoneta, una vez por traslado. - Pedidos: una orquestación cada pocos minutos introduce cada pedido con Sales Order Entry (P4210) mediante una solicitud de formulario, con el identificador de MercaMap como pedido de cliente, y responde con el número de pedido.
- Albaranes: confirma el envío (P4205) de las líneas del albarán y deja que la actualización de ventas lo facture, con el número del albarán en la referencia; un albarán anulado revierte lo confirmado.