Configurando as lógicas de Recomendações

Neste material, você terá todas as informações de como recomendar produtos automaticamente em kits personalizados

Leonardo Abreu

Última atualização há 8 meses

1 Introdução

A funcionalidade Recomendações tem como objetivo adicionar automaticamente equipamentos, durante a montagem dos kits personalizados, para facilitar o fluxo de compra do usuário. Esta adição de produtos segue, exatamente, a lógica configurada na plataforma pelo distribuidor.

Ao entrar na configuração de recomendações, e clicar no botão "Atualizar recomendações", abre-se um pop-up que se divide em duas seções:

  • Variáveis;

  • Condições

1.1 Variáveis

As variáveis têm como objetivo servirem para trazer escalabilidade, facilitar a manutenção e atualização de informações particulares do sistema.

Para criar uma variável, clique no botão +, digite o nome da variável e clique novamente em + para salvar. Atenção: após escolhido um nome para uma variável, esse nome não poderá ser alterado.

Alguns exemplos são:

  • Criar variáveis para utilizá-las nas recomendações de string box. Se há mais de 1 modelo de inversor que recomenda 1 modelo de string box, é interessante unificar tudo dentro da mesma variável;

  • Criar variáveis para utilizá-las nas recomendações de estruturas de fixação. Se há módulos que utilizam fixações diferentes de acordo com o seu tamanho, é interessante unificar dentro da mesma variável;

  • Criar variáveis para fazer validações de condição VERDADEIRA ou FALSA. Neste caso, pode-se criar uma condição para retornar 1 ou 0 e utilizá-la para multiplicar outras fórmulas.

Para editar ou adicionar informações na variável, deve-se clicar no ícone lápis e, no pop-up que abrir, deve-se criar as diversas condições desejadas e suas respectivas fórmulas. Após finalizar, deve-se clicar em Salvar.

Atenção: O sistema irá percorrer as condições de cima para baixo até encontrar a primeira condição verdadeira, ou seja, a partir da validação da condição, o sistema não analisará as demais. Portanto, atenção ao utilizar condições de “>”, “>=”, “<” e “<=”, para que não haja diversas condições verdadeiras simultaneamente. No exemplo abaixo, para qualquer quantidade acima de 10 módulos, a condição 1 será satisfeita, sendo assim, todas as demais condições NUNCA serão utilizadas.

1.2 Condições

As condições têm como objetivo configurar em quais situações os produtos serão recomendados automaticamente pelo sistema. Caso a condição configurada seja atendida, o sistema adicionará a quantidade do equipamento de acordo com a fórmula digitada no campo Quantidade. Neste campo, é possível utilizar as variáveis predefinidas na plataforma e as criadas pelo usuário.

2 Fórmulas e variáveis predefinidas

2.1 Fórmulas

Atualmente, o sistema dispõe de algumas fórmulas e operadores para auxiliar na configuração das recomendações, como:

  • Operadores aritméticos:

Adição: +

Subtração: -

Divisão: /

Multiplicação: *

Parênteses: ()


  • Operadores de comparação:

Maior: >

Maior e igual: >=

Menor: <

Menor e igual: <=

Igual: =

Diferente: <>


  • Operadores lógico: possibilita realizar combinação de condições utilizando “e” e “ou”.

Exemplo: potenciaTotal < 10 e (contemCodigo = Produto123 ou contemCodigo = Produto456)

  • verificar.decimal(dividendo;divisor;validação;decimal): verifica as casas decimais de uma divisão e valida esse valor de acordo com uma condição. Caso a condição seja verdadeira, o sistema retorna 1, caso seja falsa irá retornar 0. Além disso, é possível utilizar esta fórmula associada à uma função que dependa da validação configurada.

Dividendo: É o número a ser dividido

Divisor: É o número que irá dividir o dividendo

Validação: pode ser utilizado: >; >=; <; <=; =; <>

Decimal: é o valor decimal a ser comparado. Deve ser um número >= 0 e < 1.

Exemplo: para verificar se a quantidade de módulos é par, deve-se utilizar esta função de acordo com o mostrado abaixo. Se a quantidade de módulos divido por dois, resultar em um número cuja casa decimal seja igual a zero, então retornará 1, senão retornará 0. Portanto, se a validação for verdadeira (1), a quantidade do produto recomendado será a mesma que a quantidade de inversores selecionados. Se for falsa (0), retornará 0 e nenhum produto será recomendado.

verificar.decimal(qtdTotalModulos; 2; = ;0)*qtdInversores

Atenção: Caso queira utilizar essa fórmula para validar que as decimais estão em um intervalo, utilize a multiplicação dessa fórmula, de acordo com o seguinte exemplo abaixo.


