Pular para o conteúdo principal

Registrar novos preços de SKUs

Este endpoint é utilizado para registrar os preços de SKUs em armazéns. É ideal para sistemas que precisam sincronizar uma grande quantidade de dados de precificação.

POST /v1/batch/pricing

  • Authorization: Basic Auth contendo a chave pública e secreta disponibilizadas para o cliente.
    • Exemplo: Basic <base64-encoded-credentials>
  • x-contractAccountId: Identificador da conta do contrato do cliente.
    • Exemplo: x-contractAccountId: 9f36a666-acd5-4987-a47f-3de247f65d82

Exemplo de Autorização

Para gerar o valor de Authorization, você precisa codificar suas credenciais (public_key:secret_key) em base64. Por exemplo, se sua chave pública for public_key e sua chave secreta for secret_key, você deve codificar public_key:secret_key em base64.

echo -n 'public_key:secret_key' | base64

Corpo da Requisição

O corpo da requisição deve ser uma lista de objetos contendo as informações de preço para o SKU, com os seguintes campos:

CampoTipoNullableDescrição
externalReferencestringNãoReferência externa do SKU para rastreabilidade fora dos sistemas Grocers. Se não for fornecida, será gerada automaticamente.
commercialPolicyIdstringNãoID da política comercial aplicada ao preço do SKU.
listPriceobjectNãoObjeto contendo o preço listado para o SKU.
listPrice.valuenumberNãoValor do listed price.
listPrice.startDateTimestringNãoData e hora de início para o preço listado (formato: YYYY-MM-DD HH:MM:SS).
basePriceobjectNãoObjeto contendo o preço base para o SKU.
basePrice.valuenumberNãoValor do preço base.
fixedPriceobjectSimObjeto contendo o preço fixo do SKU, utilizado em promoções.
fixedPrice.valuenumberSimValor do preço fixo, aplicável durante o período de vigência.
fixedPrice.startDateTimestringSimData e hora de início para o preço fixo (formato: YYYY-MM-DD HH:MM:SS).
fixedPrice.endDateTimestringSimData e hora de término para o preço fixo (formato: YYYY-MM-DD HH:MM:SS).

Exemplo de Corpo da Requisição

[
{
"externalReference": "1",
"commercialPolicyId": "9f36a666-acd5-4987-a47f-3de247f65d82",
"listPrice": {
"value": 110,
"startDateTime": "2024-09-10"
},
"basePrice": {
"value": 100
},
"fixedPrice": {
"value": 90,
"startDateTime": "2024-09-12 12:00:00",
"endDateTime": "2024-09-12 18:00:00"
}
}
]

Respostas

  • 200: Retorna sucesso da operação. A resposta incluirá detalhes sobre o processamento da lista de produtos.
  • 400: Retorna erro de requisição inválida. Isso geralmente ocorre devido a dados de entrada mal formatados ou faltando.
  • 500: Retorna erro interno do servidor. Indica problemas no processamento da requisição no servidor.

Exemplo de Resposta para Sucesso (200)

{ "operationId": "402fe685-2060-432b-ac57-223eb2e680f3" }

Exemplo de Resposta para Erro (400)

{
"error": "Invalid request",
"details": "The commercialPolicyId field is missing."
}

Mensagem de notificação webhook

Quando a operação é bem-sucedida, uma mensagem é enviada para os endpoints de notificação registrados pelo webhook. A mensagem contém o ID, o status da operação detalhes do retorno.

{
"operationId": "54d6a979-5f62-4e17-9d4c-dbd9f5ede403",
"relatedEntity": "SKUPricing",
"eventType": 13,
"data": {
"id": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f9g",
"externalReference": "1",
"commercialPolicyId": "9f36a666-acd5-4987-a47f-3de247f65d82",
"listPrice": {
"value": 110,
"startDateTime": "2024-09-10"
},
"basePrice": {
"value": 100
},
"fixedPrice": {
"value": 90,
"startDateTime": "2024-09-12 12:00:00",
"endDateTime": "2024-09-12 18:00:00"
}
},
"contractAccountId": "9f36a666-acd5-4987-a47f-3de247f65d82"
}
  • OperationId: Identificador único da operação.
  • RelatedEntity: Entidade relacionada ao evento (por exemplo, SKUPricing).
  • EventType: Tipo de evento (por exemplo, SKUPricing_Created).
    • Os tipos possíveis relevantes para preços de SKU são:
      • SKUPricing_Created = 13
      • SKUPricing_Updated = 14
      • SKUPricing_Deleted = 15
  • Data: Dados específicos do evento.
  • ContractAccountId: Identificador da conta do contrato.
  • Error: Detalhes do erro caso exista algum.