O componente Detalhe do Produto consulta no Sankhya as informações cadastrais completas de um produto, retornando dados como descrição, unidade padrão, marca, grupo, características, regras comerciais e eventuais controles (ex.: sabor, tamanho, cor).
Esse componente é usado para:
Exibir informações detalhadas do produto no bot
Validar dados antes de adicionar ao carrinho
Identificar controles e variações disponíveis
Obter regras comerciais como desconto máximo ou agrupamento mínimo
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)
- Parâmetros
- Armazenamento
- Integração técnica
- Exemplo de requisição
- Estrutura do retorno (componente)
- Produto encontrado
- Produto não encontrado
- Mapeamento técnico dos campos
- Campo especial: controls
- Exemplos de uso no bot
- Exibir detalhes do produto
- Verificar se produto possui controle
- Validar desconto máximo permitido
- Tratamento de erros
- Boas práticas
Objetivo do componente
Disponibilizar no fluxo do bot os dados oficiais do cadastro de produtos do Sankhya, garantindo que as informações exibidas ao usuário estejam alinhadas com o ERP.
Interface do componente (leitura da tela)
Parâmetros
Configuração da consulta de produto
Campo |
Descrição |
Origem Sankhya |
|---|---|---|
Código do Produto* |
Código único do produto no Sankhya |
|
Esse campo pode receber:
ou uma variável do fluxo:
Armazenamento
Campo |
Descrição |
|---|---|
Variável de armazenamento |
Nome da variável que receberá o resultado da consulta |
Variável de escopo global |
Permite reutilizar os dados em qualquer ponto do fluxo |
Exemplo:
Integração técnica
A consulta utiliza o serviço da API Sankhya:
Entidade principal:
Produto (TGFPRO)
Entidade auxiliar:
Volume (TGFVOL) → utilizada para retornar a descrição da unidade.
Exemplo de requisição
' \ --header 'appkey: ' \ --header 'Content-Type: application/json' \ --data '{ "serviceName": "CRUDServiceProvider.loadRecords", "requestBody": { "dataSet": { "rootEntity": "Produto", "includePresentationFields": "S", "tryJoinedFields": "true", "parallelLoader": "true", "offsetPage": "0", "criteria": { "expression": { "$": "CODPROD = ? AND ATIVO = ?" }, "parameter": [ { "$": "1242", "type": "I" }, { "$": "S", "type": "S" } ] }, "entity": [ { "path": "", "fieldset": { "list": "CODPROD,REFERENCIA,DESCRPROD,CODVOL,CODGRUPOPROD,USALOCAL,CODLOCALPADRAO,CODMARCA,MARCA,AGRUPMIN,DESCMAX,ATIVO,CARACTERISTICAS,COMPLDESC,HOMEPAGE,GRUPODESCPROD" } }, { "path": "Volume", "fieldset": { "list": "DESCRVOL" } } ] } } }']]>Estrutura do retorno (componente)
Produto encontrado
Produto não encontrado
Mapeamento técnico dos campos
Campo |
Descrição |
Campo Sankhya |
Tabela |
|---|---|---|---|
data.code |
Código do produto |
CODPROD |
TGFPRO |
data.reference |
Referência do produto |
REFERENCIA |
TGFPRO |
data.description |
Descrição do produto |
DESCRPROD |
TGFPRO |
data.descriptionComplement |
Complemento da descrição |
COMPLDESC |
TGFPRO |
data.characteristics |
Características do produto |
CARACTERISTICAS |
TGFPRO |
data.control |
Controle do produto |
CONTROLE |
TGFPRO |
data.usesLocation |
Indica uso de local |
USALOCAL |
TGFPRO |
data.defaultLocationCode |
Local padrão |
CODLOCALPADRAO |
TGFPRO |
data.minimumGrouping |
Agrupamento mínimo |
AGRUPMIN |
TGFPRO |
data.maxDiscount |
Desconto máximo permitido |
DESCMAX |
TGFPRO |
data.active |
Produto ativo |
ATIVO |
TGFPRO |
data.homepageUrl |
URL/Homepage |
HOMEPAGE |
TGFPRO |
data.discountGroup |
Grupo de desconto |
GRUPODESCPROD |
TGFPRO |
data.defaultUnit.code |
Unidade padrão |
CODVOL |
TGFPRO |
data.defaultUnit.description |
Descrição da unidade |
DESCRVOL |
TGFVOL |
data.group.code |
Grupo do produto |
CODGRUPOPROD |
TGFPRO |
data.brand.code |
Código da marca |
CODMARCA |
TGFPRO |
data.brand.name |
Nome da marca |
MARCA |
TGFPRO |
Campo especial: controls
Quando o retorno da API Sankhya contém informações na estrutura _rmd, o componente interpreta esses dados e gera a lista:
Essa lista representa controles ou variações do produto, por exemplo:
Tamanho
Sabor
Cor
Modelo
Exemplo:
Exemplos de uso no bot
Exibir detalhes do produto
Verificar se produto possui controle
Validar desconto máximo permitido
Tratamento de erros
Situação |
Comportamento |
|---|---|
Produto inexistente |
|
Produto inativo |
não retornado quando filtro ativo |
Falha na API |
|
Boas práticas
Sempre validar
foundantes de usar os dadosVerificar se o produto possui controles antes de pedir escolha ao usuário
Utilizar unidade padrão ao calcular preço
Respeitar
minimumGroupingquando houver
Comentários
0 comentário
Escreva seu comentário aqui
Por favor, entre para comentar.