Promoções são ajustes temporários de preço com data de início/fim. Diferente
da Formação de Preço (que recalcula preço a partir de
custo + margem), a promoção aplica um desconto ou valor fixo durante uma janela
configurada.
Quando usar
| Recurso |
Quando |
PUT /integration/prices/bysku |
Ajuste permanente de 1 SKU |
| Formação de Preço |
Regra durável (preço = custo + margem) |
| Promotion (esta página) |
Campanha temporária (Black Friday, queima de estoque) |
Endpoints
Todos sob /integration/promotions (HAL+JSON, JWT obrigatório):
| Método |
Path |
Descrição |
GET |
/{promotionId} |
Recupera 1 promoção por ID |
GET |
/list/all?page=&size=&sort= |
Lista paginada (todas do seller) |
POST |
/list/search |
Busca paginada por filtro (status, datas, tipo, marketplace) |
POST |
/list/search/ids |
Mesma busca, mas retorna só IDs (sync incremental) |
POST |
(root) |
Cria nova promoção (201 Created) |
PUT |
/update/{promotionId} |
Atualiza promoção existente |
DELETE |
/{promotionId} |
Remove promoção |
PUT |
/activate |
Ativa lote de promoções (transição → ACTIVE) |
PUT |
/finish |
Finaliza lote (transição → FINISHED) |
POST |
/{id}/clone |
Clona promoção (novo ID, status INACTIVE) |
Ciclo de vida
INACTIVE ──activate──> ACTIVE ──finish (manual ou endDate)──> FINISHED
│ │
│ └── se restorePricesOnAutoFinish=true,
│ preços voltam ao valor anterior
│
└── criada via POST ou clone
Exemplo: Black Friday
# 1. Criar
PROMO_ID=$(curl -s -X POST "$GUBEE_API/integration/promotions" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d '{
"name": "Black Friday 2026 - Eletrônicos",
"status": "INACTIVE",
"startDate": "2026-11-24T00:00:00Z",
"endDate": "2026-11-30T23:59:59Z",
"restorePricesOnAutoFinish": true,
"eligibility": {
"domain": "PRODUCT",
"categories": ["Eletrônicos"]
},
"ruleType": "PERCENTAGE_DISCOUNT",
"value": 15.0
}' | jq -r '.id')
echo "Promoção criada: $PROMO_ID"
# 2. Ativar (no dia da campanha)
curl -X PUT "$GUBEE_API/integration/promotions/activate" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d "[\"$PROMO_ID\"]"
# 3. Finalizar (manualmente antes do endDate, se precisar)
curl -X PUT "$GUBEE_API/integration/promotions/finish" \
-H "Authorization: Bearer $JWT" \
-H "Content-Type: application/json" \
-d "[\"$PROMO_ID\"]"
| Campo |
Tipo |
Descrição |
id |
String |
ID único (gerado na criação) |
name |
String |
Nome da promoção |
status |
Enum |
INACTIVE / ACTIVE / FINISHED |
startDate |
ISO 8601 |
Início da vigência |
endDate |
ISO 8601 |
Fim da vigência |
restorePricesOnAutoFinish |
Boolean |
Se true, restaura preços pré-promoção ao expirar |
eligibility |
Object |
Árvore de filtros (PRODUCT ou AD, categorias, SKUs, plataformas) |
ruleType |
Enum |
Tipo: PERCENTAGE_DISCOUNT, FIXED_DISCOUNT, FIXED_PRICE, etc |
value |
BigDecimal |
Valor do ajuste (% ou absoluto, conforme ruleType) |
Próximos passos