verificar.decimal(8;2;>;0,5) * verificar.decimal(8;2;<;0,75)

  • arredondar.para.cima(número): irá arredondar o número para o primeiro número inteiro superior.

  • arredondar.para.baixo(número): irá arredondar o número para o primeiro número inteiro inferior.

  • quociente(dividendo;divisor): tem como objetivo retornar o número inteiro resultante da divisão.

Dividendo: É o número a ser dividido.

Divisor: É o número que irá dividir o dividendo.

  • mod(dividendo;divisor): tem como objetivo retornar o resto resultante da divisão.

Dividendo: É o número a ser dividido.

Divisor: É o número que irá dividir o dividendo.

  • switch( referência; valor1; resultado1; valor2; resultado2; … valorn; resultadon; resultado padrão): assim como no Excel, esta função compara um valor com uma lista de valores, e retorna um resultado referente à primeira correspondência, trazendo maior escalabilidade nas recomendações.

Referência: deve ser um valor numérico ou o resultado numérico de uma variável;

valor1, valor2 … valorn: valor numérico para comparar se é igual ao valor de referência;

resultado1, resultado2…resultadon: resultado que a função switch deve retornar caso a referência seja igual ao valor1, valor2 … valorn.

padrão: resultado que a função deve retornar, caso nenhuma referência seja validada.

Exemplo: Para a recomendação de perfis, utilizando a função switch, foi utilizado como referência a quantidade total de módulos selecionados, a partir da variável qtdTotalModulos (descrita na seção 2.2). De acordo com o exemplo, caso 1 módulo seja selecionado, a recomendação será de 1 perfil, se optar por 2 módulos, a recomendação será de 1 perfil, e se optar por 3 módulos a recomendação será de 2 perfis. E caso você escolha um número de módulos que não descrito na função, a recomendação será automaticamente o valor padrão de “11”.

Produto a adicionar: ProdutoA – Perfil para 2 módulos

Condição: qtdTotalModulos > 0

Quantidade: switch (qtdTotalModulos ; 1 ; 1 ; 2 ; 1 ; 3 ; 2 ; 4 ; 2 ; 11 )

1 módulo = 1 perfil recomendado

2 módulos = 1 perfil recomendado

3 módulos = 2 perfis recomendados

4 módulos = 2 perfis recomendados

5 módulos = 11 perfis recomendados

6 módulos = 11 perfis recomendados

...

10 módulos = 11 perfis recomendados

2.2 Variáveis

Atualmente, as variáveis predefinidas no sistema são as seguintes:

  • codigoProduto: código do equipamento cadastrado. Esta variável verifica se o produto mencionado está adicionado na plataforma e, juntamente à variável “qtdProduto”, é possível contabilizar a quantidade destes produtos adicionados. Atenção: Esta variável ser utilizada, exclusivamente, no campo “Condição”. Sugerimos a utilização desta variável quando se deseja contabilizar a quantidade de daquele produto. Caso deseje somente validar a presença do produto no orçamento, vide variável “contemCodigo”.


Exemplo 1: de acordo com a lógica implementada abaixo, caso haja 3 produtos “ProdutoA” e 2 produtos “ProdutoB”, a condição será verdadeira e o sistema irá contabilizar 5 produtos.

Produto a adicionar: X

Condição: codigoProduto = ProdutoA ou codigoProduto = ProdutoB ou codigoProduto = ProdutoC

Quantidade: qtdProduto

A cada código validado, a fórmula presente em Quantidade se repete. Ao final, os resultados obtidos são somados.

Exemplo 2: Se 3 ProdutoA e 2 ProdutoB forem selecionados, será recomendado 3*2 + 2*2 = 10 produtos X.


Produto a adicionar: X

Condição: codigoProduto = ProdutoA ou codigoProduto = ProdutoB ou codigoProduto = ProdutoC

Quantidade: qtdProduto*2

  • contemCodigo: código do equipamento cadastrado. Esta variável tem como objetivo validar se aquele produto está incluso no orçamento. Atenção: Esta variável deve ser utilizada, exclusivamente, no campo “Condição”. Recomenda-se a utilização desta variável para validar a presença daquele produto. Caso queira contabilizar a quantidade de produtos específicos, utilize a variável “codigoProduto”.


Exemplo: caso o produto “ProdutoA” ou o produto “ProdutoB” esteja presente no orçamento, a quantidade recomendada do produto X será igual ao total de módulos selecionados no orçamento.

Produto a adicionar: X

Condição: contemCodigo = ProdutoA ou contemCodigo = ProdutoB

Quantidade: qtdTotalModulos

  • linhasArranjo: contabiliza ou valida as linhas dos arranjos informadas na seção “Estruturas” na aba de kit personalizado. Esta variável pode ser utilizada no campo “Condição” e no campo “Quantidade”. Atenção: ao utilizar esta variável, a plataforma realizará o cálculo para cada arranjo e somará as quantidades.

