Saltearse al contenido

Pedidos

Pedidos es la orden de compra: qué se vendió, a quién, por cuánto y en qué punto va. Su clave es pedidos. Nace del checkout del sitio o por API con un token de Sitio, y es la pieza que dice si el dinero llegó.

  • Order con líneas y consecutivo propio, y cinco estados: new, payment_review, verified, delivered y rejected.
  • Cinco orígenes: el checkout por token de Sitio, el checkout del widget, y tres pedidos-espejo de la facturación de Merez (alta de plan, recarga y cambio de plan). Se distinguen por source_type, no por una columna nueva.
  • Máquina de estados con una sola guarda. No hay camino de vuelta: un entregado no se rechaza y un rechazado no revive. Entregar antes de verificar da 422. Cada transición se escribe en la línea de tiempo del cliente.
  • El total se recalcula de las líneas guardadas. El precio del widget sale del catálogo; el precio que manda el cuerpo se ignora.
  • El stock sale al entregar, no al verificar el pago.
  • Un pedido verificado emite su recaudo solo, y el recaudo se trabaja en su propia bandeja.
  • El módulo pedidos. La bandeja y las transiciones lo exigen; el checkout con token de Sitio lleva además la habilidad orders de ese token.
  • El catálogo, para saber qué existe, qué tiene precio y qué es producto y qué servicio: de ahí sale el tipo de cada línea.
  • El cobro. Bre-B es manual y del propio módulo: llave o QR del negocio y un enlace de WhatsApp con el total y el mensaje. Wompi es otro módulo, Pagos.
  • Inventario, para que la entrega descuente existencias: si inventory está apagado, la entrega no mueve stock.
  • La bandeja y las transiciones dan 403 con {"module": "pedidos"}; la lista se filtra a cero en vez de listar pedidos de un sitio sin el módulo.
  • POST /api/orders, el checkout con token de Sitio, también queda cerrado.
  • Ojo: POST /api/checkout, el del widget público, no consulta el módulo. Hoy apagarlo no cierra esa puerta.
  • No hay devoluciones a nivel de pedido. Se usan las del POS, a propósito: no se duplica el concepto. No es un hueco, es una frontera.
  • No emite documentos fiscales. Eso es del POS; aquí no hay factura al declarar, verificar ni entregar.
  • Un producto de otro sitio: el checkout con token descarta solo esa línea; el del widget rechaza el pedido entero con 422, porque a un visitante no se le pide corregir el carrito a mitad de camino.
  • El QR es una foto, no lleva el monto inyectado. Generar el QR con el importe solo está cableado para planes y recargas.
  • El checkout del widget exige consentimiento cuando el sitio lo pide; el de token no lo valida. Es una lectura del código, sin decisión escrita que la confirme.
  • La IA no toca el pago: no tiene herramienta para marcar un pedido como pagado, verificado ni entregado. Si el cliente dice que ya pagó, lo anota y sugiere que alguien lo revise. Los cobros por Bre-B los confirma una persona.
  • Un monto que no casa al centavo nunca verifica un pedido a ciegas: deja un aviso en el log.