Auto-layout 3D: novos endereços aparecem sozinhos no 3D
Ative o auto-layout nas configurações do armazém e cada endereço novo com código padrão terá sua posição 3D calculada a partir do código, sem posicionamento manual. Códigos fora do padrão são marcados para correção, sem bloquear.
Endereços sem coordenadas 3D são invisíveis no armazém 3D. Antes do auto-layout, cada endereço novo tinha de ser posicionado à mão — a mesma dor dos 9.000+ endereços do armazém demo posicionados manualmente. O auto-layout elimina esse trabalho: o sistema lê o código, decodifica corredor/fileira/coluna/nível, calcula a posição 3D e grava o registro. Se o código não segue o padrão do armazém, o sistema avisa em vez de adivinhar.

Como funciona#
Dois pontos de ativação#
- Criar endereço: após um POST /api/wms/locations bem-sucedido, se o endereço não tem coordenadas 3D e o armazém tem o auto-layout ativo, o sistema gera a posição em segundo plano. À prova de falhas: um erro nunca bloqueia a criação.
- Layout em massa: POST /api/wms/locations/auto-layout com o id do armazém varre todos os endereços sem coordenadas e os posiciona de uma vez. A resposta diz quantos foram posicionados (laid_out) e lista os ignorados (skipped_non_standard, skipped_virtual).
Configure nas configurações do armazém#
As configurações do armazém têm um cartão "3D Auto Layout": sem interruptor mestre — deixar o padrão de código vazio significa auto-layout desligado. Preencha o padrão e depois os campos abaixo. Uma prévia ao vivo mostra o resultado da análise de qualquer código digitado — se é padrão e qual corredor/fileira/coluna/nível decodificou — para verificar o padrão antes de salvar.
- Padrão de código (regex com grupos nomeados aisle / row / bay / level); a zona vem da coluna zone, não do código. O padrão padrão coincide com a forma A(corredor)-R(fileira)-B(coluna)-L(nível), ex. STORAGE-A001-R1-B001-L1.
- Largura da coluna em metros (padrão 2,7), altura do nível (1,8), espaçamento de corredor (6,0, inclui a profundidade do porta-palete) e deslocamentos de origem X/Y/Z (0).
- A conta: x = origem_x + corredor × passo do corredor + coluna × largura da coluna; y = origem_y + fileira × 1,2 m; z = origem_z + (nível − 1) × altura do nível; tamanho = largura da coluna × 1,2 × altura do nível.
Códigos fora do padrão: marcados, nunca bloqueados#
O auto-layout também verifica o padrão do código. Um código que não atende ao padrão do armazém retorna CODE_NOT_STANDARD e não recebe coordenadas: a coluna de status 3D na lista de endereços o mostra, e você pode exportar a lista completa do armazém como CSV para a equipe corrigir. Criar um endereço nunca é bloqueado por um código fora do padrão.
O que o auto-layout nunca toca#
- Coordenadas posicionadas manualmente sempre vencem: o auto-layout só preenche endereços sem coordenadas, nunca sobrescreve.
- O editor de layout e a importação do casco do prédio não são tocados; o auto-layout só grava o mesmo tipo de registro de coordenadas.
- Saúde do layout: GET /api/wms/locations/layout-status?warehouse_id=… retorna as contagens (com coordenadas / pendentes / fora do padrão / virtuais) para acompanhar a cobertura.