Herramienta para validar, expandir y preparar archivos CSV de placeholders antes de subirlos a O9. Flujo guiado de 6 pasos con correcciones automáticas, validaciones y generación de Placeholder IDs únicos.
La herramienta guía al usuario por 6 pasos en orden. Cada paso se desbloquea al completar el anterior.
| Paso | Acción | Detalle |
|---|---|---|
| 1 | Subir archivo CSV | Valida estructura, separador, columnas |
| 2 | Seleccionar División y Temporada | Define el prefijo de los Placeholder IDs y la SellingSeason |
| 3 | Expandir filas y generar PHs | Divide filas con OC > 1, genera IDs únicos para todas las filas, pone OC=1 |
| 4 | Asignar File Name | Rellena la columna File Name con el nombre del CSV (sin extensión) |
| 5 | Validar campos | Aplica correcciones automáticas, detecta errores y advertencias |
| 6 | Descargar | Vista previa y descarga del CSV procesado (solo si 0 errores) |
Arrastra el CSV al área de carga o haz clic para seleccionarlo.
| Condición | Qué pasa si falla |
|---|---|
| Extensión .csv | Rechaza el archivo |
| Separador punto y coma ; | Alerta pidiendo re-exportar con ; |
| Al menos 2 líneas (encabezados + datos) | Alerta: archivo vacío |
| Más de 1 columna detectada | Alerta pidiendo revisar el separador |
| Las 43 columnas del template presentes | Alerta con lista de columnas faltantes |
| Al menos 1 fila de datos no vacía | Alerta: sin datos |
Selecciona la división (Woman, Man, Kids, Teen, Home) y la temporada (SS2027, FW2026, etc.). Ambas son obligatorias.
La división determina la primera letra del Placeholder ID. La temporada determina el año y la letra de season en el ID, y se usa para sobreescribir la columna SellingSeason en todas las filas.
Procesa todas las filas: expande las que tienen OC > 1, genera Placeholder IDs nuevos para todas, y normaliza Options Count.
Si una fila tiene Options Count = N (entero mayor que 1), se crean N copias de esa fila. Cada copia recibe un PH único y OC = 1.
| Campo | Lógica |
|---|---|
| Buying Cash | Dividido, 2 decimales, formato coma |
| Buying Units | Dividido, redondeo hacia arriba |
| Wholesale Reservation | Dividido, redondeo hacia arriba |
| Online Reservation | Dividido, redondeo hacia arriba |
Los demás campos numéricos no se modifican.
Todas las filas reciben un Placeholder ID nuevo, incluyendo las que ya tenían uno. Esto garantiza unicidad dentro del lote.
Todas las filas quedan con OC = 1 en la salida, sin importar el valor original. Valores raros (0, negativos, texto) se corrigen a 1 y se muestran como advertencia.
Rellena la columna File Name con el nombre del archivo CSV sin la extensión .csv.
Ejemplo: si el archivo se llama Placeholders_briefing prenda_T4_12062026.csv, el valor asignado será Placeholders_briefing prenda_T4_12062026.
También sobreescribe la columna SellingSeason en todas las filas con la temporada seleccionada en el paso 2 (ej. SS2027).
Verifica todos los campos contra las reglas de O9. Aplica correcciones automáticas cuando es posible, detecta errores bloqueantes y advertencias informativas.
Los resultados se muestran en tres secciones:
| Sección | Color | Efecto |
|---|---|---|
| Correcciones automáticas | Azul | Se aplicaron al archivo. Revisar para futuras cargas. |
| Errores | Rojo | Bloquean la descarga. Corregir en el archivo original y volver a subir. |
| Advertencias | Amarillo | No bloquean. Campos recomendados vacíos. |
Si la validación pasa sin errores, se muestra una vista previa (primeras 50 filas) y el botón de descarga.
| Caso | Sufijo |
|---|---|
| Se expandieron filas (OC > 1) | _expanded.csv |
| Solo validación | _validated.csv |
| Propiedad | Valor |
|---|---|
| Separador | ; (punto y coma) |
| Encoding | UTF-8 con BOM |
| Decimal | Coma , |
| Columnas | 43 (template O9) |
La herramienta corrige automáticamente estos problemas comunes. Se muestran en azul en el paso 5 para que los planners no repitan el error.
| Campo | Entrada | Corrección |
|---|---|---|
| SellingSeason | PV2026, OI2026 | SS2026, FW2026 (alias corregidos) |
| SellingSeason | SS26, FW26 | SS2026, FW2026 (año de 2 dígitos expandido) |
| SellingSeason | Cualquier valor distinto a la temporada seleccionada | Se sobreescribe con la temporada del paso 2 |
| Fechas | 2026-07-15, 15-07-2026 | 15/07/2026 (formato DD/MM/YYYY) |
| Fechas | 1/7/2026, 15/7/26 | 01/07/2026 (día/mes con padding, año expandido) |
| Proximity | nearshore, FARSHORE | Nearshore, Farshore (capitalización) |
| Proximity | Cualquier otro valor (ej. Near) | Se deja vacío |
| Is Carry Over | true, false | TRUE, FALSE (mayúsculas) |
| Spanish Full Price | 29.99 | 29,99 (punto a coma decimal) |
| Buying Cash | 1500.50 | 1500,50 (punto a coma decimal) |
| Buying Cash | 2000abc | Se deja vacío (caracteres no numéricos) |
Los errores bloquean la descarga. Las advertencias no.
| Campo | Condición de error |
|---|---|
| Product Type Code | Vacío (campo obligatorio), o no existe en el item master |
| PurchasingGroupId | Vacío (campo obligatorio), o no existe en el item master |
| Fashion Degree | No coincide con el item master. El valor debe estar en inglés tal cual el maestro: NEW, ICONIC, IMAGE, CAPSULE WARDROBE, TIMELESS (ej. ICÓNICO es incorrecto, debe ser ICONIC) |
| Spanish Full Price | Contiene letras u otros caracteres no numéricos |
| Options Count | No es entero válido, o es negativo |
| Is Carry Over | Valor distinto a TRUE, FALSE o vacío |
| Phase In Date | Formato inválido o fecha imposible (ej. 31/02, 29/02 en año no bisiesto) |
| Global Phase-In Date | Mismo que Phase In Date |
| Placeholder | Vacío, longitud distinta a 16 caracteres, o duplicado dentro del archivo |
Se muestran si los siguientes campos están vacíos. Son recomendados pero no obligatorios para la descarga.
| Campo | Nota |
|---|---|
| Spanish Full Price | Advertencia si vacío |
| Global Phase-In Date | Advertencia si vacío |
| Unitary Cost | Advertencia si vacío |
| Buying Units | Advertencia si vacío (no se modifica el valor) |
| Wholesale Reservation | Advertencia si vacío |
| Online Reservation | Advertencia si vacío |
| Transportation Lead Time | Advertencia si vacío |
| Manufacturing Lead Time | Advertencia si vacío |
| Cluster Name + Estimated Count of Stores | Advertencia solo si ambos están vacíos |
| Item Master | Advertencia si no hay conexión al validar — Product Type Code y PurchasingGroupId quedan sin verificar |
Cada Placeholder ID tiene exactamente 16 caracteres, generados a partir de la División, Temporada y un timestamp del momento de ejecución.
Ejemplo: W27S061216180001 = Woman, SS2027, generado el 12/06 a las 16:18, placeholder #1.
| División | Letra |
|---|---|
| Woman | W |
| Man | M |
| Kids | K |
| Teen | T |
| Home | H |
| Temporada | Letra |
|---|---|
| Spring/Summer (SS) | S |
| Fall/Winter (FW) | F |
4 dígitos con padding de ceros. Rango: 0001 a 9999. Se reinicia en cada ejecución.
| Limitación | Detalle |
|---|---|
| PHs duplicados en O9 | La herramienta valida unicidad dentro del archivo, pero no puede verificar si un PH ya existe en O9. Si se sube un archivo con PHs que ya existen, O9 sobreescribe las medidas sin avisar. |
| Máximo 9.999 PHs por ejecución | Limitación del formato de 4 dígitos del contador. Para archivos más grandes, dividir en lotes. |
| Buying Units no se modifica | El validador no toca Buying Units (los planners lo calculan). Solo se divide durante la expansión cuando OC > 1. |
| Campos quoted con saltos de línea | El parser no soporta campos con saltos de línea dentro de comillas. En la práctica esto no ocurre en los briefings de planners. |
| Funcionamiento offline | La herramienta funciona 100% en el navegador. No envía datos a ningún servidor. Las fuentes requieren conexión a internet. |