O componente Estoque do Produto permite consultar no ERP Sankhya a quantidade disponível em estoque de um produto, retornando os registros de estoque por local de armazenamento e, quando aplicável, também por controle do produto (ex.: sabor, tamanho, lote ou variação).
Esse componente é utilizado principalmente em jornadas de venda digital, permitindo que o bot:
valide disponibilidade antes de adicionar itens ao carrinho
mostre ao usuário as opções disponíveis de variação
identifique em qual local o produto está disponível
bot-server: versão 1.7.0
bot-component-service: versão 1.3.0
Índice:
- Objetivo do componente
- Interface do componente (leitura da tela)
- Armazenamento
- Integração técnica
- Exemplo de requisição
- Estrutura do retorno (componente)
- Descrição dos campos retornados
- Mapeamento técnico dos campos
- Comportamento importante
- Estrutura _rmd
- Exemplos de uso no bot
- Tratamento de erros
- Boas práticas
Objetivo do componente
Disponibilizar no fluxo do bot as informações de estoque atual do produto no Sankhya, permitindo validações de disponibilidade antes da criação do pedido.
Interface do componente (leitura da tela)
Parâmetros
Configuração da consulta de estoque
Campo |
Descrição |
Origem Sankhya |
|---|---|---|
Código do Produto* |
Código único do produto no Sankhya |
|
Empresa (opcional) |
Empresa responsável pelo estoque |
|
Local de Estoque (opcional) |
Local específico de armazenamento |
|
Continuar Listagem (opcional) |
Página da consulta para paginação |
|
Exemplo de uso:
{{codigoProduto}}
ou
1236
Armazenamento
Campo |
Descrição |
|---|---|
Variável de armazenamento |
Variável que receberá o resultado da consulta |
Variável de escopo Global |
Permite acessar os dados em qualquer fluxo |
Exemplo:
estoqueProduto
Integração técnica
A consulta utiliza o serviço Sankhya:
CRUDServiceProvider.loadRecords
Entidade consultada:
Estoque
Essa entidade armazena a quantidade de produtos disponíveis por empresa, local e controle.
Exemplo de requisição
curl --location 'https://api.sankhya.com.br/gateway/v1/mge/service.sbr?serviceName=CRUDServiceProvider.loadRecords&outputType=json' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'appkey: <APPKEY>' \
--header 'Content-Type: application/json' \
--data '{
"serviceName": "CRUDServiceProvider.loadRecords",
"requestBody": {
"dataSet": {
"rootEntity": "Estoque",
"includePresentationFields": "S",
"offsetPage": "0",
"criteria": {
"expression": {
"$": "this.CODPROD = ? AND this.CODEMP = ? AND this.CODLOCAL = ?"
},
"parameter": [
{ "$": "1236", "type": "I" },
{ "$": "1", "type": "I" },
{ "$": "8000", "type": "I" }
]
},
"entity": {
"fieldset": {
"list": "CODPROD,CODLOCAL,ESTOQUE,CODEMP,CONTROLE"
}
}
}
}
}'
Estrutura do retorno (componente)
Exemplo de resposta
{
"hasMore": false,
"size": 4,
"content": [
{
"quantity": 500,
"control": "AMORA",
"location": {
"code": 6100,
"description": "Galpão A"
}
}
],
"error": null
}
Descrição dos campos retornados
Campo |
Descrição |
|---|---|
hasMore |
Indica se existem mais registros disponíveis para paginação |
size |
Quantidade de registros retornados |
content[] |
Lista de registros de estoque |
content[].quantity |
Quantidade disponível em estoque |
content[].control |
Controle do produto (variação) |
content[].location.code |
Código do local de estoque |
content[].location.description |
Descrição do local |
error |
Informações de erro quando a consulta falha |
Mapeamento técnico dos campos
Campo |
Origem Sankhya |
Tabela |
|---|---|---|
quantity |
ESTOQUE |
Estoque |
control |
CONTROLE |
Estoque |
location.code |
CODLOCAL |
Estoque |
location.description |
LocalFinanceiro_DESCRLOCAL |
TGFLOC |
Comportamento importante
Um produto pode possuir controle ativo, como:
sabor
tamanho
cor
lote
Quando isso acontece, o retorno da API contém um registro por controle, mesmo que o local seja o mesmo.
Exemplo:
Controle |
Estoque |
|---|---|
AMORA |
500 |
MORANGO |
500 |
UVA |
500 |
MAÇÃ VERDE |
500 |
Estrutura _rmd
Quando presente, o campo _rmd retornado pelo Sankhya contém metadados sobre o controle de estoque, como:
nome do controle
lista de opções
tipo de controle
Exemplo:
"controle": {
"tipoContEst": "S",
"labelContEst": "Tamanho",
"listaContEst": ["500ML", "1L", "2L"]
}
Essas informações podem ser utilizadas pelo bot para montar interfaces de seleção de variação.
Exemplos de uso no bot
Validar se há estoque disponível
Se {{estoqueProduto.size}} > 0
→ Produto disponível
Mostrar estoque disponível por variação
Temos estoque disponível para:
{{estoqueProduto.content[0].control}}
{{estoqueProduto.content[1].control}}
Exibir local do estoque
Local do estoque: {{estoqueProduto.content[0].location.description}}
Tratamento de erros
Exemplo
{
"hasMore": false,
"size": 0,
"content": [],
"error": {
"code": "PRODUCT_CODE_IS_INVALID",
"message": "..."
}
}
Situação |
Comportamento |
|---|---|
Código de produto inválido |
erro |
Produto sem estoque |
|
Falha de integração |
objeto |
Boas práticas
Validar
sizeantes de permitir adicionar ao carrinhoSe existir
control, solicitar escolha da variação ao usuárioUsar paginação quando houver muitos registros
Filtrar por empresa quando o ambiente for multiempresa
Comentários
0 comentário
Escreva seu comentário aqui
Por favor, entre para comentar.