Exemplo: para recomendar o produto X, a plataforma repetirá o cálculo linhasArranjo*2 + 10 para cada arranjo configurado, da forma descrita abaixo.

Produto a adicionar: X

Condição: linhasArranjo >= 1

Quantidade: linhasArranjo*2 + 10

Layout montado pelo integrador:

Contas que o sistema irá realizar:

Arranjo 1: 2*2 +10 = 14

Arranjo 2: 3*2 +10 = 16

Arranjo 3: 1*2 +10 = 12

Resultado total: A plataforma recomendará 14+16+12= 42 do produto X.

  • modulosPorLinhaArranjo: Esta variável tem como objetivo contabilizar os módulos por linhas de arranjos informadas nas estruturas. Esta variável pode ser utilizada no campo “Condição” e no campo “Quantidade”. Atenção: ao utilizar esta variável, a plataforma realizará o cálculo para cada arranjo e somará as quantidades.

Sempre que quiser utilizar esta variável, deve-se utilizar nas condições a variável modulosPorLinhaArranjo ou linhasArranjo como uma condição.

Exemplo:

Produto a adicionar: X

Condição: modulosPorLinhaArranjo >= 1

Quantidade: modulosPorLinhaArranjo *2 + 10

Layout montado pelo integrador:

Contas que o sistema irá realizar:

Arranjo 1: 10*2 +10 = 30

Arranjo 2: 5*2 +10 = 20

Arranjo 3: 20*2 +10 = 50

Resultado total: Resultado total: A plataforma recomendará 30+20+10= 100 do produto X.

  • orientacao: orientação do módulo. Esta variável é utilizada para validar a orientação informada no arranjo. Pode-se utilizar esta validação de duas formas:

orientacao = retrato;

orientacao = paisagem.

Esta variável pode ser utilizada, exclusivamente, no campo “Condição”. Atenção: ao utilizar esta variável, a plataforma realizará o cálculo para cada arranjo e somará as quantidades.


Exemplo: a plataforma irá validar a orientação selecionada pelo usuário para assim recomendar o produto X.

Produto a adicionar: X

Condição: linhasArranjo >= 1 e orientação= retrato

Quantidade: linhasArranjo *2 + 10

Layout montado pelo integrador:

Contas que o sistema irá realizar:

Arranjo 1: 2*2 +10 = 14

Arranjo 2: 3*2 +10 = 16

Arranjo 3: 1*2 +10 = 12

Resultado total: A plataforma recomendará 14+16+12= 42 do produto X.

  • qtdProduto: Esta variável retorna a quantidade de produtos contabilizados pela condição “codigoProduto” mencionada anteriormente. Atenção: Esta variável deve ser utilizada, exclusivamente, no campo “Quantidade”. Atentar às diferentes formas de aplicação desta variável.


Exemplo: De acordo com a recomendação abaixo, caso haja 3 produtos “ProdutoA” e 2 produtos “ProdutoB”, a condição será verdadeira e o sistema irá contabilizar 10 produtos.

Produto a adicionar: X

Condição: codigoProduto = ProdutoA ou codigoProduto = ProdutoB

Quantidade: qtdProduto*2

O cálculo funciona da seguinte forma:

(qtdProdutoA*2) + (qtdProdutoB*2) = 10

(3*2) + (2*2) = 6 + 4 = 10

Ou seja, a multiplicação é aplicada por código do produto e por fim soma todos os resultados dessas multiplicações.

Resultado: o sistema irá recomendar 10 produtos.

  • qtdProdutos(código do produto): retorna a quantidade selecionada do produto informado entre parênteses. Atenção: Esta variável deve ser utilizada, exclusivamente, no campo “Quantidade”.


Exemplo: De acordo com a recomendação abaixo, caso haja 3 produtos “ProdutoA” e 2 produtos “ProdutoB”, a condição será verdadeira e o sistema irá calcular a Quantidade, com base na soma dos produtos.

Produtos a adicionar: X

Condição: qtdTotalModulos > 0

