A importação de Produtos/Materiais e Saldos permite cadastrar e atualizar produtos e, no mesmo arquivo, realizar a carga inicial do saldo físico de estoque.
Durante a importação, Unidades de Medida e Depósitos que ainda não existirem podem ser criados automaticamente a partir das informações do arquivo.
Para informações sobre como acessar a importação, realizar a pré-validação, confirmar o processamento e consultar erros, consulte o artigo Como importar dados via CSV.
Disponibilidade
A importação de Produtos e Saldos está disponível somente para filiais que possuem Estoque Interno ativo e não possuem integração de estoque com o ERP.
Em filiais que possuem integração de estoque, os saldos são recebidos do ERP e a opção Produtos e Saldos não será apresentada entre os tipos disponíveis para importação.
Estrutura do arquivo
Cada linha do arquivo representa um produto e, opcionalmente, seus saldos iniciais.
As seguintes colunas são obrigatórias:
description, unityOfMeasure
Colunas
Coluna | Obrigatório | Formato | Descrição |
| Não | Texto | Código do produto no ERP. Quando não informado, o produto é localizado pela descrição |
| Sim | Texto | Descrição do produto |
| Não |
| Define se o produto está ativo. Utilize |
| Sim | Composto | Unidade de medida do produto. Consulte a estrutura abaixo |
| Não | Número | Custo unitário. Aceita vírgula ou ponto como separador decimal |
| Não |
| Indica se o produto é perigoso. Utilize |
| Não | Número | Quantidade de dias para reposição do produto |
| Não | Composto | Saldo físico inicial do produto. Consulte a estrutura abaixo |
Unidade de medida (unityOfMeasure)
A coluna unityOfMeasure define a unidade utilizada pelo produto.
Utilize a seguinte estrutura:
código;nome;sigla
Campo | Descrição |
| Código da unidade no ERP. Deixe vazio quando não houver |
| Nome da unidade, por exemplo: Unidade, Caixa ou Par |
| Sigla da unidade, por exemplo: UN, CX ou PR |
A busca pela Unidade de Medida é realizada primeiro pelo código. Quando o código não for informado, a busca é realizada pelo nome.
Quando a unidade já existir, o código e a sigla informados no arquivo serão desconsiderados e será utilizado o cadastro existente.
Quando a unidade não existir, ela será criada automaticamente. Nesse caso, a sigla é obrigatória.
Exemplo
;Par;PR
Nesse exemplo, como nenhum código de ERP foi informado, o sistema procurará uma Unidade de Medida chamada Par. Caso ela não exista, será criada com a sigla PR.
Saldo inicial (stockLevel)
A coluna stockLevel permite realizar a carga inicial do saldo físico do material.
Cada saldo deve seguir esta estrutura:
depósito;lote;quantidade
Quando houver mais de um saldo, utilize @ para separá-los.
Campo | Descrição |
| Descrição do local de estoque. Criado automaticamente caso não exista |
| Número do lote. Deixe vazio quando o produto não possuir controle por lote |
| Saldo físico inicial. Aceita vírgula ou ponto como separador decimal |
Exemplo
Almoxarifado Central;;120@Almoxarifado Central;L-2026-01;30
Nesse exemplo, são informados dois saldos para o produto:
120unidades no Almoxarifado Central, sem lote;30unidades no Almoxarifado Central, vinculadas ao loteL-2026-01.
Regras para carga inicial do saldo
A coluna stockLevel deve ser utilizada somente para a carga inicial. Ela não permite editar um saldo que já existe.
Se o produto já possuir saldo para a mesma combinação de depósito e lote, a linha inteira será recusada.
Nesse caso, a importação apresentará uma mensagem semelhante a:
O produto já tem saldo no depósito X; este importador só faz carga inicial.
Após a carga inicial, alterações no saldo devem ser realizadas por meio das movimentações de estoque.
Também são aplicadas as seguintes regras:
a mesma linha não pode possuir dois saldos para a mesma combinação de depósito e lote;
o depósito deve estar preenchido;
a quantidade deve possuir um valor válido;
se qualquer saldo da linha apresentar erro, a linha inteira será recusada.
Importante: a carga inicial não gera uma movimentação de estoque. O saldo físico é registrado diretamente, com reserva igual a zero.
Criação e atualização de produtos
A importação pode tanto criar novos produtos quanto atualizar produtos existentes.
A busca pelo produto é realizada primeiro pelo erpId. Quando ele não for informado, a busca é realizada pela description.
Quando o produto não existe
O produto será criado com os dados informados no arquivo.
Quando os campos abaixo estiverem vazios, serão utilizados os seguintes valores:
isActive: produto criado como ativo;unitaryCost: custo unitário igual a zero;dangerous: produto criado como não perigoso.
Quando o produto já existe
Os seguintes dados são atualizados conforme o conteúdo do arquivo:
código do ERP;
descrição;
unidade de medida;
dias para reposição.
Os campos isActive, unitaryCost e dangerous somente serão alterados quando possuírem um valor preenchido no arquivo. Quando estiverem vazios, o valor atual do produto será mantido.
Validação da linha
Cada linha é validada por completo antes que qualquer informação seja gravada.
Se algum item apresentar erro, nenhuma informação daquela linha será gravada.
Isso inclui erros como:
Unidade de Medida nova sem sigla;
depósito não informado;
quantidade de saldo inválida;
saldo já existente para o depósito e lote;
saldo duplicado na mesma linha.
Nesse cenário, nem o produto nem eventuais novos Depósitos ou Unidades de Medida daquela linha serão criados ou atualizados.
Reimportação do arquivo
É possível reimportar um arquivo para atualizar os dados cadastrais dos produtos.
Porém, se a coluna stockLevel continuar preenchida com um saldo que já foi carregado anteriormente, a linha será recusada, pois essa coluna realiza somente a carga inicial.
Para atualizar apenas o cadastro do produto, deixe stockLevel vazio.
Exemplo de criação com saldo inicial
erpId | description | isActive | unityOfMeasure | unitaryCost | dangerous | daysForReplacement | stockLevel
"PRD-001" | "Protetor auricular tipo plug" | "true" | ";Par;PR" | "2,50" | "false" | "180" | "Almoxarifado Central;;500@Almoxarifado Fábrica;L-2026-01;120" "PRD-002" | "Álcool 70% 1L" | "" | ";Unidade;UN" | "8,90" | "true" | "" | "Almoxarifado Central;;40"
Nesse exemplo, são criados dois produtos e seus respectivos saldos iniciais. O produto PRD-001 possui saldo em dois depósitos, sendo um deles associado a um lote.
Exemplo de atualização sem alterar o saldo
Para atualizar apenas os dados cadastrais de um produto que já possui saldo, deixe a coluna stockLevel vazia:
erpId | description | isActive | unityOfMeasure | unitaryCost | dangerous | daysForReplacement | stockLevel
"PRD-001" | "Protetor auricular tipo plug com cordão" | "" | ";Par;PR" | "2,80" | "" | "180" | ""
Nesse exemplo, o cadastro do produto é atualizado sem realizar qualquer alteração no saldo de estoque.
