Files
mercadodevida/work/artifacts/POS-RECEIPT-QUICK-FIXES/implementer.md

1.9 KiB

Implementer evidence — POS-RECEIPT-QUICK-FIXES

Cambios realizados

1) Productos rápidos: nuevo flujo con buscador + lista de hasta 8

  • Reemplacé los <select> de productos rápidos en project/apps/admin/src/app/(dashboard)/pos/page.tsx.
  • Ahora el admin usa:
    • buscador por nombre / SKU / EAN
    • resultados con botón Añadir
    • lista ordenada de 8 huecos máximos
    • botones ↑ Subir, ↓ Bajar, Quitar
    • botón explícito Guardar accesos rápidos
  • El modal ya hidrata los productos ya guardados mediante variantIds, así se ven nombre/SKU al reabrir la configuración.

2) Fix del guardado que no persistía

  • El bug principal en admin era funcional/UI: existía saveTouchConfig() pero no había ningún botón que lo disparase.
  • Añadí el botón de guardado y mantuve el payload esperado por backend (quickProductVariantIds longitud 8).

3) Backend de catálogo para el buscador

  • Extendí GET /pos/admin/catalog-products en project/src/modules/pos/api/pos.routes.ts.
  • Ahora acepta:
    • q (búsqueda)
    • limit
    • variantIds (para hidratar la selección ya guardada)
  • Deja de ser necesario cargar toda la lista de variantes al entrar en la página del POS admin.

Validación

  • cd project && npm run build
  • cd project/apps/admin && npm run build
  • ./scripts/monolith.sh prod restart
  • ./scripts/monolith.sh prod check
  • Prueba real vía proxy admin con sesión backoffice temporal:
    • GET /api/pos/admin/catalog-products?q=alm&limit=5 → 200 con JSON esperado
    • PATCH /api/pos/admin/terminals/:id/touch-config → 200 { "ok": true }
    • verificado en BD que pos_terminals.settings.quickProductVariantIds quedó persistido con 8 slots

Observaciones

  • ./scripts/verify.sh sigue fallando por un artefacto viejo no relacionado:
    • TPV-FIXES/reviewer.json agent debe ser 'reviewer'
  • No se cerró la feature; sigue pendiente de gates y de limpiar ese artefacto heredado.