Conceitos
Status
O status é calculado a cada consulta, nesta ordem:
| Status | Regra |
|---|---|
Inativa | A promoção está desativada (isActive = false). |
Expirada | Ativa, mas a data de término já passou. |
Programada | Ativa, mas a data de início ainda não chegou. |
Ativa | Ativa e dentro do período de vigência. |
Vigência
- Data de início e data de término são obrigatórias.
- A data de término deve ser maior que a data de início e maior que o momento atual — inclusive ao editar. Para editar uma promoção expirada, informe uma nova data de término futura.
Prioridade
order define a ordem de avaliação: quanto menor o número, mais cedo a promoção é avaliada. Promoções sem prioridade ficam por último; empates são resolvidos pela data de início e depois pelo ID. Aceita null, zero ou valores positivos; valores negativos são recusados.
Acúmulo
canAccumulate = false: a promoção só é aplicada se nenhuma outra já tiver sido aplicada ao carrinho, e nenhuma outra é aplicada depois dela.canAccumulate = true: a promoção pode ser combinada com outras que também acumulam, conforme o escopoaccumulationScope.- O acúmulo só tem efeito se a loja estiver configurada para permitir promoções cumulativas.
accumulationScope | Significado | accumulationLinks |
|---|---|---|
0 | Acumula com todas as promoções. | Omita o campo. Ao salvar com escopo 0, os vínculos existentes são removidos. |
1 | Acumula com todas, exceto as selecionadas. | IDs das promoções excluídas (ao menos 1). |
2 | Acumula somente com as selecionadas. | IDs das promoções permitidas (ao menos 1). |
Qualquer outro valor de accumulationScope é recusado com 400 (ACCUMULATION_LINK_INVALID). Regras:
- Com
canAccumulate = false, envieaccumulationScope = 0(ou omita) e nenhum vínculo. - Com escopo
1ou2, a lista vazia[]é recusada (“Selecione ao menos uma promoção…”). Em uma atualização,accumulationLinksomitido ounullmantém os vínculos já cadastrados; enviar a lista substitui os vínculos. - Não envie
accumulationLinks: []para limpar os vínculos: troque o escopo para0. - Uma promoção não pode ser vinculada a ela mesma nem duas vezes à mesma promoção.
Os escopos 1 e 2 só têm efeito no carrinho quando o acúmulo seletivo está habilitado para a loja. Com ele habilitado, valem também estas regras:
- Só é possível vincular promoções existentes na loja e que acumulam.
- Há um limite de vínculos por promoção (padrão: 5).
- Uma promoção citada no acúmulo de outras não pode passar a “não acumular” enquanto existirem essas referências (veja
accumulationInboundLinksem Obter promoção). - Ao criar com escopo
1ou2, informe os vínculos.
Cupons
O tipo da promoção é deduzido da quantidade de códigos em couponInformation.couponCodes:
couponCodes | Tipo |
|---|---|
[] | Promoção sem cupom (aplicada automaticamente). |
| 1 código | Promoção com cupom único. |
| 2 ou mais códigos diferentes | Promoção com múltiplos cupons. |
- Códigos repetidos na lista são gravados uma única vez. Não envie códigos vazios.
- Um código não pode estar em uso por outra promoção da loja (salvo se a loja permitir cupons duplicados).
allowCustomerToReuseSameCouponsó pode sertruecom mais de um cupom.- Apenas uma promoção com cupom é aplicada por carrinho, e ela é avaliada antes das demais.
Limites de uso
totalUsageLimit (usos totais) e usageLimitPerCustomer (usos por cliente), em generalInformation. 0, null ou omitido = ilimitado. Em promoções com cupom, um limite por cliente maior que o limite total é reduzido ao limite total. Se ficarem null, os campos equivalentes de couponInformation (couponTotalUsageLimit e couponUsageLimitPerCustomer) são usados.
Condições e grupos (E / OU)
- As condições ficam dentro de grupos (
conditionGroups). - Dentro de um grupo, todas as condições precisam ser atendidas (E).
- Entre grupos, basta um grupo ser atendido (OU).
- Com 2 ou mais grupos, cada grupo precisa de um
namee de ao menos uma condição. - Uma promoção sem condições vale para qualquer carrinho.
Cada condição é descrita por quatro coordenadas, todas obtidas em Estrutura de condições:
{
"conditionGroup": 5, // grupo (ex.: 5 = Carrinho)
"conditionSubGroup": 16, // subgrupo (ex.: 16 = Subtotal)
"logicOperator": {
"id": 3, // operador (ex.: 3 = maior ou igual)
"arguments": [
{ "id": 4, "values": ["199.90"] } // argumento 4 = valor
]
}
}Operadores
| id | Operador | Observação |
|---|---|---|
1 | Igual | |
2 | Diferente | |
3 | Maior ou igual | |
4 | Menor ou igual | |
5 | Maior | |
6 | Menor | |
7 | Está contido | Use com listas de valores. |
8 | Não está contido | Use com listas de valores. |
9 | A cada | Repete o benefício a cada vez que o limite é atingido. Ex.: “a cada 2 unidades” com 5 unidades no carrinho aplica o desconto 2 vezes (máximo de 100 repetições). |
Cada condição aceita apenas alguns operadores; a lista exata por loja está em logicOperators da estrutura de condições.
Descontos
Cada desconto é descrito por um grupo (discountGroup), um tipo (discountSubGroup: 1 = valor nominal em R$, 2 = percentual, 3 = brinde selecionável) e seus argumentos. Uma promoção pode ter mais de um desconto. Veja todas as combinações em Receitas de descontos.
Selos, divulgação e parceiros
- Selos (
stamps): imagens exibidas nos produtos participantes. Informe ostampIde a ordem de exibição. - Divulgação (
disclosure): textos ou HTML exibidos ao consumidor.type:1= spot (vitrines),2= página de produto.titletem no máximo 50 caracteres. - Parceiros (
partners): restringe a promoção a parceiros (B2B) específicos. Lista vazia = sem restrição.
Algumas condições não permitem divulgação; use Permissão de divulgação para saber se as condições escolhidas permitem selos e textos.
Updated about 2 hours ago

