Extra option model
An ExtraOption belongs to one Extra through the literal extra_id field. It groups the selectable suboptions for that extra; it is not itself a product or a suboption.
Operations
| Action | Method | Resource |
|---|---|---|
| List | GET | /business/{business_id}/extras/{extra_id}/options |
| Find | GET | /business/{business_id}/extras/{extra_id}/options/{option_id} |
| Create | POST | /business/{business_id}/extras/{extra_id}/options |
| Update | PUT or POST | /business/{business_id}/extras/{extra_id}/options/{option_id} |
| Delete | DELETE | /business/{business_id}/extras/{extra_id}/options/{option_id} |
Both update methods map to the same action but remain separate operations. Requests require authentication; write access is limited to administrators and business managers, with managers scoped to associated businesses. The route must identify the correct business and extra.
Shared concepts
The model includes fields such as id, extra_id, name, image, conditioned, respect_to, min, max, rank, with_half_option, allow_suboption_quantity, limit_suboptions_by_max, enabled, external_id, and snooze_until. Its relations are named extra, suboptions, and metafields.
See load extra option relations and the extra option suboption model.