Auto-layout 3D: las ubicaciones nuevas aparecen solas en 3D
Activa el auto-layout en la configuración del almacén y cada ubicación nueva con código estándar obtiene su posición 3D calculada a partir del código, sin colocación manual. Los códigos no estándar se marcan para corregir, sin bloquear.
Las ubicaciones sin coordenadas 3D son invisibles en el almacén 3D. Antes del auto-layout, cada ubicación nueva había que colocarla a mano — el mismo dolor de las 9.000+ ubicaciones del almacén demo colocadas manualmente. El auto-layout elimina ese trabajo: el sistema lee el código, decodifica pasillo/fila/columna/nivel, calcula la posición 3D y escribe el registro. Si el código no sigue el estándar del almacén, el sistema lo dice en lugar de adivinar.

Cómo funciona#
Dos puntos de activación#
- Crear ubicación: tras un POST /api/wms/locations exitoso, si la ubicación no tiene coordenadas 3D y el almacén tiene el auto-layout activo, el sistema genera la posición en segundo plano. A prueba de fallos: un error nunca bloquea la creación.
- Layout masivo: POST /api/wms/locations/auto-layout con el id del almacén recorre todas las ubicaciones sin coordenadas y las coloca de una vez. La respuesta dice cuántas se colocaron (laid_out) y lista las omitidas (skipped_non_standard, skipped_virtual).
Configúralo en la configuración del almacén#
La configuración del almacén tiene una tarjeta "3D Auto Layout": no hay interruptor maestro; dejar el patrón de código vacío significa que el auto-layout está desactivado. Rellena el patrón y luego los campos de abajo. Una vista previa en vivo muestra el resultado del parseo de cualquier código que escribas — si es estándar y qué pasillo/fila/columna/nivel decodificó — para verificar el patrón antes de guardar.
- Patrón de código (regex con grupos nombrados aisle / row / bay / level); la zona viene de la columna zone, no del código. El patrón por defecto coincide con la forma A(pasillo)-R(fila)-B(columna)-L(nivel), p. ej. STORAGE-A001-R1-B001-L1.
- Ancho de columna en metros (por defecto 2,7), altura de nivel (1,8), distancia entre pasillos (6,0, incluye la profundidad del estante) y desplazamientos de origen X/Y/Z (0).
- Las matemáticas: x = origen_x + pasillo × paso de pasillo + columna × ancho de columna; y = origen_y + fila × 1,2 m; z = origen_z + (nivel − 1) × altura de nivel; tamaño = ancho de columna × 1,2 × altura de nivel.
Códigos no estándar: se marcan, nunca se bloquean#
El auto-layout también verifica el estándar del código. Un código que no cumple el patrón del almacén devuelve CODE_NOT_STANDARD y no obtiene coordenadas: la columna de estado 3D en la lista de ubicaciones lo muestra, y puedes exportar la lista completa del almacén como CSV para que el equipo la corrija. Crear una ubicación nunca se bloquea por un código no estándar.
Lo que el auto-layout nunca toca#
- Las coordenadas colocadas manualmente siempre ganan: el auto-layout solo rellena las ubicaciones sin coordenadas, nunca sobrescribe.
- El editor de layout y la importación del casco del edificio no se tocan; el auto-layout solo escribe el mismo tipo de registros de coordenadas.
- Salud del layout: GET /api/wms/locations/layout-status?warehouse_id=… devuelve los conteos (con coordenadas / pendientes / no estándar / virtuales) para ver cómo mejora la cobertura.