Editor Masivo
Exportar contenido
Actualiza precios, impuestos, categorías o estado de múltiples productos simultáneamente.
- En la lista de productos, selecciona los productos con los checkboxes.
- Aparece el botón “Editar (N)” — clic en él.
- Selecciona el tipo de acción (ver tabla abajo).
- Introduce el nuevo valor o ajuste.
- Clic en “Aplicar cambios” — productos actualizados.
ALERTA: Los cambios masivos son irreversibles. Revisa cuidadosamente antes de aplicar.
Acciones disponibles
Sección titulada «Acciones disponibles»| Acción | Descripción | Opciones |
|---|---|---|
| Ajustar precio | Suma o resta un valor o porcentaje | Absoluto (+5€) / Porcentaje (+10%) |
| Cambiar IVA | Establece nueva tasa de IVA | 0%, 4%, 10%, 21% |
| Cambiar categoría | Asigna nueva categoría | Texto libre o categoría existente |
| Cambiar estado | Activa o desactiva productos | Activo / Inactivo |
Ejemplo — Ajustar precio
Sección titulada «Ejemplo — Ajustar precio»Porcentaje:
- Productos seleccionados con precio 10€
- Ajuste: +20%
- Nuevo precio: 12€
Absoluto:
- Productos seleccionados con precio 10€
- Ajuste: +5€
- Nuevo precio: 15€
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- Los productos seleccionados se actualizan en la lista.
- Toast de confirmación: “N productos actualizados correctamente”.
- Los cambios se reflejan inmediatamente.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| ”No hay productos seleccionados” | Checkboxes vacíos | Selecciona al menos un producto |
| ”El precio no puede ser negativo” | Ajuste resulta en precio menor a 0 | Reduce el descuento |
🔧 Detalles Técnicos — Editor Masivo
Componente:
BulkProductEditor.tsx- Dialog modal con formulario de acción
Tipo de dato:
type BulkAction = "price" | "tax" | "category" | "status";
interface BulkEditValues { price_adjustment_type: "absolute" | "percentage"; price_adjustment: string; tax_rate: string; category: string; status: "active" | "inactive";}Lógica de actualización:
Precio (porcentaje):
newPrice = currentPrice * (1 + adjustment / 100);Precio (absoluto):
newPrice = currentPrice + adjustment;Queries de diagnóstico:
-- Productos actualizados recientemente (última hora)SELECT id, name, unit_price, tax_rate, category, updated_atFROM productsWHERE business_id = '<business_id>' AND updated_at >= NOW() - INTERVAL '1 hour'ORDER BY updated_at DESC;