Pular para o conteúdo principal

Materiais

A sua integração mantém preço, estoque e status ativo/inativo dos materiais da central: chapas, fitas de borda e componentes. Os três tipos têm as mesmas rotas e o mesmo formato; muda só o caminho.

TipoCaminhoRotas no Swagger
Chapas/materials/boardsBoards
Fitas de borda/materials/edgesEdges
Componentes/materials/componentsComponents

Os exemplos abaixo usam chapas.

Código interno​

Toda rota de materiais localiza o item pelo internal_code, o código interno do item no seu sistema. As rotas de atualização não criam itens nem alteram o código interno de um item existente: o cadastro do material e o seu código interno são feitos no Cortecloud. A única rota que cria itens é a cópia entre centrais, e só nas centrais de destino. Itens sem código interno não aparecem em nenhuma rota.

Antes de integrar, confirme com a central que os itens que o ERP vai atualizar estão cadastrados no Cortecloud com os mesmos códigos do ERP.

Listar​

Rota: GET /materials/boards (e as equivalentes de fitas e componentes).

Devolve internal_code, active, price, stock e unit de cada item, paginado por limit e offset (ver paginação). Para buscar um item só, use a consulta por código. Limite: 1 requisição a cada 5 segundos.

Consultar um item​

Rota: GET /materials/boards/{internalCode}.

Devolve o item com o código interno informado na URL, ou 404 se a central não tiver um item com esse código.

Atualizar vários itens​

Rotas: PUT /materials/boards ou PATCH /materials/boards. As duas fazem a mesma coisa.

É a forma indicada para sincronizar o ERP com o Cortecloud: uma chamada atualiza todos os itens enviados. Só os campos enviados mudam; os outros ficam como estão.

[
{ "internal_code": "MDF-BR-18", "price": 289.9, "stock": 42 },
{ "internal_code": "MDF-CZ-15", "active": false }
]

O corpo pode ser uma lista de itens, como acima, um objeto { "resource": [...] } ou um item só.

  • Cada item precisa ter internal_code. Se faltar em algum, a requisição inteira é recusada com 400 e nada é alterado.
  • Itens cujo internal_code não existe na central são ignorados sem erro. A resposta lista só os códigos atualizados: compare com o que foi enviado para saber quais ficaram de fora.
  • Limite: 1 requisição a cada 5 segundos.

Campos aceitos:

CampoEfeito
pricePreço do item. Valor negativo apaga o preço (fica nulo).
stockEstoque. Valor negativo vira 0.
unitUnidade de arredondamento. Zero ou negativo apaga o valor (fica nulo).
activetrue ativa o item na central; false desativa.

Atualizar um item​

Rotas: PUT /materials/boards/{internalCode} ou PATCH /materials/boards/{internalCode}.

Atualiza o item com o código interno da URL, com os mesmos campos da atualização em lote. Responde 404 se a central não tiver um item com esse código.

Se o corpo também trouxer internal_code, vale o do corpo: o item atualizado é o que tem esse código, e não o da URL. Para não atualizar o item errado, não envie internal_code no corpo desta rota.

Copiar materiais entre centrais​

Rota: POST /materials/boards/cross-sync (e as equivalentes de fitas e componentes).

Serve para empresas com várias centrais que vendem o mesmo catálogo: em vez de atualizar cada central, a integração atualiza uma e copia os materiais dela para as outras.

{
"sourceCompanyInternalCode": "CENTRAL-SP",
"targetCompanyInternalCodes": ["CENTRAL-RJ", "CENTRAL-MG"],
"syncPrice": true,
"syncStock": false,
"syncActive": false
}

Cada central de destino passa a ter os mesmos materiais da central de origem: itens que o destino não tinha passam a existir nele, e os que ele já tinha recebem os dados da origem, como código interno e status ativo/inativo.

Opçãotruefalse (padrão)
syncPriceCopia o preço.O destino mantém o preço que tinha; itens novos no destino ficam com preço 0.
syncStockCopia o estoque.O destino mantém o estoque que tinha; itens novos no destino ficam com estoque 0.
syncActiveDesativa no destino os itens que não existem na origem.Esses itens ficam como estão.

Regras:

  • A central de origem precisa ser a central da requisição (x-company-internal-code), e as de destino precisam estar ativas no Cortecloud e vinculadas à mesma api key. Se alguma não estiver, a resposta é 403 e nada é copiado.
  • A cópia roda em segundo plano: a resposta 202 só confirma que ela foi agendada. Nenhuma rota informa quando a cópia termina; para conferir o resultado, liste os materiais com o código da central de destino em x-company-internal-code.
  • Limite: 1 requisição a cada 5 segundos.