Histórico da Página
Objetivo
Este documento tem como objetivo explicar o funcionamento da integração do Estoque disponível.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-estoque-vtex.
- Os produtos devem estar com o campo Enviar para E-commerce igual Sim.
Para o caso de venda por Embalagem, sempre utilizaremos a menor embalagem cadastrada para um determinado produto. Sendo Obrigatório o cadastro de Embalagem para o produto.
- Disponibilizaremos o campo fator de conversão da rotina 2014.
- 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).
- Será considerado a Origem 'Web' como valor fixo para cadastros de produtos que estejam com o campo Enviar para E-commerce igual Sim.
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 "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 url: '/api/stock-vtex/v1/available/list' -> Exige os parâmetros abaixo.
Bloco de código language js title Params 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 : false - Indica se a quantidade de estoque disponível retornada será particionada por embalagem
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:
% 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.