Pular para o conteúdo principal

Adicionar SKU à Promoção

🚧 Rota em Piloto

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.id do canal de sandbox: fc8488e0-4545-431b-a9dc-2bfa1c1ba1d5;
  • Ter uma promoção de backoffice previamente criada, e utilizar o id_promotion retornado na criação;
  • Informar um SKU válido do catálogo do seller;
  • Informar o header x-tenant-id no formato GENPUB.<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 por normalizer, ex.: 19900 / 100 = R$ 199,00).
  • investment.channel: investimento do canal para o SKU (type pode ser percentage, value ou variable).
  • inventory.limit: limite de estoque disponível para a promoção.

Exemplo de Resposta

{
"id": "SKU123456",
"status": "pending"
}

status pode assumir os seguintes valores:

StatusDescrição
pendingSKU com uma operação pendente.
processingOperação em processamento.
activeSKU publicado e ativo na promoção.
errorOcorreu um erro ao processar o SKU.
suspendedSKU suspenso.
finishedSKU removido/finalizado na promoção.
expiredSKU expirado.
awaiting_approvalSKU 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 ErroCódigo HTTPComo simular o cenário
Channel informed does not match the sandbox channel.422Envie um channel.id diferente do canal de sandbox.
field required (MISSING_REQUIRED_FIELD)422Omita um campo obrigatório do payload.
Promoção não encontrada para o id_promotion/seller informados404Envie um id_promotion inexistente ou de outro seller.
Sku '{id_sku}' not found after draft/sync for promotion '{id_promotion}'.500Ocorre quando o SKU não é encontrado após o draft e a sincronização.
Unauthorized401Utilize um token inválido ou ausente no cabeçalho da requisição.