Páginas filhas
  • DINTVENDAS-91 DT - Precificação por Atacado e Varejo no Envio de Itens.

01. DADOS GERAIS

Produto:

TOTVS Distribuição e Varejo

Linha de Produto:

Linha Winthor

Segmento:

Distribuição

Módulo:

Pedido de Venda

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

  1. Atualize o objeto winthor-venda para a versão 0.38.13.3 ou superior.
  2. Atualize o serviço WSH para a versão 1.38.3.2 ou superior.
  3. Garanta que a Rotina 2670 está na versão 38 ou superior.
  4. Conceda as permissões necessárias na Rotina 530 para a Rotina 2650
  1. Acesse a Rotina 2670 - Gerenciar Integrações E-Commerce.
  2. Cadastre uma nova integração, obtendo um código de autorização.
  3. 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).
  4. 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)
  1. Realize a autenticação no WTA executando o endpoint http://{{host}}:{{port}}/winthor/autenticacao/v1/login.
  2. Inicie o processo de autenticação na API iFood executando o endpoint {{baseUrl}}/oauth/userCode.
  3. Copie a URL completa retornada no JSON (verificationUrlComplete) e realize o login no portal iFood para autorizar/dar permissão para a loja.
  4. Execute o endpoint {{baseUrl}}/oauth/token, preenchendo o authorizationCode (código do aplicativo autorizado) e o authorizationCodeVerifier (valor gerado na etapa 2).
  5. 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


Importante!

As versões estarão disponíveis para download no CCW. 

https://centraldecontrole.pcinformatica.com.br/


Mantenha suas rotinas sempre atualizadas!


05. ASSUNTOS RELACIONADOS