Descripción del proyecto
TraducidoEspecíficamente, la integración debe transmitir automáticamente pedidos, facturas, clientes, productos e inventario en ambas direcciones. Un nuevo pedido en la tienda debe aparecer en el sistema contable como una factura o venta con el cliente correctamente vinculado; un cliente creado o cambiado en cualquiera de los lados debe coincidir, no duplicarse; y cuando el stock cambia debido a una venta, devolución o ajuste manual, el otro sistema debe recogerlo. Valoramos un mapeo de campos claro, por lo que decidimos cómo los campos de la tienda se mapean a los campos contables (impuestos, SKUs, métodos de pago, monedas), y así este mapeo puede ser revisado y corregido, no una "caja negra".
Dado que la sincronización es bidireccional, los conflictos son inevitables, y cómo los resuelves es más importante para nosotros que la velocidad bruta. Si el mismo cliente o producto se cambia en ambos lados entre ejecuciones, necesitamos reglas razonables, una elección de fuente de verdad para cada entidad, y un registro que muestre qué cambió, qué se omitió y qué se escaló para revisión humana. Por favor, describe cómo construirás la sincronización (ejecuciones programadas más casi en tiempo real donde sea crítico), cómo eliminarás duplicados, cómo recuperarás si la API de contabilidad está caída por un minuto, y cómo nos permitirás reiniciar de manera segura un lote fallido sin duplicar facturas.
— Entidades: pedidos, facturas, clientes, productos, inventario
— Intercambio bidireccional, fuente de verdad y registro de conflictos para cada entidad
— Mapeo de campos editable (impuesto, SKU, moneda, método de pago)
— Reintentos seguros y reinicios idempotentes sin facturas duplicadas