Quantidade: ((qtdProduto(ProdutoA) + (qtdProduto(ProdutoB)) * 2

O cálculo funciona da seguinte forma:

((3+2))*2 = 5*2 = 10

Ou seja, não há diferenciação do produto por conta do código, apenas é somado o total de produtos e o resultado final é multiplicado por 2.

Resultado: o sistema irá recomendar 10 produtos.

  • potenciaTotal: retorna a potência total do sistema em kWp, ou seja, a potência total dos módulos selecionados. Esta variável pode ser utilizada tanto como condição, quanto como quantidade.

  • potenciaModulo: retorna a potência individual de cada módulo em Wp. Esta variável pode ser utilizada tanto como condição, quanto como quantidade.

  • qtdTotalModulos: retorna o valor absoluto de módulos selecionados no sistema. Esta variável pode ser utilizada tanto como condição, quanto como quantidade.

  • qtdInversores; qtdStringbox; qtdOutros: retorna o valor absoluto dos respectivos produtos selecionados no sistema. Esta variável pode ser utilizada tanto como condição, quanto como quantidade.

  • qtdInversorMono: retorna a quantidade de inversores monofásicos selecionados.

  • qtdInversorTri: retorna a quantidade de inversores trifásicos selecionados.

  • tipoEstrutura: verifica o tipo de estrutura informada pelo integrador e valida a condição de acordo com os nomes das estruturas criadas na plataforma. Esta variável deve ser utilizada, exclusivamente, no campo “Condição”. Atenção: O nome da estrutura deve sempre ser informado entre aspas e com a escrita exatamente como cadastrado no sistema, ou seja, letras maiúsculas e minúsculas, quantidades de espaços.


Exemplo: Caso o usuário selecione a estrutura “Nome da Estrutura Criado”, a plataforma irá recomendar o produto X na mesma quantidade de inversores.

Produto a adicionar: X

Condição: tipoEstrutura = “Nome da Estrutura Criado”

Quantidade: qtdInversores

  • tipoInversorPrincipal: verifica o tipo de inversor selecionado no kit. Caso seja criado um sistema misturando inversores micro e string, o sistema retorna “string” como resposta. Pode-se utilizar esta validação de duas formas:

tipoInversorPrincipal = micro;

tipoInversorPrincipal = string;

tipoInversorPrincipal = hibrido;

tipoInversorPrincipal = solaredge.

Atenção: Esta variável deve ser utilizada, exclusivamente, no campo “Condição”.


  • totalLinhasArranjo: contabiliza o valor absoluto de linhas de arranjos informadas nas estruturas. Esta variável pode ser utilizada tanto como condição, quanto como quantidade.

Exemplo:

Produto a adicionar: X

Condição: totalLinhasArranjo >= 1

Quantidade: totalLinhasArranjo *2 + 10

Layout montado pelo integrador:

Contas que o sistema irá realizar: Total de Linhas Arranjo = 2 + 3 + 1 = 6
Resultado total: a plataforma recomendará 6 * 2 + 10= 22 do produto X.

  • qtdTotalEntradasInversor: Contabiliza o valor absoluto de entradas dos inversores selecionados.


Exemplo: Recomendar 2 unidades do conector MC4 para cada entrada do inversor.

Condição: qtdTotalEntradasInversor > 0

Quantidade: qtdTotalEntradasInversor*2


  • padraoEntrada: o padrão de entrada selecionado na jornada de compras.

  • tensaoRede: a tensão selecionada na jornada de compras.
  • maiorCorrenteIscModulo: Verifica a corrente de curto circuito (Isc) do módulo selecionado.

  • maiorCorrenteImpModulo: Verifica a corrente de máxima potência (Imp) do módulo selecionado.

Exemplo: Recomendar cabos de 4mm ou de 6mm de acordo com a corrente do módulo. No exemplo abaixo a plataforma irá recomendar 2 metros de cabo preto com diâmetro de 4mm para cada módulo com corrente menor que 13A.

  • larguraModulo: largura do módulo de acordo com o cadastro do equipamento.

  • comprimentoModulo: comprimento do módulo de acordo com o cadastro do equipamento.

  • alturaModulo: altura do módulo de acordo com o cadastro do equipamento.

  • pesoModulo: peso do módulo de acordo com o cadastro do equipamento.

2.3 Informações adicionais

  • Sempre que for adicionado um novo produto ou alterado um código de produto, deve-se verificar se não é necessário atualizar alguma recomendação que utilize este código;

  • Sempre que for adicionado uma nova estrutura ou alterado o nome de uma estrutura, deve-se verificar se não é necessário atualizar alguma recomendação que utilize esta estrutura;

  • Para as recomendações dos equipamentos das estruturas, para evitar recomendações quando o usuário informar o tipo de estrutura “Sem estrutura”, sugerimos sempre adicionar a condição: tipoEstrutura <> “Nome estrutura sem estrutura”;

  • Para as recomendações dos equipamentos das estruturas, para NÃO RECOMENDAR quando o usuário informa “Não sei informar” na parte do layout, sugerimos sempre adicionar uma das seguintes condições:

linhasArranjo >=1

totalLinhasArranjo >=1

  • Para as recomendações dos equipamentos das estruturas, para RECOMENDAR quando o usuário informa “Não sei informar” na parte do layout, deve-se sempre adicionar a condição: totalLinhasArranjo = -1.


Este artigo foi útil?

0 de 0 gostaram deste artigo