> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fire.rest/llms.txt
> Use this file to discover all available pages before exploring further.

# Publicação de produtos

> Trate os eventos de atualização de produto do Fire.

Quando um ou mais produtos mudam no Fire, o Fire emite dois tipos de eventos de produto:

| Evento                                                                               | Quando                                                               |
| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
| [`product.updated`](/pt/webhook-reference/product-updated)                           | Dados do produto mudaram (nome, preço, imagens, modificadores, etc.) |
| [`product.availability_changed`](/pt/webhook-reference/product-availability-changed) | Um produto foi ativado ou desativado em uma ou mais lojas            |

Ambos os eventos usam o mesmo padrão `targets[]` — um único evento cobre todas as lojas onde o produto aparece.

**As atualizações de produto são incrementais** — os produtos do payload são adicionados ou atualizados, nunca excluídos. Para remover um produto de um cardápio, o Fire envia um evento [`menu.updated`](/pt/guides/menu-publication) completo sem aquele produto.

## Comparação com eventos de loja e cardápio

| Evento                           | Comportamento                                      |
| -------------------------------- | -------------------------------------------------- |
| `store.updated` / `menu.updated` | Substituição completa                              |
| `product.updated`                | Incremental — somente os produtos do payload mudam |

## Tratar o evento

```json theme={null}
{
  "event": "product.updated",
  "data": {
    "targets": [
      { "storeId": "805", "channelId": "...", "listName": "Menu App" },
      { "storeId": "806", "channelId": "...", "listName": "Menu App" }
    ],
    "products": [ ... ],
    "modifierGroups": [ ... ],
    "categories": [ ... ]
  }
}
```

`targets` lista cada loja e cardápio que deve receber a atualização. Os dados do produto são os mesmos para todos os targets.

Veja [`product.updated`](/pt/webhook-reference/product-updated) para o esquema completo.

<Steps>
  <Step title="Verifique a assinatura">
    Valide `X-Fire-Signature`. Veja [Autenticação](/pt/authentication).
  </Step>

  <Step title="Confirme imediatamente">
    Retorne `200 OK` antes de processar.
  </Step>

  <Step title="Itere os targets">
    Para cada entrada de `targets`, identifique a loja e o cardápio em seu sistema downstream.
  </Step>

  <Step title="Adicione ou atualize produtos">
    Aplique `products`, `modifierGroups` e `categories` a cada target. Não remova nenhum produto existente que não esteja presente no payload.
  </Step>
</Steps>
