Receitas de condições
Cada linha mostra o que enviar em conditionGroup, conditionSubGroup, logicOperator.id e logicOperator.arguments para obter a condição desejada. Os operadores listados são os habituais; os aceitos na sua loja estão em Estrutura de condições.
LembretesTodos os valores são strings. Listas de IDs vão como vários itens em
values:["15","22"]. Argumentos marcados como “um ID” aceitam um único valor.Na maioria das condições, os operadores de comparação (
1a6) e o9aceitam um único ID nos argumentos de lista de IDs (ListInt/ListLong); mais de um é recusado. Para listas, use7(está contido) ou8(não está contido). Aceitam vários IDs com qualquer operador: quantidade em categorias (3/21e3/22), quantidade de produtos (4/11), valor em marcas (4/13) e as marcas do subtotal (5/16). Listas de texto não têm esse limite.
1 · Consumidor
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Primeira compra | 1 / 1 | 1 | 7: "true" = é a primeira compra; "false" = já comprou antes. |
| Tipo de cadastro | 1 / 2 | 1 | 15: "1" pessoa física, "2" pessoa jurídica. |
| Aniversariante | 1 / 3 | 1 | 6: "dia", "semana" ou "mes" — aniversário do cliente hoje, nesta semana ou neste mês. |
| Clientes específicos | 1 / 4 | 1, 7, 8 | 16: filtro de clientes em JSON. Veja Condição de clientes específicos. |
| Primeira assinatura | 1 / 5 | 1 | Sem argumentos ("arguments": []). O carrinho tem item de assinatura e o cliente nunca assinou. |
| Possui assinatura paga | 1 / 6 | 1/7 nas recorrências informadas; 2/8 em recorrências fora da lista | 14 (opcional): IDs de recorrência. "0" ou ausente = qualquer recorrência, e então o operador é ignorado (a condição exige uma assinatura paga). |
| Informação cadastral adicional | 1 / 24 | 7, 8 | 19: um ID de campo cadastral; 20: valores aceitos (sem diferenciar maiúsculas). |
| Segmento de audiência | 1 / 27 | 7, 8 | 25: IDs dos segmentos. Disponível em lojas com segmentação de audiência habilitada. |
2 · Endereço de entrega
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Estado | 2 / 7 | 1, 7 (está em); 2, 8 (não está em) | 9: IDs de estado (stateId de Estados ou tabela abaixo). |
| Região | 2 / 8 | 1, 7; 2, 8 | 10: "Norte", "Nordeste", "Centro-Oeste", "Sudeste", "Sul". |
| Faixa de CEP | 2 / 9 | 7 dentro; 8 fora | 11: CEP inicial; 12: CEP final. Ex.: "01000-000". |
| Retirada na loja | 2 / 19 | 1 | Sem argumentos. O cliente escolheu retirar o pedido na loja. |
| IDs de estado | ||||||||
|---|---|---|---|---|---|---|---|---|
| 1 AC | 2 AL | 3 AP | 4 AM | 5 BA | 6 CE | 7 DF | 8 ES | 9 GO |
| 10 MA | 11 MT | 12 MS | 13 MG | 14 PA | 15 PB | 16 PR | 17 PE | 18 PI |
| 19 RJ | 20 RN | 21 RS | 22 RO | 23 RR | 24 SC | 25 SP | 26 SE | 27 TO |
3 · Categorias
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Carrinho com produtos de categorias | 3 / 10 | 7, 8 (listas); 1–6 com um único ID | 1: IDs de categoria; 2 (opcional): "true" inclui subcategorias. |
| Quantidade de produtos em categorias | 3 / 21 | 1, 3–6, 9 | 1: IDs de categoria (aceita vários com qualquer operador); 5: quantidade de unidades. |
| A cada N unidades em categorias | 3 / 22 | 9 | 1: IDs de categoria (aceita vários); 5: quantidade. Soma as unidades das variantes dessas categorias. Funciona sempre como “a cada”, qualquer que seja o operador. |
| Valor em uma categoria | 3 / 23 | 1, 3–6, 9 | 1: um ID de categoria; 4: valor em R$. |
4 · Produtos
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Carrinho com produtos | 4 / 11 | 1, 2, 7, 8 | 3: IDs de produto. |
| Quantidade de produtos | 4 / 11 | 1, 3–6, 9 | 3: IDs de produto; 5: quantidade (use 1 ou mais; não é validada ao salvar). Enviar 5 (ou o operador 9) transforma a condição em “quantidade”. |
| Carrinho com variantes (SKUs) | 4 / 12 | 1, 2, 7, 8 | 8: IDs de variante. |
| A cada N unidades de uma variante | 4 / 12 | 9 | 8: um ID de variante; 5: quantidade. |
| Quantidade de SKUs distintos | 4 / 12 | 1, 3–6 | 5: quantidade de SKUs diferentes; 8 (opcional): restringe a estas variantes (vazio = todas). |
| Valor em marcas | 4 / 13 | 1, 3–6, 9; 2 soma as demais marcas | 13: IDs de marca; 4: valor em R$. |
5 · Carrinho
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Valor total (com frete) | 5 / 17 | 1, 3–6, 9 | 4: valor em R$. |
| Subtotal (produtos) | 5 / 16 | 1, 3–6 | 4: valor em R$. Opcionais: 22 IDs de marca; 23 "false" = considerar só essas marcas, "true" = todas exceto essas; 21 "true" = ignorar produtos remarcados (exige 22). |
| Quantidade de itens | 5 / 14 | 1, 3–6, 9 | 5: quantidade de linhas do carrinho (SKUs diferentes; duas variantes do mesmo produto contam como 2). |
| Item de assinatura com recorrência | 5 / 18 | 1, 2, 7, 8 | 14: IDs de recorrência. |
6 · Tráfego / campanha
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Parâmetro UTM | 6 / 20 | 7, 8 (1, 2) | 17: chave do parâmetro, ex.: "utmSource", "utmMedium", "utmCampaign", "utmTerm" ou "utmContent"; 18: valores aceitos (sem diferenciar maiúsculas). |
8 · Pagamento
| Condição | Grupo / subgrupo | Operadores | Argumentos |
|---|---|---|---|
| Grupo de forma de pagamento | 8 / 26 | 7, 8 | 24: IDs de grupos de pagamento. A condição só é atendida depois que o cliente escolhe a forma de pagamento. |
Combinações não reconhecidas são descartadasO grupo
7(“Outros”) e pares grupo/subgrupo fora destas tabelas são ignorados ao salvar, sem erro. Nos grupos6e8o subgrupo não é conferido: qualquer subgrupo vira, respectivamente, parâmetro UTM e grupo de forma de pagamento. Confira a promoção com Obter promoção depois de salvar.
Condição de clientes específicos
A condição 1 / 4 recebe, no argumento 16, um único valor: o objeto de filtro de Buscar clientes serializado como string JSON. Ao salvar, o filtro é executado e os clientes encontrados ficam vinculados à condição. Todos os campos do filtro são opcionais.
{
"conditionGroup": 1, "conditionSubGroup": 4,
"logicOperator": {
"id": 7,
"arguments": [
{ "id": 16, "values": [ "{\"customersId\":[501,502,503]}" ] }
]
}
}Exemplo de filtro (conteúdo da string, antes de serializar): clientes de SP ou RJ que compraram nos últimos 6 meses.
{ "filtersGroup": [ { "states": ["SP", "RJ"], "lastPurchase": { "purchaseSituation": true, "dateFilter": 5 } } ] }- A lista é calculada no momento em que a promoção é salva. Clientes cadastrados depois não entram automaticamente.
- Limite: 80 mil clientes por condição (
LIMIT_OF_USERSLINKED_CONDITION_REACHED). - Um valor que não é JSON (inclusive
""e a contagem lida no GET) retorna400(MISSING_ARGUMENTS, “Filtro de clientes inválido”). - Um filtro que não encontra nenhum cliente (inclusive
{}) é recusado com400(PRIVATE_API_VALIDATION). Confira o filtro antes em Buscar clientes; lá, porém,linkedCustomers: falsesemfiltersGroupretorna todos os clientes da loja, enquanto na condição isso não vincula ninguém. - Resultados da busca de clientes ficam em cache por até 5 minutos, também ao salvar: clientes que acabaram de se cadastrar podem não entrar.
- Não envie
page,limit,orderBynemorderDirectionno filtro da condição:pagemaior que 1 faz a gravação pular clientes. - Use o operador
7(a promoção vale para esses clientes) ou8(vale para todos, exceto esses). O operador1só aceita um filtro que resulte em exatamente um cliente. Carrinhos sem cliente identificado não atendem a esta condição com nenhum operador. - Para conferir os vinculados depois de salvar, use Clientes de uma condição.
Ao editar
Na leitura, values[0] traz apenas a quantidade de clientes vinculados (ex.: "842"). Reenviar esse número retorna 400. Para manter a lista atual e, se quiser, incluir ou remover clientes, envie:
"{\"promotionId\":1234,\"conditionId\":5521,\"linkedCustomers\":true,\"customersId\":[777],\"customersId_Neq\":[502]}"onde conditionId é o conditionPromotionId da condição lido no GET imediatamente antes do PUT (ele muda a cada atualização); customersId adiciona e customersId_Neq remove clientes. Sem linkedCustomers: true, ou com um conditionId desatualizado, os clientes atuais não são mantidos e não há erro: a condição fica só com o que customersId e os filtros trouxerem.
Updated about 2 hours ago

