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.

...

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 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.


Aviso
titleImportante

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

/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
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 	: 

...

true					- Indica 

...

que a quantidade de estoque disponível retornada será particionada por embalagem

...

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
}

...


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

...

passo3

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:

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

Demonstração utilizando o Postman para realizar as requisições na API. 

Image Modified

...

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).

...


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

...