Adicionar SKU à Promoção
Esta rota faz parte de uma funcionalidade em fase piloto e está sujeita a alterações.
O comportamento, os parâmetros e a estrutura da resposta podem mudar.
Se você estiver testando esta rota, envie feedback para nossa equipe técnica.
Introdução
Esta seção descreve o processo para incluir um SKU em uma promoção de backoffice já existente, no ambiente de sandbox da Open API Magalu.
Ao ser chamada, a operação realiza, de forma orquestrada, o rascunho (draft) de inclusão do SKU, a sincronização da promoção e a consulta do status final do SKU, retornando o resultado consolidado em uma única resposta.
Pré-requisitos
- Utilizar o
channel.iddo canal de sandbox:fc8488e0-4545-431b-a9dc-2bfa1c1ba1d5; - Ter uma promoção de backoffice previamente criada, e utilizar o
id_promotionretornado na criação; - Informar um SKU válido do catálogo do seller;
- Informar o header
x-tenant-idno formatoGENPUB.<uuid>, identificando o seller/tenant autenticado.
Escopos Necessários
Para realizar a inclusão de SKUs em uma promoção, o seguinte escopo deve estar habilitado para o token de acesso:
open:promotion-skus-seller:write
Exemplo de Requisição
Abaixo, um exemplo de chamada utilizando cURL para incluir um SKU em uma promoção:
curl --request POST \
--url https://api-sandbox.magalu.com/samples/v1/promotions/{id_promotion}/skus \
--header 'authorization: ******' \
--header 'content-type: application/json' \
--header 'x-tenant-id: ******' \
--data '{
"id": "SKU123456",
"channel": {
"id": "fc8488e0-4545-431b-a9dc-2bfa1c1ba1d5"
},
"price": {
"promotional": {
"value": 19900,
"currency": "BRL",
"normalizer": 100
}
},
"investment": {
"channel": {
"value": 1000,
"type": "percentage",
"currency": "BRL",
"normalizer": 100
}
},
"inventory": {
"limit": 100
}
}'
Neste exemplo:
id_promotion(path): identificador da promoção de backoffice previamente criada.id: SKU a ser incluído na promoção, conforme catálogo do seller.channel.id: deve corresponder ao canal de sandbox.price.promotional: preço promocional do SKU (valueé normalizado pornormalizer, ex.:19900 / 100 = R$ 199,00).investment.channel: investimento do canal para o SKU (typepode serpercentage,valueouvariable).inventory.limit: limite de estoque disponível para a promoção.
Exemplo de Resposta
{
"id": "SKU123456",
"status": "pending"
}
status pode assumir os seguintes valores:
| Status | Descrição |
|---|---|
pending | SKU com uma operação pendente. |
processing | Operação em processamento. |
active | SKU publicado e ativo na promoção. |
error | Ocorreu um erro ao processar o SKU. |
suspended | SKU suspenso. |
finished | SKU removido/finalizado na promoção. |
expired | SKU expirado. |
awaiting_approval | SKU aguardando aprovação do seller. |
Cenários de Erro
Estes são exemplos de respostas de erro que podem ser retornadas durante a execução de requisições no ambiente de sandbox.
| Cenário de Erro | Código HTTP | Como simular o cenário |
|---|---|---|
Channel informed does not match the sandbox channel. | 422 | Envie um channel.id diferente do canal de sandbox. |
field required (MISSING_REQUIRED_FIELD) | 422 | Omita um campo obrigatório do payload. |
Promoção não encontrada para o id_promotion/seller informados | 404 | Envie um id_promotion inexistente ou de outro seller. |
Sku '{id_sku}' not found after draft/sync for promotion '{id_promotion}'. | 500 | Ocorre quando o SKU não é encontrado após o draft e a sincronização. |
Unauthorized | 401 | Utilize um token inválido ou ausente no cabeçalho da requisição. |