A-14
Catálogo Boost
ABM masivo del catálogo VTEX desde Excel: categorías con árbol y drag & drop, marcas, imágenes por SKU y visibilidad programada por cron.
| Cliente | Koru Suite · producto propio de la agencia |
|---|---|
| Tipo | producto |
| Plataforma | VTEX IO |
| Año | 2026 |
| Rol | Autor |
| Stack | TypeScript · React · VTEX IO node 7.x · VTEX IO react 3.x · vtex.styleguide · VBase |
| Código | 6.855 líneas · git ls-files ts/tsx, sin node_modules ni dist |
| Commits propios | 28 de 28 |
| Casos de test | 39 tests |
Contexto
Cargar un catálogo en VTEX a mano es inviable a partir de cierta escala: categorías, marcas e imágenes se administran de a una, y un cliente que migra llega con miles de filas en una planilla.
Opciones
Lo directo es un importador: subís el Excel, se aplica. Rápido de construir y peligroso, porque una planilla mal armada aplica igual y el catálogo queda roto sin forma de saber qué cambió.
Decisión
Un asistente de tres pasos —subir, revisar, aplicar— con vista previa obligatoria antes de tocar nada. Para categorías la vista previa es el árbol de jerarquía completo, y las ramas se pueden mover con drag & drop; el movimiento se confirma antes de aplicarse.
Dos decisiones que vienen de haberme comido el problema:
Desactivar no es borrar. En VTEX la baja de una categoría es IsActive=false. Un
borrado real deja productos huérfanos, así que la app no ofrece borrar.
Todo queda en el historial. Cada operación —módulo, resultado, usuario, fecha— se persiste en VBase. Una carga masiva que salió mal se puede leer después, que es el requisito que un cliente pide recién cuando ya pasó.
La visibilidad programada usa el mismo mecanismo: las columnas de fecha encolan trabajos que un cron horario aplica, y hay una pestaña para ver y cancelar lo pendiente.
Verificación
6.855 líneas, 39 casos de test, 28 commits. Construida sobre las lecciones de Pickup
Cleaner: el frontend nunca llama a la Catalog API de VTEX directo, todo pasa por rutas del
node que autentican con el token del admin logueado.
Consecuencias
El paso de revisión hace más lento el camino feliz: cargar 50 filas correctas igual exige confirmar. Es el precio de que las otras 4.950 no rompan un catálogo en producción.