TODO: Gestión de Variantes de Productos
Funcionalidades Pendientes
1. Añadir Variantes a Productos Existentes
Descripción:
Permitir agregar nuevas variantes a productos ya creados desde el drawer de variantes.
Casos de Uso:
- Expansión de línea de producto (agregar nuevas tallas/colores)
- Corrección de inventario (agregar variantes faltantes)
- Productos sincronizados de Shopify que necesitan variantes locales
- Inventario local especial para tienda física
Implementación:
Frontend (apps/app/.../products/components/)
- Agregar botón "+ Añadir Variante" en header del drawer
- Crear formulario AddVariantForm.tsx con campos:
- Nombre/título de la variante
- SKU (con validación de unicidad)
- Barcode
- Precio
- Costo
- Opciones (talla, color, material, etc.)
- Estado inicial (ACTIVE/DRAFT)
- Si producto tiene shopifyProductId: mostrar warning
- Crear action createVariantAction en products/actions.ts
- Agregar traducciones (ES/EN)
Backend (apps/api/src/modules/tenant/)
- Validar que el producto exista
- Validar unicidad de SKU en el tenant
- Crear variante en BD local
- Crear registros de inventario por cada branch
- Emitir evento variant.created
Integración Shopify (FUTURO - Prioridad Media)
Complejidad: Alta | Estimación: 2-3 días
- Implementar addVariantToProduct() en shopify-product.adapter.ts
- Usar mutación GraphQL productVariantCreate
- Crear InventoryItem en Shopify
- Configurar InventoryLevel para location
- Sincronizar IDs de vuelta a BD local
- Manejar estrategia multi-branch → single location de Shopify
- Agregar toggle en settings: "Sincronizar variantes con Shopify"
2. Editar Variantes Existentes
Descripción:
Permitir editar datos básicos de variantes ya creadas.
Campos Editables:
- Nombre/título de la variante
- SKU (con validación)
- Barcode
- Precio
- Costo
- Opciones (talla, color, etc.)
- Estado (ACTIVE/DRAFT/ARCHIVED)
Implementación:
Frontend (apps/app/.../products/components/)
- Agregar botón "Editar" (ícono lápiz) en cada fila de variante
- Crear formulario EditVariantForm.tsx (puede reutilizar campos de AddVariantForm)
- Si variante tiene shopifyVariantId: mostrar warning
- Crear action updateVariantAction en products/actions.ts
- Agregar traducciones (ES/EN)
Backend (apps/api/src/modules/tenant/)
- Validar que la variante exista
- Validar unicidad de SKU (si cambió)
- Actualizar variante en BD local
- Emitir evento variant.updated
Integración Shopify (FUTURO - Prioridad Media)
Complejidad: Media | Estimación: 1-2 días
- Implementar updateVariant() en shopify-product.adapter.ts
- Usar mutación GraphQL productVariantUpdate
- Actualizar datos en Shopify
- Mantener consistencia de inventario
- Agregar toggle en settings: "Sincronizar cambios con Shopify"
Tareas Adicionales Relacionadas
3. Gestión de Opciones de Producto
- Permitir crear/editar opciones del producto (talla, color, material)
- Validar que variantes tengan combinaciones únicas de opciones
- Sincronizar opciones con Shopify (si aplica)
4. Inventario Multi-Branch
- Al crear variante: inicializar inventario en todas las branches
- Permitir configurar inventario inicial por branch
- Manejar estrategia de qué branch es "master" para Shopify
5. Validaciones y UX
- Validar que SKU sea único en el tenant
- Validar que barcode sea único (opcional)
- Preview de cómo se verá la variante antes de crearla
- Confirmación al editar variantes con inventario existente
Prioridades
| Funcionalidad | Prioridad | Complejidad | Estimación |
|---|---|---|---|
| Añadir Variante (Local) | Alta | Baja | 4-6 horas |
| Editar Variante (Local) | Alta | Baja | 3-4 horas |
| Añadir Variante → Shopify | Media | Alta | 2-3 días |
| Editar Variante → Shopify | Media | Media | 1-2 días |
| Gestión de Opciones | Baja | Media | 1 día |
Checklist de Implementación
Fase 1: Funcionalidad Local (Sprint 1)
- Diseñar y validar UX con equipo
- Implementar botón "Añadir Variante"
- Implementar botón "Editar Variante"
- Crear formularios con validaciones
- Agregar traducciones
- Testing E2E
- Documentar en README
Fase 2: Integración Shopify (Sprint 2-3)
- Investigar limitaciones de Shopify API
- Implementar adapters de Shopify
- Manejar casos edge (multi-branch → single location)
- Agregar toggles de configuración
- Testing de sincronización
- Documentar estrategia de inventario
Última actualización: 2025-01-13
Responsable: Equipo de Desarrollo ThreeTrackr