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

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. 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 a 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 - Cadastrar Embalagem.
  • Quando 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 para cadastros de produtos que estejam com o campo Enviar para E-commerce igual a SIM.

  • Através do parâmetro 2829 - 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.


Importante

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.


A integração consiste em enviar todo estoque disponível que serão utilizados no E-Commerce.

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

Exemplo do envio da requisição:

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.
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 	: 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 deveram ser retornados (PA, KT, CB, etc). Se enviado um tipo de mercadoria inexistente, a consulta retornará vazia;

Exemplo JSON da resposta:  

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
}

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;

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



  • Sem rótulos