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

# Overrides de grupos de modificadores

> Precio y reglas de selección distintas para el mismo producto modificador en distintos grupos.

El mismo producto modificador puede aparecer en más de un grupo — por ejemplo cola como bebida incluida en un combo y como extra pagado en una bebida de fuente. **`pricing.modifiers` en el producto modificador** describe cómo se comporta dentro de cada grupo. **`modifier_group_id`** debe coincidir con un grupo que liste este producto en `modifier_ids`.

Los productos padre solo adjuntan grupos mediante `pricing.modifier_group_ids`. No llevan entradas `modifiers`.

## Qué incluye este ejemplo

| Capa | Dónde vive | Grupo bebida incluida | Grupo extra pagado |
| - | - | - | - |
| Reglas del grupo | `modifier_groups` | min 1 · max 1 | min 0 · max 3 |
| Precio del modificador | `cola.pricing.modifiers[]` | \$0 | \$2.50 |
| Adjunto del padre | `meal-combo` / `fountain-drink` | `free-drink` | `add-drink` |

```mermaid theme={null}
flowchart TB
    COMBO["meal-combo"] --> G1["free-drink\nmin 1 · max 1"]
    FOUNTAIN["fountain-drink"] --> G2["add-drink\nmin 0 · max 3"]
    G1 --> COLA["cola · $0 en grupo incluido"]
    G1 --> SPRITE["sprite · $0 en grupo incluido"]
    G2 --> COLA2["cola · $2.50 en grupo extra"]
    G2 --> SPRITE2["sprite · $2.50 en grupo extra"]
```

## Request

Define ambos grupos en `modifier_groups`. Lista `cola` y `sprite` en el `modifier_ids` de cada grupo. En cada producto modificador, agrega una entrada `pricing.modifiers` por grupo con el `modifier_group_id` y la economía de ese contexto.

```bash theme={null}
curl --request PUT \
  --url 'https://firespark.cloud/api/integrations/v1/menus?fulfillment_id=delivery&store_id=downtown&channel_id=app&brand_id=0001' \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d @modifier-group-overrides.json
```

