import type * as Square from "../index"; /** * A modifier that can be applied to items at the time of sale. For example, a cheese modifier for a burger, or a flavor modifier for a serving of ice cream. */ export interface CatalogModifier { /** The modifier name. This is a searchable attribute for use in applicable query filters, and its value length is of Unicode code points. */ name?: string | null; /** The modifier price. */ priceMoney?: Square.Money; /** * When `true`, this modifier is selected by default when displaying the modifier list. * This setting can be overridden at the item level using `CatalogModifierListInfo.modifier_overrides`. */ onByDefault?: boolean | null; /** Determines where this `CatalogModifier` appears in the `CatalogModifierList`. */ ordinal?: number | null; /** The ID of the `CatalogModifierList` associated with this modifier. */ modifierListId?: string | null; /** Location-specific price overrides. */ locationOverrides?: Square.ModifierLocationOverrides[] | null; /** * (Optional) Name that the restaurant wants to display to their kitchen workers * instead of the customer-facing name. * e.g., customer name might be "Double Baconize" and the * kitchen name is "Add 2x bacon" */ kitchenName?: string | null; /** * The ID of the image associated with this `CatalogModifier` instance. * Currently this image is not displayed by Square, but is free to be displayed in 3rd party applications. */ imageId?: string | null; /** When `true`, this modifier is hidden from online ordering channels. This setting can be overridden at the item level using `CatalogModifierListInfo.modifier_overrides`. */ hiddenOnline?: boolean | null; /** * Child `CatalogModifierList`s that this `CatalogModifier` nests for multi-step choices. * When a customer or staff member selects this modifier, the relevant follow-up modifier list appears. * For example, selecting "Hummus" reveals a secondary "Choose Hummus Flavor" set, and selecting a flavor * could reveal a third-level portion size set. * * Each entry references a child modifier list. Each modifier can nest up to 5 child modifier list, and * supports up to 3 levels of nesting depth. The order in `child_modifier_list_ids` determines display order * during checkout. */ childModifierListIds?: string[] | null; }