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.
| Tipo | Caminho | Rotas no Swagger |
|---|---|---|
| Chapas | /materials/boards | Boards |
| Fitas de borda | /materials/edges | Edges |
| Componentes | /materials/components | Components |
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 com400e nada é alterado. - Itens cujo
internal_codenã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:
| Campo | Efeito |
|---|---|
price | Preço do item. Valor negativo apaga o preço (fica nulo). |
stock | Estoque. Valor negativo vira 0. |
unit | Unidade de arredondamento. Zero ou negativo apaga o valor (fica nulo). |
active | true 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ção | true | false (padrão) |
|---|---|---|
syncPrice | Copia o preço. | O destino mantém o preço que tinha; itens novos no destino ficam com preço 0. |
syncStock | Copia o estoque. | O destino mantém o estoque que tinha; itens novos no destino ficam com estoque 0. |
syncActive | Desativa 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 é403e nada é copiado. - A cópia roda em segundo plano: a resposta
202só 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 emx-company-internal-code. - Limite: 1 requisição a cada 5 segundos.