MANUAL DE LINGUAGEM DE PROMOÇÕES
PROMO 7.2
Índice
Finalidade e âmbito
Este manual tem como objetivo mostrar os passos para definir promoções via formato Json e depois importá-las via REST Service ou RabbitMQ. As informações aqui apresentadas também são válidas para o formato xml de promoções, nesse sentido é apresentado um exemplo operacional para que as definições das promoções possam ser obtidas em formato Json a partir dos mapas xml Promo.
Introdução
As promoções são importadas através do "Serviço de Importação de Promoções em Massa via REST" e você precisa receber as promoções no formato "Json". Para mais informações sobre este serviço, consulte o Manual de Integração de Serviços. Aqui, apenas referenciaremos a definição via Json especificamente.
A formação do Json
A promoção Json tem os parâmetros da promoção e da operação a realizar no registo em questão. Os campos são:
Campo | Detalhe |
cirurgia | As operações que você deseja realizar. Eles podem ser: ( I: Inserir / U: Atualizar / R: Cancelar ) |
inhame | Nome da promoção |
avaliarCondiçãoInCombo | Se a promoção tiver uma condição simples como parte do combo (consulte o Manual do Usuário, definição de Promoções: parâmetro "Avaliar condições no combo") |
reportParticipants | Refere-se à opção de denunciar os participantes da promoção. Valores possíveis: "sempre", "não", "estoque" (desde 7.2) |
código | O código da promoção. |
conjuntos | Lista das referências aos conjuntos que definirão a condição e o benefício da promoção (mais detalhes em Json Sets). |
doença | Definição de condições. |
benefícios | Definição dos benefícios concedidos pela promoção. |
Nota : Para a operação U ou R, é necessário inserir pelo menos um dos dois campos: nome ou código. Lembre-se de que se você enviar apenas o Código (código) da promoção, ele deve ser único, caso contrário, o sistema executará a ação indicada (U ou R) na primeira promoção que encontrar com esse código. Para mais detalhes, consulte as Notas no Manual do Usuário: "Campo de código-chave" e "Nome concatenado e código de promoção".
No exemplo a seguir, mostramos uma estrutura básica e incompleta de alguns dos campos mencionados, apenas para fins de referência:
{ "operação": "eu", "nome": "2305 Promo wal1", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [] }, "doença": { }, "benefícios": { } }
Definir definição
Refere-se aos conjuntos de elementos que farão parte da condição e aos que formarão o conjunto da aplicação.
Os campos são:
Campo | Detalhe | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inhame | É o identificador único do conjunto. Este id será referenciado tanto nas condições quanto no conjunto de aplicações do benefício. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tipo | O código do elemento, seus possíveis valores são:
Para o "tipo" de "interseção" e "união" você precisa colocar uma lista de conjuntos. Pode ter interseção dentro da união e união dentro da interseção. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atributos | É o código do Atributo dos elementos. Seus possíveis valores são:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
comparador | É o código do comparador dos atributos dos elementos. Seus possíveis valores são:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
valor | O valor |
Segue abaixo um exemplo onde o conjunto é para todos os produtos com código igual a 111:
"definir": { "nome": "6171aabde830a52d9c434b95", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "111" }
Segue um exemplo onde o conjunto é para todos os produtos com nível 1 igual a madeira e a forma de pagamento sendo cartão:
"definir": [ { "nome": "5feaf1324b10b84760e83f37", "tipo": "artigo", "atributo": "nível1", "comparador": "Into", "valor": "madeiras" }, { "nome": "5feaf13a4b10b84760e83f3a", "tipo": "pagamento", "atributo": "tipo", "comparador": "Into", "valor": "cartão" } ]
O seguinte é um exemplo onde o "tipo" "união" é usado:
"definir": { "nome": "6171aabde830a52d9c434b95", "tipo": "união", "definir" :[ { "tipo": "artigo", "atributo": "nível1", "comparador": "Into", "valor": "madeiras" }, { "tipo": "pagamento", "atributo": "tipo", "comparador": "Into", "valor": "cartão" } ] }
Exemplo com uma condição simples:
"doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "60f5d150e830a518e0976625" } }
Detalhe dos campos:
Campo | Detalhe | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tipo | O tipo de condição. Seus valores são: (básico ou composto). "Basic" é que a promoção tem apenas uma condição (simples condition) e "composite" que é uma condição por composição ou um combo. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
inhame | É o método da condição, seus valores são:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parâmetro | Eles são uma lista dos parâmetros da condição. Possui dois valores “chave” e “valor”. O elemento "chave" pode ter 2 valores: - "atributo" com esta "Chave" o "valor" pode ter vários valores. Os valores de "vaule" além do valor real da condição são o código: Com os elementos "Distinto" e "Cabeçalho" na condição com "Transação" seu "valor" é diferente da adição. Os de transição são:
Os outros são (quando não são "Transação"):
Alguns exemplos quando usamos o atributo ( attribute ): Note que tem sempre de ter um conjunto com o “tipo”, quando não for condição de uma “Transação”.
Este exemplo mostra que existe uma condição simples com o preço total de todos os itens (SKU) com valor maior ou igual a 1000. |
Exemplo de Condição Simples com dois conjuntos relacionados pela função lógica AND:
"doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "60f58668e830a518e09765d6" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "60f58672e830a518e09765d9" } } ] }
Aqui estão os campos do exemplo acima:
Campo | Detalhe | |||||||
tipo | Tipo de condição. Seus valores são: (básico ou composto). | |||||||
inhame | Esta é a operação na condição, seus possíveis valores são:
| |||||||
doença | Uma lista de condições. |
Exemplo de combo limitado a 1 única instância composta por 1 produto e 1 pagamento variando entre 1300 e 1500:
"definir": [ { "nome": "60f089dee830a518e0976217", "tipo": "pagamento" }, { "nome": "60f08bafe830a518e097621e", "tipo": "artigo" } [....] "combo": { "limite": "1", "componente-combo": [ { "min": "1", "max": "1", "atributo": "quantidade", "conjunto de uso": "60f08bafe830a518e097621e" }, { "min": "1300", "max": "1500", "atributo": "quantia do item", "conjunto de uso": "60f089dee830a518e0976217" } ] }
Detalhe dos campos utilizados no exemplo anterior:
Campo | Detalhe |
limite | Limite de vezes para ser agrupado |
componente de combinação | Uma lista de componentes de combinação |
Os campos dentro do combo-component são:
Campo | Detalhe | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
min | quantidade mínima | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
máximo | quantidade máxima | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atributos | São as Unidades de medida (diferenciam-se pelo tipo (type) e pelo set (use-set) )
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
conjunto de uso | É a relação com a lista de conjuntos. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
critérios de ordem | É o critério de ordenação. Os valores possíveis são:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atributo de equivalência | É o Atributo de equivalência (se houver). Os valores possíveis são:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
atributo de inequivalência | É o Atributo de inequivalência (se houver). Os valores possíveis são:
|
Benefício Json
O elemento “benefits” é um objeto que possui uma lista de benefícios (“benefit”) que a promoção possui com seus parâmetros particulares. Segue um exemplo com dois benefícios, um com Cupom Calculado e outro com Benefício Externo.
"benefícios": { "benefício": [ { "instance": "CalculatedCouponApplicationBenefit", "não": "60131bd5acb1e948c01a28a6", "parâmetro": [… Os parâmetros do benefício …], "elementos aplicados": { "conjunto de uso": { "nome": "60131abbacb1e948c01a2889" } } }, { "instância": "Benefício externo", "não": "60131bf5acb1e948c01a28a8", "parâmetro": [ … Os parâmetros do lucro …], "elementos aplicados": { "conjunto de uso": { "nome": "60131abbacb1e948c01a2889" } } } ] }
Veja a seguir outro exemplo com um benefício da Wallet:
"benefícios": { "benefício": { "instance": "WalletBenefit", "não": "6171aaaee830a52d9c434b91", "parâmetro": [ … Os parâmetros do benefício … ], "elementos aplicados": { "use-set": {"nome": "6171aabde830a52d9c434b95"} } } }
Cada benefício tem seu tipo (instância), seus parâmetros (parâmetro) e a quem aplica esse benefício (elementos-aplicados), este último é constituído para formar um único benefício. Seus campos são:
instância | São os códigos (código) do tipo de benefício. Estes são os possíveis valores desse campo:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
não | É o id do banco de dados ao fazer as operações (U: Atualizar / R: Cancelar) é um campo obrigatório. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parâmetros | É a lista de parâmetros que os tipos de benefício possuem. Parâmetros que possuem todos os benefícios e outros que são exclusivos são mostrados aqui. A "chave" é exibida no campo "Código da chave". O campo "value" são os valores (os em branco são inseridos pelo usuário), alguns deles possuem valores predefinidos (Options values (codes)) conforme abaixo. Parâmetros gerais:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
elementos aplicados | É o Json do aplicativo da promoção |
elementos aplicados
Os elementos-aplicados é a aplicação do benefício. É aplicado ao mais caro primeiro com base em 2 elementos.
"elementos aplicados": { "conjunto de uso": { "nome": "628bedd8a6c1d243c013421e", "critérios de pedido": "MaisCaroPrimeiro", "max": "2.0", "atributo": "quantidade", "min": "2,0" } }
Seus campos são:
Campo | Detalhe | ||||||||
inhame | Referência a um conjunto | ||||||||
critérios de ordem | Estes são os critérios de ordenação, seus possíveis valores são:
| ||||||||
máximo | É a aplicação máxima (valor) | ||||||||
min | É o desconto mínimo a aplicar | ||||||||
atributos | É a aplicação máxima (medida), seus valores possíveis são:
|
passos:
São Passos da definição de promoções escalonadas de um benefício.
"espantado": { "unidade": "quantidade", "staggeredStep": { "não": "629602c8a6c1d21bc8985ddb", "min": "1", "max": "1", "aplicarValor": "1" } }
Seus campos são:
unidade | É a Unidade Escalonada. Seus possíveis valores são:
| ||||||||||
StaggeredStep | É uma lista da definição das Etapas, seus campos são:
|
exemplos
Exemplo 1:
Segue um exemplo onde uma nova promoção é inserida com uma condição simples e tem um benefício na carteira.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "2305 Promo wal1", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": { "nome": "6171aabde830a52d9c434b95", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "111" } }, "doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "6171aabde830a52d9c434b95" } }, "benefícios": { "benefício": { "instance": "WalletBenefit", "não": "6171aaaee830a52d9c434b91", "parâmetro": [ { "chave": "displayMessage", "value": "Promo Wal1" }, { "chave": "mensagem da impressora", "value": "Promo Wal1" }, { "chave": "TLOGMessage", "value": "Promo Wal1" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "6171a7c5e830a52d9c434b89" }, { "chave": "carteira", "valor": "w1" }, { "chave": "limitAmount", "valor": "10" }, { "chave": "por cento", "valor": "50" } ], "elementos aplicados": { "use-set": {"nome": "6171aabde830a52d9c434b95"} } } } } ] }
Exemplo 2:
O json a seguir mostra como uma promoção simples é inserida onde um cupom é concedido como benefício.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 01", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": { "nome": "setCond1", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "111" } }, "doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setCond1" } }, "benefícios": { "benefício": { "instance": "CouponBenefit", "não": "610ae160e830a528c4383a44", "parâmetro": [ { "chave": "displayMessage", "value": "Teste de importação 01" }, { "chave": "mensagem da impressora", "value": "Importação de teste 01 impressa" }, { "chave": "TLOGMessage", "value": "Testar importação 01 tlog" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "benefício01" }, { "chave": "quantidade", "valor": "1" }, { "chave": "cupom", "value": "tipcupelectm1" }, { "chave": "infoPos", "valor": "0" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" } ], "elementos aplicados": { "use-set": {"nome": "setCond1"} } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 3:
Neste exemplo, é inserida uma promoção que possui uma condição simples e uma condição por composição (combo) e é dado como benefício um desconto de 100% em 1 produto batata. Essa promo seria: se você tiver 1 coca e 1 salgadinho, leve os salgadinhos de graça.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 02", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [ { "nome": "setTest1", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "coca" }, { "nome": "setTest2", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "batatas" }, { "nome": "setTest3", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "batatas" } ] }, "doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest1" } }, "combo": { "limite": "1", "componente-combo": [ { "min": "1", "max": "1", "atributo": "quantidade", "use-set": "setTeste1" }, { "min": "1", "max": "1", "atributo": "quantidade", "use-set": "setTeste2" } ] }, "benefícios": { "benefício": { "instância": "PercentageDiscount", "parâmetro": [ { "chave": "displayMessage", "value": "1Promo Coke+ Chips, chips grátis" }, { "chave": "mensagem da impressora", "value": "1Promo Coca+ Chips, chips impressos grátis" }, { "chave": "TLOGMessage", "value": "1Promo Coke+ Potatoes, batata grátis Tlog" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "value": "ProfitTeste3" }, { "chave": "por cento", "valor": "100" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" }, { "chave": "prorataBCP", "valor": "falso" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest3", "max": "1,0", "atributo": "quantidade" } } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 4:
No exemplo a seguir, você tem condições de intervalo de tempo, condições simples e condições de composição. Se efetuar a compra dentro do intervalo de datas e horas indicados e também cumprir a condição simples, que neste caso é um evento específico, e também cumprir a condição por composição indicada, terá um desconto de $ 2 em 1 produto com o código 0000118287.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Teste de importação 03", "código": "2237", "relatórioParticipantes": "falso", "sugerir": "sempre", "descriptor": "[REQPREV|CUPON_VIRTUAL_DELIVERY_1800_VITA_C]-PRM CUPON DELIVERY 1800 VITA C MK 03-30 NOV20", "conjuntos": { "definir": [ { "nome": "setTest1", "tipo": "evento", "Valor do atributo", "comparador": "Into", "valor": "CUPON_VIRTUAL_DELIVERY_1800_VITA_C" }, { "nome": "setTest2", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "0000118287" }, { "nome": "setTest3", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "0000122033" }, { "nome": "setTest4", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "0000118287" } ] }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "composto", "nome e", "doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest1" } } }, { "tipo": "básico", "nome": "Entre", "parâmetro": [ { "chave": "atributo", "valor": "data e hora" }, { "chave": "valor de", "valor": "03/11/2020 00:00" }, { "chave": "valor para", "valor": "30/12/2021 23:59" } ] } ] }, "combo": { "limite": "1", "componente-combo": [ { "min": "1", "max": "1", "atributo": "quantidade", "atributo de equivalência": "código", "use-set": "setTeste2" }, { "min": "3", "max": "3", "atributo": "quantidade", "atributo de equivalência": "código", "use-set": "setTeste3" } ] }, "benefícios": { "benefício": { "instance": "FixedDiscount", "não": "603e80c7e830a523b48a0739", "parâmetro": [ { "chave": "displayMessage", "valor": "CUPÃO PRM ENTREGA 1800 VITA C MK 03-30 NOV20" }, { "chave": "mensagem da impressora", "value": "PRM CUPON DELIVERY 1800 VITA C MK 03-30 NOV20 impresso" }, { "chave": "TLOGMessage", "value": "PRM CUPON DELIVERY 1800 VITA C MK 03-30 NOV20 tlog" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "testeBenefício1" }, { "chave": "quantia", "valor": "2" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest4", "max": "1,0", "atributo": "quantidade" } } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 5:
No exemplo a seguir, é inserida uma promoção com condições simples onde indica que o código do produto deve ser igual a: a, b e c , e deve ter os seguintes tipos de formas de pagamento: VISA e as formas de pagamento devem ter o seguinte número de parcelas: 1, 2 ou 3. O benefício que será concedido será um plano de pagamento em 3 parcelas com a modalidade de pagamento VISA para os produtos a, b e c.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 04", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [ { "nome": "setTest1", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "a,b,c" }, { "nome": "setTest2", "tipo": "pagamento", "atributo": "tipo", "comparador": "Into", "valor": "VISO" }, { "nome": "setTest3", "tipo": "pagamento", "atributo": "parcelas", "comparador": "Into", "valor": "1,2,3" } ] }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest1" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest2" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest3" } } ] }, "benefícios": { "benefício": { "instance": "PaymentPlanBenefit", "parâmetro": [ { "chave": "displayMessage", "value": "CodifMedioPago3Cuotas" }, { "chave": "mensagem da impressora", "value": "CodifMedioPago3Cuotas" }, { "chave": "TLOGMessage", "value": "CodifMedioPago3Cuotas" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "teste de benefício1" }, { "chave": "plano de pagamento", "valor": "1" }, { "Tipo de chave", "valor": "VISO" }, { "chave": "concurso", "valor": "1" }, { "chave": "parcelas", "valor": "1,2,3" }, { "chave": "tipo de porcentagem", "valor": "indistinto" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" } ], "elementos aplicados": { "use-set": {"name": "setTeste1"} } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 6:
No json a seguir é inserida uma promoção com uma condição simples onde indica que você deve comprar o produto 05935 e apresentar o tipo de cartão fidelidade 5. Você obterá como benefício: resgate de pontos para o tipo de cartão e produto mencionado , o fator de conversão será: para cada peso serão atribuídos 2 pontos.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 05", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [ { "nome": "setTest01", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "05935" }, { "nome": "setTest02", "tipo": "cartão de fidelidade", "atributo": "tipo", "comparador": "Into", "valor": "5" } ] }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest01" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest02" } } ] }, "benefícios": { "benefício": { "instance": "RedeemPointsBenefit", "não": "60f586dce830a518e09765dd", "parâmetro": [ { "chave": "displayMessage", "value": "Resgatar Pontos A" }, { "chave": "mensagem da impressora", "value": "Resgatar Pontos A" }, { "chave": "TLOGMessage", "value": "Resgatar Pontos A" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "promoBenefício" }, { "Tipo de chave", "valor": "5" }, { "fator chave", "valor": "2" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" }, { "chave": "prorataBCP", "valor": "falso" } ], "elementos aplicados": { "use-set": {"name": "setTeste01"} } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 7:
No exemplo a seguir, é inserida uma promoção com uma condição simples onde indica que o produto 05935 ou qualquer produto deve ser adquirido e como benefício podem ser trocados pontos no produto 05935 e levará 2 pontos para cada peso.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 006", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [ { "nome": "setTest01", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "05935" }, { "nome": "61126855e830a505e41642a3", "tipo": "artigo" }, ] }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest01" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": [ { "chave": "conjunto de uso", "valor": "61126855e830a505e41642a3" }, { "chave": "atributo", "valor": "xpreço" }, { "valor chave", "valor": "1000" } ] } ] }, "benefícios": { "benefício": { "instance": "RedeemPointsBenefit", "não": "60f586dce830a518e09765dd", "parâmetro": [ { "chave": "displayMessage", "value": "Resgatar Pontos A" }, { "chave": "mensagem da impressora", "value": "Resgatar Pontos A" }, { "chave": "TLOGMessage", "value": "Resgatar Pontos A" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "promoBenefício" }, { "Tipo de chave", "valor": "5" }, { "fator chave", "valor": "2" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" }, { "chave": "prorataBCP", "valor": "falso" } ], "elementos aplicados": { "use-set": {"name": "setTeste01"} } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 8:
Neste exemplo é inserida uma promoção com uma condição simples onde indica que você pode levar qualquer produto e na condição por composição indica que você deve levar 2 vestidos e terá 100% de desconto em 1 batata.
{ "companyId": "napse", "promoções": [ { "operação": "eu", "nome": "Importação de teste 07", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [ { "nome": "setTest1", "tipo": "artigo" }, { "nome": "setTest2", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "vestido" }, { "nome": "setTest3", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "batatas" } ] }, "doença": { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest1" } }, "combo": { "limite": "1", "componente de combinação": { "min": "2", "max": "2", "atributo": "quantidade", "use-set": "setTest2" } }, "benefícios": { "benefício": { "instância": "PercentageDiscount", "não": "611183a0e830a505e4164209", "parâmetro": [ { "chave": "displayMessage", "value": "1Promo Coke+ Chips, chips grátis" }, { "chave": "mensagem da impressora", "value": "1Promo Coke+ Chips, chips grátis" }, { "chave": "TLOGMessage", "value": "1Promo Coke+ Chips, chips grátis" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "611183a0e830a505e416420b" }, { "chave": "por cento", "valor": "100" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" }, { "chave": "prorataBCP", "valor": "falso" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest3", "max": "1,0", "atributo": "quantidade" } } } } } ] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Exemplo 9:
Este exemplo mostra como inserir uma promoção com condição de intervalo de tempo e condições simples: comprando qualquer produto, apresentando um cupom tipo tc26, o cliente deve ser tipo vip e pertencer ao segmento abc1, deve pagar com forma de pagamento tipo VISA e ter um cartão fidelidade tipo 6, a compra deve ser feita no Terminal 081 e deve pertencer à Zona Norte. Se todas essas condições forem atendidas, serão concedidos os seguintes benefícios: troca de cupom calculado, será dado um benefício externo, troca com opções, troca de pontos de catálogo, desconto fixo de $ 200, desconto de acordo de 10%, desconto de 50 % de desconto, um novo desconto de preço, uma troca de pontos, um benefício geral, um coeficiente de fidelidade, um cupom tipo tc26 será concedido,
{ "companyId": "napse", "promoções": [ { "operação": "eu", "name": "Teste de importação 08", "código": "Teste de importação 08", "relatórioParticipantes": "falso", "sugerir": "não", "conjuntos": { "definir": [{ "nome": "setTest1", "tipo": "artigo" }, { "nome": "setTest2", "tipo": "cupom", "atributo": "tipo", "comparador": "Into", "valor": "tc26" }, { "nome": "setTest3", "tipo": "cliente", "atributo": "tipo", "comparador": "Into", "valor": "vip" }, { "nome": "setTest4", "tipo": "cliente", "atributo": "segmento", "comparador": "Into", "valor": "abc1" }, { "nome": "setTest5", "tipo": "pagamento", "atributo": "tipo", "comparador": "Into", "valor": "visto" }, { "nome": "setTest6", "tipo": "cartão de fidelidade", "atributo": "tipo", "comparador": "Into", "valor": "6" } ] }, "doença": { "tipo": "composto", "nome e", doença: [{ "tipo": "composto", "nome e", doença: [{ "tipo": "composto", "nome e", doença: [{ "tipo": "composto", "nome e", doença: [{ "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest1" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest2" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest3" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest4" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest5" } }, { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "setTest6" } } ] }, { "tipo": "básico", "nome": "Cabeçalho", "parâmetro": [{ "chave": "atributo", "valor": "terminal" }, { "valor chave", "valor": "081" } ] } ] }, { "tipo": "básico", "nome": "Cabeçalho", "parâmetro": [{ "chave": "atributo", "valor": "zona" }, { "valor chave", "valor": "norte" } ] } ] }, { "tipo": "composto", "nome e", doença: [{ "tipo": "básico", "nome": "Entre", "parâmetro": [{ "chave": "atributo", "valor": "tempo" }, { "chave": "valor de", "valor": "02:00" }, { "chave": "valor para", "valor": "23:00" } ] }, { "tipo": "básico", "nome": "Entre", "parâmetro": [{ "chave": "atributo", "valor": "data e hora" }, { "chave": "valor de", "valor": "28/01/2021 00:00" }, { "chave": "valor para", "valor": "31/10/2021 23:59" } ] } ] } ] }, "benefícios": { "benefício": [ { "instance": "CalculatedCouponApplicationBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "cupom", "valor": "tc19" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "Benefício externo", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "Tipo de chave", "valor": "compensação" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instance": "RedeemWithOptionsBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } }, "opções de resgate": { "redeemOption": { "benefitToApplyOptionCode": "fixedDiscount", "forEachUnit": "quantidade", "pontos obrigatórios": "1000", "applyValue": "100", "tipo de cartão": "6", "cardPoints": "100" } } }, { "instance": "CatalogRedeemBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "Tipo de chave", "valor": "6" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instance": "FixedDiscount", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "quantia", "valor": "200" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "ContractPercentageDiscount", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "por cento", "valor": "10" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "equilíbrio", "valor": "saldo1" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "PercentageDiscount", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "por cento", "valor": "50" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "NovoPreço", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "valorexterno", "valor": "falso" }, { "chave": "novo preço", "valor": "300" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instance": "RedeemPointsBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "Tipo de chave", "valor": "6" }, { "fator chave", "valor": "10" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "Benefício Geral", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "quantidade", "valor": "10" }, { "chave": "geral", "valor": "33" }, { "chave": "tipo geral", "valor": "geral" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instance": "FactorLoyaltyBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "Tipo de chave", "valor": "6" }, { "fator chave", "valor": "10" }, { "chave": "trxPointsLimit", "valor": "100" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instance": "CouponBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "quantidade", "valor": "1" }, { "chave": "cupom", "valor": "tc26" }, { "chave": "infoPos", "valor": "0" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "CupomBenefício Calculado", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "cupom", "valor": "tc19" }, { "chave": "quantidadeApplicationType", "valor": "porcentagem" }, { "key": "calculatedCouponValue", "valor": "10" }, { "chave": "quantidade", "valor": "100" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "PercentLealtyBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "por cento", "valor": "10" }, { "Tipo de chave", "valor": "6" }, { "chave": "trxPointsLimit", "valor": "200" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "Benefício de presente", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "quantidade", "valor": "1" }, { "chave": "presente", "valor": "caixa grande1" }, { "chave": "tipo de presente", "valor": "caixa grande" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } }, { "instância": "BankRefundBenefit", "parâmetro": [{ "chave": "displayMessage", "valor": "superPromox" }, { "chave": "mensagem da impressora", "valor": "superPromox" }, { "chave": "TLOGMessage", "valor": "superPromox" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "nome", "valor": "60131a84acb1e948c01a2883" }, { "chave": "plano de pagamento", "valor": "agora18" }, { "Tipo de chave", "valor": "crédito" }, { "chave": "concurso", "valor": "visto" }, { "chave": "parcelas", "valor": "18" }, { "chave": "banco", "valor": "santander" }, { "chave": "valor limite", "valor": "200000" }, { "chave": "por cento", "valor": "10" }, { "chave": "tipo de porcentagem", "valor": "desconto" }, { "chave": "bolso" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação" } ], "elementos aplicados": { "conjunto de uso": { "nome": "setTest1" } } } ] } }] }
A imagem a seguir mostra a aparência do resumo da promoção no console Promo:
Etapas para importar uma promoção que está em um mapa xml para o console Promo
Uma boa prática quando começamos a fazer o Json é pegar uma promoção de um mapa existente ou defini-lo no console e obter o mapa em formato xml para convertê-lo no Json equivalente e assim poder entender por comparação e depois fazer para outros. mídia.
Esta seção detalha um procedimento proposto para converter um mapa xml existente para o Json que é esperado como entrada para o serviço de importação de promoções.
1. Importando uma promoção de um mapa .xml
Dado o seguinte map.xml
mapa xml |
<?xml versão="1.0" codificação="UTF-8"?> <promo-engine start-date="19/05/2022 00:00" end-date="26/05/2022 23:59" map-version="1" sugerem="não"> <parameter key="Log" value="true" /> <parameter key="LogConfigurationFile" value="logrsca.xml" /> <parameter key="LogConfigurationCategory" value="com.synthesis.promo" /> <parameter key="Descriptors" value="descriptor.properties" /> <parameter key="DAOConfigurationFeatures" value="com.synthesis.promo.engine.dao.ConfigurationFeatures" /> <parameter key="EvaluationAlgorithmClass" value="com.synthesis.promo.engine.evaluation.InStepsAlgorithm" /> <promoções> <promotion nro="62867033c9512b0184381178" name="Promoções com limites 1" code="30" className="com.synthesis.promo.engine.promotion.ModularPromotion" reportParticipants="false" sugerem="not"> <conjuntos> <set name="62867340c9512b01843811b5" type="item" attribute="code" comparator="Into" value="111" /> </conjuntos> <tipo de condição="composto" nome="E"> <condição tipo="básico" nome="Existe"> <parameter key="use-set" value="62867340c9512b01843811b5" /> </condição> <condição tipo="básico" nome="Cabeçalho"> <parameter key="attribute" value="store" /> <parâmetro chave="valor" valor="napse,napse2" /> </condição> </condição> <benefícios> <benefit instance="FixedDiscount" number="628670c9c9512b018438117f"> <parameter key="displayMessage" value="Promoções com limites 1" /> <parameter key="printerMessage" value="Promoções com limites 1" /> <parameter key="TLOGMessage" value="Promoções com limites 1" /> <parameter key="applicationMethod" value="resume" /> <parameter key="prorationMethod" value="proportional" /> <parameter key="applicationPriceType" value="benefited-price" /> <parameter key="hasLimit" value="true" /> <parameter key="name" value="62867033c9512b0184381178" /> <chave do parâmetro="quantia" valor="300" /> <parâmetro chave="unidade" valor="quantidade" /> <parameter key="prorateBCP" value="false" /> <parameter key="recoveryValue" value="0" /> <parameter key="recoveryType" value="" /> <elementos-aplicados> <use-set name="62867340c9512b01843811b5" /> </applied-elements> </benefício> </benefícios> </promoção> </promoções> <algoritmo de avaliação> <etapa> <nome da função="TODOS"> <nome da função="SIMPLES"> <promotion-usage name="Promoções com limites 1" /> </function> </função> </step> </evaluation-algorithm> </promo-engine> |
Apenas a seção do bloco <promotion ….> deve ser copiada , conforme a imagem a seguir:
XML -> Bloco de promoção |
<promotion nro="62867033c9512b0184381178" name="Promoções com limites 1" code="30" className="com.synthesis.promo.engine.promotion.ModularPromotion" reportParticipants="false" sugerem="not"> <conjuntos> <set name="62867340c9512b01843811b5" type="item" attribute="code" comparator="Into" value="111" /> </conjuntos> <tipo de condição="composto" nome="E"> <condição tipo="básico" nome="Existe"> <parameter key="use-set" value="62867340c9512b01843811b5" /> </condição> <condição tipo="básico" nome="Cabeçalho"> <parameter key="attribute" value="store" /> <parâmetro chave="valor" valor="napse,napse2" /> </condição> </condição> <benefícios> <benefit instance="FixedDiscount" number="628670c9c9512b018438117f"> <parameter key="displayMessage" value="Promoções com limites 1" /> <parameter key="printerMessage" value="Promoções com limites 1" /> <parameter key="TLOGMessage" value="Promoções com limites 1" /> <parameter key="applicationMethod" value="resume" /> <parameter key="prorationMethod" value="proportional" /> <parameter key="applicationPriceType" value="benefited-price" /> <parameter key="hasLimit" value="true" /> <parameter key="name" value="62867033c9512b0184381178" /> <chave do parâmetro="quantia" valor="300" /> <parâmetro chave="unidade" valor="quantidade" /> <parameter key="prorateBCP" value="false" /> <parameter key="recoveryValue" value="0" /> <parameter key="recoveryType" value="" /> <elementos-aplicados> <use-set name="62867340c9512b01843811b5" /> </applied-elements> </benefício> </benefícios> </promoção> |
2. Como converter o xml para json
Em seguida, acesse o site https://www.oxygenxml.com/xml_json_converter.html , para converter o xml para o formato json.
Cole o xml no campo XML e gere o Json pressionando o botão de seta ( -> ).
Isso produzirá a seguinte saída, da qual deve ser copiado apenas o que está dentro de "promoção": { marcado em azul , conforme mostrado no exemplo a seguir:
JSON gerado |
{ "promoção": { "não": "62867033c9512b0184381178", "name": "Promoções com limites 1", "código": "30", "className": "com.synthesis.promo.engine.promotion.ModularPromotion", "reportParticipants": "false", "sugerir": "não", "conjuntos": { "definir": { "nome": "62867340c9512b01843811b5", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "111" } }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "62867340c9512b01843811b5" } }, { "tipo": "básico", "nome": "Cabeçalho", "parâmetro": [ { "chave": "atributo", "valor": "loja" }, { "valor chave", "valor": "napse,napse2" } ] } ] }, "benefícios": { "benefício": { "instance": "FixedDiscount", "não": "628670c9c9512b018438117f", "parâmetro": [ { "chave": "displayMessage", "value": "Promoções com limites 1" }, { "chave": "mensagem da impressora", "value": "Promoções com limites 1" }, { "chave": "TLOGMessage", "value": "Promoções com limites 1" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "hasLimit", "valor": "verdadeiro" }, { "chave": "nome", "valor": "62867033c9512b0184381178" }, { "chave": "quantia", "valor": "300" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "prorataBCP", "valor": "falso" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" } ], "elementos aplicados": { "use-set": {"nome": "62867340c9512b01843811b5"} } } } } } |
3. Como enviar o json obtido através do serviço Massive Promotions Import para o console Promo
Uma vez que todo o conteúdo marcado em azul tenha sido copiado, o formato padrão de importação da promoção deve ser atualizado. Por exemplo:
- Você precisará colar o conteúdo copiado dentro após a “operação”: I, conforme a imagem a seguir.
Isso fornece a seguinte saída com o formato de importação já completo e pronto para uso do POSTMAN:
Resultado JSON da Importação da Promoção O conteúdo colado é marcado em azul |
{ "companyId":"napse", "promoções": [ { "operação":"eu", "não": "62867033c9512b0184381178", "name": "Promoções com limites 1", "código": "30", "className": "com.synthesis.promo.engine.promotion.ModularPromotion", "reportParticipants": "false", "sugerir": "não", "conjuntos": { "definir": { "nome": "62867340c9512b01843811b5", "tipo": "artigo", "atributo": "código", "comparador": "Into", "valor": "111" } }, "doença": { "tipo": "composto", "nome e", "doença": [ { "tipo": "básico", "nome": "Existe", "parâmetro": { "chave": "conjunto de uso", "valor": "62867340c9512b01843811b5" } }, { "tipo": "básico", "nome": "Cabeçalho", "parâmetro": [ { "chave": "atributo", "valor": "loja" }, { "valor chave", "valor": "napse,napse2" } ] } ] }, "benefícios": { "benefício": { "instance": "FixedDiscount", "não": "628670c9c9512b018438117f", "parâmetro": [ { "chave": "displayMessage", "value": "Promoções com limites 1" }, { "chave": "mensagem da impressora", "value": "Promoções com limites 1" }, { "chave": "TLOGMessage", "value": "Promoções com limites 1" }, { "chave": "método de aplicação", "valor": "currículo" }, { "chave": "Método de rateio", "valor": "proporcional" }, { "chave": "aplicativoPriceType", "valor": "preço-benefício" }, { "chave": "hasLimit", "valor": "verdadeiro" }, { "chave": "nome", "valor": "62867033c9512b0184381178" }, { "chave": "quantia", "valor": "300" }, { "chave": "unidade", "valor": "quantidade" }, { "chave": "prorataBCP", "valor": "falso" }, { "chave": "valor de recuperação", "valor": "0" }, { "chave": "tipo de recuperação", "valor": "" } ], "elementos aplicados": { "use-set": {"nome": "62867340c9512b01843811b5"} } } } } ] } |
Importando o json do POSTMAN:
4. Resultado
Promo importado e criado com sucesso no console Promo: