POST /api/products/sync
Enfileira um produto para sincronização assíncrona. O payload é publicado na fila product-sync-ifw-hub e processado pelo worker dedicado, que o persiste vinculado ao supplier_id do token.
Autenticação
Requer header Authorization: Bearer <access_token> emitido pelo endpoint POST /api/external-auth/token.
Request
Headers
| Header | Valor |
|---|---|
Content-Type | application/json |
Authorization | Bearer <access_token> |
Body
{
"material_id": 0,
"material": "<nome do material>",
"material_variant_id": 0,
"material_variant": "<nome da variante>",
"sku": "<sku>",
"width": 0,
"height": 0,
"depth": 0,
"weight": 0,
"quantity": 0,
"is_active": true
}
Descrição dos campos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
material_id | int | ✅ | ID do material |
material | string | ✅ | Nome do material |
material_variant_id | int | ✅ | ID da variante do material |
material_variant | string | ✅ | Nome da variante do material |
sku | string | ✅ | SKU do produto |
width | float | ✅ | Largura |
height | float | ✅ | Altura |
depth | float | ✅ | Profundidade |
weight | float | — | Peso do produto |
quantity | int | ✅ | Quantidade |
is_active | boolean | — | Define se o produto está ativo. Padrão: true. Use false para desativar o produto no consumer. |
curl -s -X POST "https://<host>/api/products/sync" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <access_token>" \
-d '{
"material_id": 0,
"material": "<nome do material>",
"material_variant_id": 0,
"material_variant": "<nome da variante>",
"sku": "<sku>",
"width": 0,
"height": 0,
"depth": 0,
"weight": 0,
"quantity": 0,
"is_active": true
}'
Response
202 Accepted
{
"queued": true,
"message_id": "<uuid>"
}
O produto foi recebido e enfileirado. O processamento ocorre de forma assíncrona — use GET /api/products/sku/{sku} para verificar o status após a sincronização.
400 Bad Request
Body inválido ou campos obrigatórios ausentes.
401 Unauthorized
Token ausente, expirado ou inválido.