Extra option suboption model
An ExtraOptionSuboption is a selectable choice that belongs to one ExtraOption through extra_option_id. The enclosing route also identifies the business and parent extra; those IDs are not interchangeable.
Operations
| Action | Method | Resource |
|---|---|---|
| List | GET | /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions |
| Find | GET | /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id} |
| Create | POST | /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions |
| Update | PUT or POST | /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id} |
| Delete | DELETE | /business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id} |
List and item reads may be public, while mutations may require administrator or business-manager access. Match the business, extra, and option IDs in nested routes; read and mutation permissions can differ.
Shared concepts
The model includes fields such as id, extra_option_id, name, price, image, sku, rank, description, max, half_price, enabled, external_id, preselected, is_alcohol, and snooze_until. Its parent relation is option; its metadata relation is metafields.
Half-option price
half_price is the configured amount for this suboption when it is placed on half of a product. It is not calculated as a percentage of price. In backend order processing, a null half_price falls back to the full price; numeric zero is a distinct backend value. The reviewed client UI handles zero differently, so do not assume it is displayed as free in every client. See Special data types for the order input and placement behavior.
For the Dashboard setup, see Configure product options; for the Website flow, see Customize and add a product.
See load the parent option and the extra suboption metafield operations.
Schema properties
Schema: ExtraOptionSuboption
| Name | Type | Description |
|---|---|---|
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 | — |