---
title: "Modelo de subopción de opción de extra | Documentación de Ordering.co"
description: "Una ExtraOptionSuboption es una selección que pertenece a una ExtraOption mediante extra_option_id."
canonical: https://docs.ordering.co/es/api-reference/guides/extra-option-suboption-model/
---

# Modelo de subopción de opción de extra

Una `ExtraOptionSuboption` es una selección que pertenece a una `ExtraOption` mediante `extra_option_id`. La ruta que la contiene también identifica el negocio y el extra superior; esos IDs no son intercambiables.

## Operaciones

| Acción     | Método         | Recurso                                                                                   |
| ---------- | -------------- | ----------------------------------------------------------------------------------------- |
| Listar     | `GET`          | `/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions`                |
| Consultar  | `GET`          | `/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}` |
| Crear      | `POST`         | `/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions`                |
| Actualizar | `PUT` o `POST` | `/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}` |
| Eliminar   | `DELETE`       | `/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}` |

Las consultas de lista y detalle pueden ser públicas, mientras que las mutaciones pueden requerir acceso de administrador o administrador de negocio. Los IDs de negocio, extra y opción deben corresponder a la jerarquía de la ruta; los permisos pueden variar entre lecturas y escrituras.

## Conceptos compartidos

El modelo incluye campos como `id`, `extra_option_id`, `name`, `price`, `image`, `sku`, `rank`, `description`, `max`, `half_price`, `enabled`, `external_id`, `preselected`, `is_alcohol` y `snooze_until`. Su relación con la entidad superior es `option`; su relación de metadatos es `metafields`.

### Precio para mitad de producto

`half_price` es el importe configurado para esta subopción cuando se ubica en una mitad del producto. No se calcula como porcentaje de `price`. En el procesamiento de pedidos del backend, si `half_price` es nulo se usa el `price` completo; el valor numérico cero es distinto para el backend. La interfaz de cliente revisada maneja el cero de otra forma, así que no supongas que todos los clientes lo muestran como gratis. Consulta [Tipos de datos especiales](https://docs.ordering.co/es/api-reference/guides/special-data-types/) para la entrada del pedido y el comportamiento de la ubicación.

Para configurar el Dashboard, consulta [Configurar opciones de productos](https://docs.ordering.co/es/docs/products/dashboard/stores/create-edit-product/product-options/); para el flujo de Website, consulta [Personalizar y agregar un producto](https://docs.ordering.co/es/docs/products/website/browse/customize-product/).

Consulta [cómo cargar la opción superior](https://docs.ordering.co/es/api-reference/guides/extra-option-suboptions-special-request/) y las [operaciones de metafields de subopciones de extra](https://docs.ordering.co/es/api-reference/guides/get-extra-suboption-metafields/).

## Propiedades del esquema

**Esquema:** `ExtraOptionSuboption`

| Nombre            | Tipo            | Descripción |
| ----------------- | --------------- | ----------- |
| `created_at`      | string \| null  | —           |
| `deleted_at`      | string \| null  | —           |
| `description`     | string \| null  | —           |
| `enabled`         | boolean \| null | —           |
| `external_id`     | string \| null  | —           |
| `extra_option_id` | integer \| null | —           |
| `half_price`      | number \| null  | —           |
| `id`              | integer \| null | —           |
| `image`           | string \| null  | —           |
| `is_alcohol`      | boolean \| null | —           |
| `max`             | integer \| null | —           |
| `name`            | string \| null  | —           |
| `preselected`     | boolean \| null | —           |
| `price`           | number \| null  | —           |
| `rank`            | number \| null  | —           |
| `sku`             | string \| null  | —           |
| `snooze_until`    | any             | —           |
| `updated_at`      | string \| null  | —           |
