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
Header
- Authorization: Basic Auth contendo a chave pública e secreta disponibilizadas para o cliente.
- Exemplo:
Basic <base64-encoded-credentials>
- Exemplo:
- x-contractAccountId: Identificador da conta do contrato do cliente.
- Exemplo:
x-contractAccountId: 9f36a666-acd5-4987-a47f-3de247f65d82
- Exemplo:
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:
| Campo | Tipo | Nullable | Descrição |
|---|---|---|---|
externalReference | string | Não | Referência externa do SKU para rastreabilidade fora dos sistemas Grocers. Se não for fornecida, será gerada automaticamente. |
commercialPolicyId | string | Não | ID da política comercial aplicada ao preço do SKU. |
listPrice | object | Não | Objeto contendo o preço listado para o SKU. |
listPrice.value | number | Não | Valor do listed price. |
listPrice.startDateTime | string | Não | Data e hora de início para o preço listado (formato: YYYY-MM-DD HH:MM:SS). |
basePrice | object | Não | Objeto contendo o preço base para o SKU. |
basePrice.value | number | Não | Valor do preço base. |
fixedPrice | object | Sim | Objeto contendo o preço fixo do SKU, utilizado em promoções. |
fixedPrice.value | number | Sim | Valor do preço fixo, aplicável durante o período de vigência. |
fixedPrice.startDateTime | string | Sim | Data e hora de início para o preço fixo (formato: YYYY-MM-DD HH:MM:SS). |
fixedPrice.endDateTime | string | Sim | Data 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
- Os tipos possíveis relevantes para preços de SKU são:
- Data: Dados específicos do evento.
- ContractAccountId: Identificador da conta do contrato.
- Error: Detalhes do erro caso exista algum.