Páginas filhas
  • APIs Integrações - Estoque Disponível

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

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
    tabsDados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Regras para o retorno, Vídeo de Demonstração
    idspasso1,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
    defaultyes
    referenciapasso1

    Os dados integrados são: 

    STOCKPCEST
    APIReferência Winthor
    createDatepcest.dtprimcompra

    pcprodut.dtcadastro
    lastChangepcpest.dthoraultaltdisp

    pcprodut.dtultalter

    pcprodut.dtcadastro
    productIdpcprodut.codauxiliar + pcprodut.codprod
    quantitypkg_estoque.estoque_disponivel
    unlimitedQuantitypcprodut.exibesemestoqueecommerce = S retorna "true"
    pcprodut.exibesemestoqueecommerce = N retorna "false"
    pcprodut.exibesemestoqueecommerce = NULL retorna "false"
    warehouseBranchIdpcest.codfilial
    warehouseBranchNamepcfilial.razaosocial
    unitMultiplierpcembalagem.qtunit
    Totvs custom tabs box items
    defaultno
    referenciapasso2

    Exemplo do envio da requisição:

    Bloco de código
    languagejs
    titleURI 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
    languagejs
    titleParams
    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
    defaultno
    referenciapasso3

    Exemplo JSON da resposta:  

    Bloco de código
    languagejs
    titleBody 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
    defaultno
    referenciapasso4

    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
    defaultno
    referenciapasso5

    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