Objetivo
Este documento tem como objetivo explicar o funcionamento da integração do Estoque estoque disponível.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço do serviço winthor-estoque-vtex. Para realizar a instalação desse serviço, segue link com as devidas explicações:
Comece por aqui -> Parametrizações WTA
- Os produtos devem estar com o campo Enviar para E-commerce igual Sim igual a SIM.
Para o caso de venda por Embalagem, sempre utilizaremos a menor embalagem cadastrada para um determinado produto. Sendo Obrigatório , sendo OBRIGATÓRIO o cadastro de Embalagem embalagem para o produto.
- Disponibilizaremos o campo fator de conversão da rotina 2014 - Cadastrar Embalagem.
- Quando o for realizada uma movimentação de determinado produto e for integrado, o sistema atualiza o estoque do produto .
Poderá obter os dados de estoque de multifiliais informando no filtro 'branchId'
, dados separados por vírgula. (Exemplo branchId: 1,2,3,4,5) ou apenas uma filial (Campo obrigatório).
- Quando houver a necessidade de retorno de quantidades por embalagem, deverá ser informado o filtro usesPackagingSales=true.
Será considerado a Origem 'Web' como valor
fixo fixo para cadastros de produtos que estejam com o
campo campo Enviar para E-commerce igual a SIM.
- Através do parâmetro 2829 - commerce igual Sim.
...
- Percentual da quantidade disponível para o e-commerce da rotina 132 - Parâmetros da presidência podemos determinar por filial qual o percentual do estoque será disponibilizado para o e-commerce.
Aviso |
---|
|
Quando não houver preenchimento do campo DATA, exemplo (data de cadastro, data de alteração), nossas APIs retornará por padrão a informação "1900-01-01T00:00:00". Caso necessário, realizar o ajuste nos cadastros para que a API apresente a data desejada. |
Totvs custom tabs box |
---|
tabs | Dados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Regras para o retorno, Vídeo de Demonstração |
---|
ids | passo1,passo2,passo3,passo4,passo5 |
---|
|
A integração consiste em enviar todo estoque disponível que serão utilizados no E-Commerce. Totvs custom tabs box items |
---|
default | yes |
---|
referencia | passo1 |
---|
| Os dados integrados são: STOCK | PCEST |
---|
API | Referência Winthor |
---|
createDate | pcest.dtprimcompra |
| pcprodut.dtcadastro | lastChange | pcpest.dthoraultaltdisp |
| pcprodut.dtultalter |
| pcprodut.dtcadastro | productId | pcprodut.codauxiliar + pcprodut.codprod | quantity | pkg_estoque.estoque_disponivel | unlimitedQuantity | pcprodut.exibesemestoqueecommerce = S retorna "true" pcprodut.exibesemestoqueecommerce = N retorna "false" pcprodut.exibesemestoqueecommerce = NULL retorna apresenta o valor fixo "false"
| warehouseBranchId | pcest.codfilial | warehouseBranchName | pcfilial.razaosocial | unitMultiplier | pcembalagem.qtunit |
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo2 |
---|
| Exemplo do envio da requisição: Bloco de código |
---|
language | js |
---|
title | URI Parameters |
---|
| method: 'GET'
url: '/api/stock-vtex/v1/available/{código da filial}/{código do produto}' -> Envio de parâmetros na URI (Retorno JSON será o mesmo demonstrado)
OU
/api/stock-vtex/v1/available/list?branchId=1,2&usesPackagingSales=true
OU
url: '/api/stock-vtex/v1/available/list' -> Exige os parâmetros abaixo. |
Bloco de código |
---|
| branchId : 1 - Código Filial/Multifilial *requerido
callOrigin : W - Origem 'Web' - valor fixo - caso no cadastro do produto esteja com o campo ENVIARECOMMERCE=S.
lastChange : 2021-08-03T16:14:03 - Data da última alteração
order : lastChange (padrão) - Ordenação da busca
categoryId : 0 - Código da Categoria
subcategoryId : 0 - Código da SubCategoria
sectionId : 0 - Código da Seção
departmentId : 0 - Código do Departamento
providerId : 0 - Código do fornecedor
productId : 0 - Código do Produto
page : 0 - Número da página
pageSize : 0 - Tamanho da página
usesPackagingSales : true - Indica que a quantidade de estoque disponível retornada será particionada por embalagem
resale : true - Indica se deve ou não ser retornado produtos marcados como revenda. Se nulo, todos os produtos serão retornados;
merchandiseType : string - Indica os tipos de mercadoria que deverão ser retornados (PA, KT, CB, etc). Se enviado um tipo de mercadoria inexistente, a consulta retornará vazia; |
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo3 |
---|
| Exemplo JSON da resposta: Bloco de código |
---|
language | js |
---|
title | Body Response |
---|
| {
"first": false,
"items": [
{
"createDate": "2020-01-07T00:00:00",
"lastChange": "2021-08-03T16:56:42",
"productId": "000-0", (Código auxiliar | Código Produto)
"quantity": 0,
"unlimitedQuantity": false,
"warehouseBranchId": "string",
"warehouseBranchName": "string",
"unitMultiplier": 0 -> Quantidade por embalagem
}
],
"hasNext": false
}
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo4 |
---|
| Regras para o retorno dos campos da requisição: Campo "quantity" - Caso o parâmetro "usesPackagingSales" seja enviado como true, o campo retornará de acordo com a seguinte regra:
Image Added % Por Peso: Corresponde ao fator de conversão multiplicado por 100, e dividido pela somatória dos fatores de conversão; Valor aplicado Corresponde ao percentual por peso da embalagem dividido por 100 e multiplicado pela quantidade de estoque do produto; Resto Corresponde ao resto da divisão do valor aplicado pelo fator de conversão; Valor resultante Corresponde ao valor aplicado menos o resto. Na API, é o valor que representa a quantidade particionada por peso de embalagem, e será retornada no campo "quantity"; Quantidade total Corresponde a soma dos valores resultantes das embalagens; Diferença Corresponde a quantidade de estoque do produto menos a quantidade total. O resultado da operação deverá ser somado a quantidade total da embalagem com fator de conversão igual a 1; |
Totvs custom tabs box items |
---|
default | no |
---|
referencia | passo5 |
---|
| Demonstração utilizando o Postman para realizar as requisições na API.
|
|
Integração
Para que seja realizada uma nova integração atualizando um registro já integrado, o sistema verifica a data de última atualização do registro. Portanto, ao realizar alguma alteração no registro, ele será encaminhado novamente para a view para manter a integridade dos dados do ERP com o E-commerce.
...