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 pageIndex
e 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
}
],
"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
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"
}