Files
mercadodevida/work/artifacts/F-121/implementer.md
2026-08-21 15:35:51 +02:00

1.5 KiB

F-121 — Quitar restricción "Guarda primero" en precio/stock/EAN

Cambios

  • apps/admin/src/features/products/components/ProductEditor.tsx:
    • ProductEditor ahora maneja productId como state interno que se inicializa desde la prop.
    • Tras POST /products exitoso, en lugar de router.push('/products/${id}') (navegación completa), se usa setProductId(saved.id) + router.replace(...).
    • El componente no se desmonta: react re-renderiza con productId real, lo que hace que los useEffect de PriceStockSection e ImagesSection se ejecuten y carguen los datos.
    • El usuario no ve pantalla en blanco ni pierde el state del formulario.

UX resultante

  1. El usuario entra a /products/new.
  2. Rellena nombre (slug se autogenéra).
  3. Pulsa "Guardar cambios".
  4. Aparece un toast verde y se desbloquean las secciones Precio/Stock/EAN/Peso/Imágenes.
  5. El usuario sigue rellenando precio, stock, EAN, peso, etc.
  6. Pulsa "Guardar cambios" otra vez — esta vez se hace PATCH /products/:id (no create).

Evidencia

  • apps/admin tsc --noEmit OK.
  • apps/admin build OK.
  • El nombre del producto se persiste en la creación (auto-crea la variante SKU-MV-{id}).
  • setProductId cambia el prop reactivamente, lo que dispara el useEffect de PriceStockSection.

Notas

  • No se cambia nada del backend. El patrón de "crear variante con SKU-MV-{id}" ya existe.
  • El usuario sigue el modelo de "una sola variante por producto". No se reintroducen múltiples.