01. DADOS GERAIS
| Produto: | |
|---|
| Linha de Produto: | |
|---|
| Segmento: | |
|---|
| Módulo: | |
|---|
| Função: | Integrações Winthor |
|---|
| País: | Brasil |
|---|
| Requisito/Story/Issue (informe o requisito relacionado) : | DINTVENDAS-91 |
|---|
02. SITUAÇÃO/REQUISITO
Atualmente, o sistema de envio de itens ao iFood popula apenas o grupo prices no JSON, utilizando o campo PVENDA da tabela PCTABPR. O grupo scalePrices não era preenchido, o que impossibilitava que o iFood recebesse informações de preços diferenciados por atacado.
O objetivo é ajustar a API de envio de itens para que considere o tipo de precificação por atacado e varejo, populando corretamente o grupo scalePrices no JSON enviado ao iFood. Atualmente, o sistema popula apenas o grupo prices, utilizando o campo PVENDA da tabela PCTABPR, o que impede que o iFood receba informações de preços diferenciados por atacado. O grupo scalePrices não é preenchido.
03. SOLUÇÃO
Foi implementado um ajuste na API de envio de itens para que ela possa popular o grupo scalePrices com o valor de atacado e a quantidade mínima necessária, dependendo do layout de precificação utilizado.
O preenchimento do JSON agora é regido por dois layouts:
1. Layout 1 (Precificação pela Rotina 201): O processo é sensível ao parâmetro 2277
◦ Se 2277 = 'P' (Padrão): Apenas o grupo prices é preenchido (com PVENDA), e scalePrices não é enviado.
◦ Se 2277 = 'A' (Atacado): O preço de varejo ( prices ) recebe PVENDAATACx, e o preço de atacado ( scalePrices ) recebe PVENDAx (Comportamento invertido do Winthor).
◦ Se 2277 = 'V' (Varejo): O preço de varejo ( prices ) recebe PVENDAx, e o preço de atacado ( scalePrices ) recebe PVENDAATACx.
2. Layout 2 (Precificação por Embalagem - Rotina 2017): O parâmetro 2277 NÃO é validado.
◦ É validado se PCEMBALAGEM.QTMINIMAATACADO está preenchido e é diferente de zero. Se for nulo ou zero, scalePrices NÃO deve ser enviado.
◦ Se for diferente de zero, prices utiliza PCEMBALAGEM.PVENDA (varejo) e scalePrices utiliza PCEMBALAGEM.PVENDAATAC (atacado), sendo a quantidade carregada de PCEMBALAGEM.QTMINIMAATACADO.
Em ambos os layouts, o Acréscimo de preço configurado na Rotina 2670 deve ser aplicado também no grupo scalePrices. Se o preço de atacado (PVENDAATACx ou valor equivalente) estiver nulo ou zero, o grupo scalePrices não será enviado.
Parâmetro: • Parâmetro 2277 na Rotina 132 - Parâmetros da Presidência (valores 'P', 'A', 'V') (Aplicável ao Layout 1). • Parâmetros 1973, 2257 e 2291 iguais a “Sim” na Rotina 132 (Necessário para usar Precificação por Embalagem - Layout 2). Rotinas e Dependências • Rotina 2670 - Gerenciar Parâmetros da Integração E-Commerce - Versão 38 ou superior. • Rotina 238 - Manutenção do Cadastro de Produtos (Fonte de informação da Qt, Mínima Atacado para Layout 1). • Rotina 2017 - Precificação por Embalagem (Fonte de preços para Layout 2). • Objeto winthor-venda - Versão 0.38.13.3 ou superior. • Serviço WSH - Versão 1.38.3.2 ou superior |
- Atualize o objeto winthor-venda para a versão 0.38.13.3 ou superior.
- Atualize o serviço WSH para a versão 1.38.3.2 ou superior.
- Garanta que a Rotina 2670 está na versão 38 ou superior.
- Conceda as permissões necessárias na Rotina 530 para a Rotina 2650
|
- Acesse a Rotina 2670 - Gerenciar Integrações E-Commerce.
- Cadastre uma nova integração, obtendo um código de autorização.
- Selecione o Layout de Integração desejado (ex: "Ifood Tabela de preço (1)" para Layout 1, ou "iFood - Preço por Embalagem (2)" para Layout 2).
- Na aba Configurações, é possível informar o Acréscimo de preço. O valor preenchido é multiplicado por 100 na fórmula (ex: 0.1 = 10% de acréscimo)
|
- Realize a autenticação no WTA executando o endpoint http://{{host}}:{{port}}/winthor/autenticacao/v1/login.
- Inicie o processo de autenticação na API iFood executando o endpoint {{baseUrl}}/oauth/userCode.
- Copie a URL completa retornada no JSON (verificationUrlComplete) e realize o login no portal iFood para autorizar/dar permissão para a loja.
- Execute o endpoint {{baseUrl}}/oauth/token, preenchendo o authorizationCode (código do aplicativo autorizado) e o authorizationCodeVerifier (valor gerado na etapa 2).
- Obtenha o accessToken retornado, que será utilizado nas chamadas subsequentes
|
Verificação da API (Postman/Consulta Itens)Ao executar o endpoint http://{{host}}:{{port}}/winthor/venda/v0/ifood/item?filial=1&page=1&pageSize=25, deve ser retornando o Status 200 Ok. Os valores dos campos prices, scalePrices e quantity devem ser retornados de acordo com a parametrização realizadas para seu ambiente. • Para o Layout 1, o campo quantity (quantidade mínima para atacado) é definido por uma lógica SQL existente na Integradora, buscando primariamente em pcprodfilial ou pcprodut.qtminimaatacado. • O grupo prices.price deve sempre conter o valor de varejo. O grupo scalePrices.price deve sempre conter o valor de atacado. O campo scalePrices.quantity é a quantidade mínima para ativação do preço de atacado. • Se o qtminimaatacado retornar 0 (ou preço de atacado for nulo ou zero), o grupo scalePrices não deve ser enviado. • Quando o parâmetro 2277 está como 'A' (Atacado), os valores de PVENDAx e PVENDAATACx ficam invertidos no JSON de saída (o valor de atacado é usado como varejo, e vice-versa) |
|
04. DEMAIS INFORMAÇÕES
05. ASSUNTOS RELACIONADOS
