Skip to main content

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​

ActionMethodResource
ListGET/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions
FindGET/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}
CreatePOST/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions
UpdatePUT or POST/business/{business_id}/extras/{extra_id}/options/{option_id}/suboptions/{suboption_id}
DeleteDELETE/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

NameTypeDescription
created_atstring | null—
deleted_atstring | null—
descriptionstring | null—
enabledboolean | null—
external_idstring | null—
extra_option_idinteger | null—
half_pricenumber | null—
idinteger | null—
imagestring | null—
is_alcoholboolean | null—
maxinteger | null—
namestring | null—
preselectedboolean | null—
pricenumber | null—
ranknumber | null—
skustring | null—
snooze_untilany—
updated_atstring | null—