Appearance
Recebimento de Produtos via API
O sistema valesoft permite a integração de produtos externos através de uma requisição HTTP GET a uma API de um ERP ou outro sistema.
O comportamento do sistema Valesoft ao receber os dados é de criar novos produtos ou atualizar os mesmos caso já existam, se baseando no campo productReference como chave única para o produto.
Neste tipo de integração o sistema faz uma requisição Http a uma API previamente configurada, de modo a obter a lista de produtos.
Para isso é necessário configurar o token de acesso e a url da API para integração.
A integração Http Json pode chamar APIs sem autenticação ou com autenticação por meio de token passado no header Authorization, como por exemplo, Basic dXNlcm5hbWU6cGFzc3dvcmQ= ou Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
A consulta ocorre de forma paginada com lotes de 250 registros. Isso ocorre através dos parâmetros pageIndexe pageSize. Exemplo:GET /api/product?pageIndex=0&pageSize=250 ou GET /api/product?pageIndex=1&pageSize=500, etc.
É possível integrar todos os produtos ou apenas um em específico baseado no código informado na hora da integração. Nessa consulta por código, o campo de referência do produto será adicionado como um parâmetro de URL: GET /api/product?pageIndex=0&pageSize250&sku=123456
Exemplo de resposta esperada pela integração Http Json
O sistema espera um retorno em formato JSON da seguinte forma:
JSON
{
"items": [
{
"id": "8f289e4f-170a-46bb-9944-a4183bb39a12",
"createdAt": "2024-05-28 14:59:14.000",
"createdBy": "valesoft",
"updatedAt": "2024-05-31 09:21:05.625",
"updatedBy": "valesoft",
"custom": {
"custom1": "custom"
},
"integrated": true,
"sku":"456789",
"description":"Produto 1",
"barcode":"0123456789",
"measureUnit":"KG",
"fraction": null,
"type":"PRODUCED",
"place": null,
"averageCost": 0.1,
"externalId": "789",
"color": null,
"size":"M",
"costCenter": null
"useGrid": false
}
],
"totalItems": 1
}Descrição dos campos da resposta esperada
Aqui está uma descrição de cada campo:
id- OBRIGATÓRIO- Alfanumérico
- Código Único do produto no sistema
createdAt- Data
- Data de criação do produto
createdBy- Alfanumérico
- Usuário responsável pelo cadastro do produto
updatedAt- Data
- Data da ultima atualização do produto
updatedBy- Alfanumérico
- Usuário responsável pela ultima edição do produto
integrated- Boolean
- Identifica se o produto foi cadastrado via integração
sku- OBRIGATÓRIO- Alfanumérico
- Código/SKU Único do produto
- Chave Primaria - Utilizado para criação ou alteração do registro
description- OBRIGATÓRIO- Texto
- Descrição do produto
barcode- OBRIGATÓRIO- Numérico Inteiro
- Código de barras EAN-13 ou um sequencial numérico único do produto, utilizado para a criação da etiqueta EPC no padrão GS1-SGTIN
measureUnit- Texto
- Unidade de medida do produto
- Ex. M², Un, KG
fraction- Numérico
- Fração do produto
type- OBRIGATÓRIO- Texto Predefinido
- Tipo do produto
- Valores aceitos:
RAW- Matéria-primaPRODUCED- Produto acabadoCONTAINER- ArmazenagemFIXED_ASSET- Ativo Imobilizado
place- Local do produto
externalId- Código de identificação do produto em sistemas externos
color- Cor do produto
size- Texto
- Tamanho padrão do produto
- EX: "P", "M", "G" para roupas. "275 x 185" para MDF
costCenter- Centro de custo do produto
totalItems- Número total de produtos
useGrid- Booleano
- Verdadeiro se utiliza grade nos produtos
Os nomes dos campos da integração podem ser alterados nas configurações caso no sistema externo ou ERP eles forem diferentes.
Ainda é possível receber campos personalizados desde que o mesmo esteja devidamente configurado para a tabela de Produto nas configurações do sistema.
Resposta esperada em caso de erro
Retornar uma resposta padrão HTTP com o respectivo status de erro
JSON
{
"errorMessage": "Mensagem de erro"
}