Integrar Amazon y Miravia con el ERP significa que los pedidos de los dos marketplaces entren solos en tu sistema de gestión y que el stock y los precios salgan de él, con una única fuente de verdad. Para una empresa de Madrid que vende en ambos canales, evita sobreventas y descuadres contables. Es un proyecto típico de integración de marketplaces con tu ERP a medida.
Sin integración, alguien descarga los pedidos de Seller Central y del panel de Miravia para teclearlos en el ERP, y actualiza existencias a mano varias veces al día. Cada hueco entre venta y actualización abre una sobreventa: vendes la misma unidad dos veces y cancelas un pedido. A fin de mes, otra persona cuadra a mano las liquidaciones.
Al terminar sabrás qué dato manda en cada sistema y si te basta un conector, igual que lo decidiste al conectar el ERP con tu tienda online propia.
Qué es integrar Amazon y Miravia con el ERP
Integrar Amazon y Miravia con el ERP es conectar sus APIs de vendedor con tu sistema de gestión mediante una capa intermedia que importa pedidos, exporta stock y precios, publica catálogo y trae las liquidaciones. El ERP queda como referencia de inventario y cada marketplace es un canal más, algo distinto de construir tu propio marketplace desde cero.
En Amazon, la vía oficial es la Selling Partner API (SP-API). Miravia ofrece a sus vendedores una Open Platform en open.miravia.com; si tu ERP no tiene integración con ella, la alternativa es un conector comercial que traduzca Miravia a tu modelo interno.
Qué se sincroniza y quién manda sobre cada dato
Cada dato necesita un único sistema maestro: el ERP manda sobre stock y precio, y el marketplace sobre pedido y liquidación.
- Pedidos: Maestro: marketplace. Entran al ERP con su identificador de canal.
- Stock: Maestro: ERP. Sale como físico menos reservado menos un colchón de seguridad. El de Logística de Amazon (FBA) solo se lee.
- Precios y catálogo: Maestro: ERP o PIM. Salen con los atributos que exige cada marketplace.
- Devoluciones: Las inicia el marketplace. El ERP decide si la unidad vuelve a stock vendible.
- Liquidaciones: Maestro: marketplace. Entran al ERP para contabilidad.
La lógica por almacén vive en un software de gestión de stock para empresas en Madrid; la integración publica el disponible con la reserva por pedido de la conexión de Shopify con el almacén y el ERP.
Las liquidaciones de Amazon llegan en el informe `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2`, que Amazon genera solo y se localiza con `getReports`. Cada línea se casa con su pedido y el neto con el banco, como en la casación automática de cobros bancarios por API.
Colas, límites de la SP-API y notificaciones
La SP-API limita cada operación con un algoritmo de cubo de tokens, así que la integración encola las llamadas en vez de lanzarlas en paralelo.
Los límites van por operación y un error 429 se reintenta con espera creciente, según la guía de límites de uso de la Selling Partner API. Para cambios masivos, `JSON_LISTINGS_FEED` es el equivalente por lotes de la Listings Items API.
Los pedidos llegan con la notificación `ORDER_CHANGE`, que la SP-API solo entrega en una cola de Amazon SQS. La guía de notificaciones con Amazon SQS avisa de que un aviso puede llegar repetido y desordenado, y propone el `notificationId` para detectar duplicados. Suma un sondeo periódico con `getOrders` que recupere lo perdido, como en la comparativa de webhook o cola de mensajes para sincronizar marketplaces.
Conector comercial o integración a medida
Un conector comercial compensa cuando tu ERP encaja en su modelo estándar; la integración a medida, cuando tus reglas de stock no caben en él.
- Conector, cuándo sí: tu ERP tiene conector certificado para ambos marketplaces y trabajas con un único almacén.
- Conector, cuándo no: necesitas colchones de stock distintos por canal o mezclas FBA con envío propio.
- A medida, cuándo sí: repartes stock entre varios almacenes o contabilidad exige el desglose de comisiones por pedido.
- A medida, cuándo no: vendes poco y revisar a mano cuesta menos que mantener código.
Si envías tú los pedidos, el siguiente paso es conectar tus envíos de marketplace con los transportistas por API. Si vendes producto personalizable en tu web, sus reglas salen del mismo ERP que tu configurador de producto conectado al catálogo.
CodeZone Pro Tip: este manejador recibe avisos de pedido ya normalizados y reserva stock de forma idempotente: un aviso duplicado o desordenado nunca descuenta dos veces.
// Evento normalizado: el adaptador de cada marketplace traduce su payload a esta forma
interface MarketplaceOrderEvent {
notificationId: string; // en SP-API, NotificationId: la clave para descartar duplicados
channel: "amazon" | "miravia";
orderId: string;
status: string;
lines: { sku: string; qty: number }[];
}
interface Tx { query(sql: string, params: unknown[]): Promise<{ rowCount: number }>; }
interface Db { transaction<T>(fn: (tx: Tx) => Promise<T>): Promise<T>; }
export async function handleOrderEvent(db: Db, ev: MarketplaceOrderEvent): Promise<string> {
return db.transaction(async (tx) => {
// SQS estándar puede repetir avisos: la clave primaria corta el segundo intento
const fresh = await tx.query(
"INSERT INTO processed_notifications (notification_id) VALUES ($1) ON CONFLICT DO NOTHING",
[ev.notificationId]);
if (fresh.rowCount === 0) return "duplicate";
if (ev.status === "Canceled") {
// Guardamos la cancelación para que un aviso anterior que llegue tarde no vuelva a reservar
await tx.query("INSERT INTO cancelled_orders VALUES ($1, $2) ON CONFLICT DO NOTHING", [ev.channel, ev.orderId]);
await tx.query("DELETE FROM stock_reservations WHERE channel = $1 AND order_id = $2", [ev.channel, ev.orderId]);
return "released";
}
for (const line of ev.lines) {
// Una sola reserva por canal, pedido y SKU, aunque lleguen varios avisos distintos del mismo pedido
await tx.query(
`INSERT INTO stock_reservations (channel, order_id, sku, qty)
SELECT $1, $2, $3, $4
WHERE NOT EXISTS (SELECT 1 FROM cancelled_orders WHERE channel = $1 AND order_id = $2)
ON CONFLICT (channel, order_id, sku) DO NOTHING`,
[ev.channel, ev.orderId, line.sku, line.qty]);
}
return "reserved";
});
}En negocio, el disponible que publicas en Amazon y en Miravia baja una sola vez por pedido, aunque la cola repita el aviso o la cancelación llegue antes que el pedido. Menos cancelaciones por falta de stock.
El Coste de Vender en Dos Marketplaces Sin Integración
Vender en dos marketplaces sin integración convierte cada pico de ventas en horas manuales y pedidos cancelados, y el riesgo crece con cada SKU compartido.
En Codezone fijamos qué dato manda en cada sistema antes de escribir código, y decidimos contigo si basta un conector.
Si vendes en Amazon o Miravia y tu ERP aún no se entera de los pedidos, cuéntanos tu operativa y la revisamos contigo.