Skip to main content
product.availability_changed se emite cuando cambia la disponibilidad de uno o más productos — por ejemplo, cuando un restaurante marca un producto como agotado o lo reactiva. Controla si el producto aparece en el menú y está disponible para compra. Soporta múltiples productos en un solo evento. Cuando el cambio afecta a varias tiendas, Fire emite un único evento con todas las tiendas afectadas listadas en targets.

Payload

Campos

data

data.targets[n]

Misma estructura que en product.updated, sin el campo listName en channels[n].

data.targets[n].channels[n]

data.products[n]

Comportamiento

Establecer active: false oculta el producto del menú y lo marca como no disponible para compra. Establecer active: true lo restaura. Este evento no modifica ningún otro dato del producto — nombre, precio, imágenes y modificadores permanecen sin cambios. Desactivar un producto no es sacarlo del menú: sigue siendo miembro, solo deja de estar disponible. Por eso su fecha de incorporación (additionalInfo.assignedAt) no cambia con active: false ni se reinicia al volver a active: true, y este evento no la transmite. Llega en product.updated y en menu.updated.

active es la disponibilidad EFECTIVA, no un solo interruptor

products[n].active no refleja un único campo: es el resultado de combinar la visibilidad del producto con la de cada categoría en la que aparece. Un producto puede vivir en varias categorías del menú, y el evento es plano por producto, así que se toma el OR entre ellas:
active = true si existe AL MENOS UNA categoría donde (la categoría está visible Y el producto está visible en ella).
Dos consecuencias que conviene tener presentes al procesar el evento:
  • Ocultar una categoría entera llega como N entradas de producto, una por cada producto cuya disponibilidad efectiva cambió — no como un cambio de categoría. Este evento no tiene forma de expresar categorías; la estructura del menú viaja en menu.updated (categories[n].displayInList).
  • Un producto que también vive en otra categoría visible NO aparece en el evento, porque su disponibilidad efectiva no cambió. Es correcto, pero significa que la ausencia de un producto en products[] no implica que su categoría no se haya tocado.
Solo se emiten los productos cuya disponibilidad efectiva cambió respecto del estado anterior. Un producto nuevo en el menú no aparece acá: llega con menu.updated / product.updated.

Uso

Consulta la guía Publicación de producto para el flujo completo de procesamiento.