```json modifier-group-overrides.json theme={null}
{
  "style": "DEFAULT",
  "products": [
    {
      "id": "meal-combo",
      "name": { "es_ec": "Combo" },
      "description": { "es_ec": "Plato principal más una bebida incluida." },
      "image_url": null,
      "status": "ACTIVE",
      "bundled_items": [],
      "pricing": {
        "minimum_quantity": 1,
        "maximum_quantity": 5,
        "is_tax_inclusive": true,
        "tax_rate": 0.15,
        "price": 11.99,
        "anchor_price": 11.99,
        "anchor_price_percentage": 0,
        "modifier_group_ids": ["free-drink"],
        "modifiers": []
      },
      "availability": {
        "status": "AVAILABLE",
        "schedules": null,
        "out_of_stock_until": null
      },
      "metadata": {}
    },
    {
      "id": "fountain-drink",
      "name": { "es_ec": "Bebida de fuente" },
      "description": { "es_ec": "Vendida sola con recargas pagas opcionales." },
      "image_url": null,
      "status": "ACTIVE",
      "bundled_items": [],
      "pricing": {
        "minimum_quantity": 1,
        "maximum_quantity": 5,
        "is_tax_inclusive": true,
        "tax_rate": 0.15,
        "price": 2.49,
        "anchor_price": 2.49,
        "anchor_price_percentage": 0,
        "modifier_group_ids": ["add-drink"],
        "modifiers": []
      },
      "availability": {
        "status": "AVAILABLE",
        "schedules": null,
        "out_of_stock_until": null
      },
      "metadata": {}
    },
    {
      "id": "cola",
      "name": { "es_ec": "Cola" },
      "description": null,
      "image_url": null,
      "status": "ACTIVE",
      "bundled_items": [],
      "pricing": {
        "minimum_quantity": 0,
        "maximum_quantity": 3,
        "is_tax_inclusive": true,
        "tax_rate": 0.15,
        "price": 2.5,
        "anchor_price": 2.5,
        "anchor_price_percentage": 0,
        "modifier_group_ids": [],
        "modifiers": [
          {
            "modifier_group_id": "free-drink",
            "minimum_quantity": 0,
            "maximum_quantity": 1,
            "is_tax_inclusive": true,
            "tax_rate": 0.15,
            "price": 0,
            "anchor_price": 0,
            "anchor_price_percentage": 0,
            "default_quantity": 1,
            "charge_above_quantity": 0,
            "display_type": "RADIO",
            "image_url": "https://cdn.example.com/cola-in-combo.jpg"
          },
          {
            "modifier_group_id": "add-drink",
            "minimum_quantity": 0,
            "maximum_quantity": 3,
            "is_tax_inclusive": true,
            "tax_rate": 0.15,
            "price": 2.5,
            "anchor_price": 2.5,
            "anchor_price_percentage": 0,
            "default_quantity": 0,
            "charge_above_quantity": 0,
            "display_type": "CHECKBOX"
          }
        ]
      },
      "availability": {
        "status": "AVAILABLE",
        "schedules": null,
        "out_of_stock_until": null
      },
      "metadata": {}
    },
    {
      "id": "sprite",
      "name": { "es_ec": "Sprite" },
      "description": null,
      "image_url": null,
      "status": "ACTIVE",
      "bundled_items": [],
      "pricing": {
        "minimum_quantity": 0,
        "maximum_quantity": 3,
        "is_tax_inclusive": true,
        "tax_rate": 0.15,
        "price": 2.5,
        "anchor_price": 2.5,
        "anchor_price_percentage": 0,
        "modifier_group_ids": [],
        "modifiers": [
          {
            "modifier_group_id": "free-drink",
            "minimum_quantity": 0,
            "maximum_quantity": 1,
            "is_tax_inclusive": true,
            "tax_rate": 0.15,
            "price": 0,
            "anchor_price": 0,
            "anchor_price_percentage": 0,
            "default_quantity": 0,
            "charge_above_quantity": 0,
            "display_type": "RADIO"
          },
          {
            "modifier_group_id": "add-drink",
            "minimum_quantity": 0,
            "maximum_quantity": 3,
            "is_tax_inclusive": true,
            "tax_rate": 0.15,
            "price": 2.5,
            "anchor_price": 2.5,
            "anchor_price_percentage": 0,
            "default_quantity": 0,
            "charge_above_quantity": 0,
            "display_type": "CHECKBOX"
          }
        ]
      },
      "availability": {
        "status": "AVAILABLE",
        "schedules": null,
        "out_of_stock_until": null
      },
      "metadata": {}
    }
  ],
  "categories": [
    {
      "id": "combos",
      "name": { "es_ec": "Combos" },
      "description": null,
      "status": "ACTIVE",
      "items": [
        { "type": "PRODUCT", "id": "meal-combo" },
        { "type": "PRODUCT", "id": "fountain-drink" }
      ],
      "availability": {
        "status": "AVAILABLE",
        "schedules": null,
        "out_of_stock_until": null
      },
      "metadata": {}
    }
  ],
  "modifier_groups": [
    {
      "id": "free-drink",
      "title": { "es_ec": "Elige tu bebida incluida" },
      "description": null,
      "display_type": "LIST",
      "modifier_ids": ["cola", "sprite"],
      "minimum_quantity": 1,
      "maximum_quantity": 1,
      "charge_above_quantity": null,
      "metadata": {}
    },
    {
      "id": "add-drink",
      "title": { "es_ec": "Agrega una bebida" },
      "description": null,
      "display_type": "LIST",
      "modifier_ids": ["cola", "sprite"],
      "minimum_quantity": 0,
      "maximum_quantity": 3,
      "charge_above_quantity": null,
      "metadata": {}
    }
  ],
  "menus": [
    {
      "id": "all-day-delivery",
      "name": { "es_ec": "Delivery todo el día" },
      "description": null,
      "schedules": null,
      "metadata": {},
      "category_ids": ["combos"],
      "status": "ACTIVE"
    }
  ]
}
```

## Campos de override

Cada entrada `pricing.modifiers` en `cola` configura cómo se muestra la cola dentro de un grupo:

| Campo | Grupo incluido | Grupo extra | Efecto |
| - | - | - | - |
| `modifier_group_id` | `free-drink` | `add-drink` | Vincula la entrada al contexto del grupo |
| `price` | 0 | 2.50 | Gratis en el combo, pagada al agregarla a una bebida de fuente |
| `default_quantity` | 1 | 0 | Preselecciona cola en el combo |
| `display_type` | `RADIO` | `CHECKBOX` | Elección única vs multi-selección opcional |
| `image_url` | foto del combo | omitida | El combo usa esta imagen; el extra conserva la foto del producto |

> [!NOTE]
>
> Los min/max a nivel de grupo viven en `modifier_groups`. El precio por
> modificador, la cantidad por defecto, el tipo de visualización y el
> `image_url` opcional viven en la entrada `pricing.modifiers` del producto
> modificador para ese
> `modifier_group_id`.

## Relacionado

> [card] [Upsert menus — pricing](https://firespark.cloud/docs/es/integrations-api/menus/put.md)
>
> Referencia completa de campos `pricing.modifiers`

> [card] [Menú simple](https://firespark.cloud/docs/es/integrations-api/examples/menu-sync/simple-menu.md)
>
> Configuración base de grupos de modificadores


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.