Skip to main content

Product Modifiers

TypeBase PathTrigger Name
REST resource~{realm}/product-modifiers/product-modifiers

This resource holds all product modifiers. A product modifier is a string value, label or product that may be added to a product/item when it is added to a tab. Product modifiers are used to add extra information to kitchen tickets or to add extra charges to a product.

Endpoints

NameMethodRelative PathPayloadResponseDescription
addProductModifierPOST~{realm}/product-modifiers/ProductModifierStored_ProductModifierAdds a new product modifier to the list.
listProductModifiersGET~{realm}/product-modifiers/N/AStored_ProductModifier[]Retrieves a list of product modifiers.
getProductModifierGET~{realm}/product-modifiers/{id}N/AStored_ProductModifierRetrieves a product modifier.
putProductModifierPUT~{realm}/product-modifiers/{id}ProductModifierStored_ProductModifierReplaces a product modifier.
updateProductModifierPATCH~{realm}/product-modifiers/{id}Partial_ProductModifierStored_ProductModifierUpdates specified product modifier fields.
removeProductModifierDELETE~{realm}/product-modifiers/{id}N/AN/ADeletes a product modifier.

Permissions

PermissionDescription
edit-product-modifiersClient is allowed to add new product modifiers and to modify or delete existing product modifiers.
show-product-modifiersClient is allowed to query the product modifier list and to fetch individual product modifiers.

Entities

Interface ProductModifier

namespace ProductModifier {
type Title = 'heading' | 'inline' | 'hidden';
type Type = 'single-value' | 'multiple-values' | 'single-product' | 'multiple-products' | 'products' | 'single-label' | 'multiple-labels';;
}

interface ProductModifier {
'name': string;
'title'?: ProductModifier.Title;
'values'?: string[];
'required'?: boolean;
'label-values'?: number[];
'products'?: number[];
'automatic': boolean;
'type': ProductModifier.Type;
'id'?: number;
'created'?: DateTime;
'updated'?: DateTime;
'deleted'?: DateTime;
'updated-by'?: number;
'updated-from'?: number;
'tags'?: string[];
'labels'?: number[];
}
PropertyData TypeDescription
nameStringName of product modifier. Must be unique.
titleProductModifier.Title?How the modifier name is displayed on kitchen tickets. Default is heading for values and hidden for products.
valuesString[]?List of possible values; used for modifier types single-value and multiple-value.
requiredBooleanIf true, the cash register will prevent the cashier from adding a product to the tab until one modifier has been checked.
label-valuesInt64[]?List of possible labels; used for modifier types single-label and multiple-labels.
productsInt64[]?List of possible products; used for modifier type single-product, multiple-products or products.
automaticBooleanIf true, the cash register will trigger a modifier dialog automatically when a product using this modifier is added to the current tab.
typeProductModifier.TypeKind of modifier. See below.
idInt64?The resource ID of this entity.
createdDateTime?Date and time when this entity was first created.
updatedDateTime?Date and time when this entity was last modified.
deletedDateTime?Date and time when this entity was deleted.
updated-byInt64?ID of User who last modified this entity.
updated-fromInt64?ID of Till (trusted device) which last modified this entity.
labelsInt64[]?A list of Label IDs associated with this entity.

The following product modifier types are available:

TypeDescription
single-valueA list of named options is presented and the cashier is allowed to select a single item from the list.
multiple-valuesA list of named options is presented and the cashier is allowed to select any number of items from the list.
single-productA list of products is presented and the cashier is allowed to select one product from the list.
multiple-productsA list of products is presented and the cashier is allowed to select any number of items from the list. The products can have a non-zero price that will be added to the total.
productsA list of products is presented and the cashier is allowed to select any number of items from the list. The products can have a non-zero price that will be added to the total.
single-labelA list of labels is presented and the cashier is allowed to select one label from the list.
multiple-labelsA list of labels is presented and the cashier is allowed to select any number of labels from the list.
  • Values are used to add a small piece of information to a product, such as "rare", "medium" or "well done" for a steak.
  • Products are used to add an extra product to an item, such as "Double Cheese" or "Bacon" for a burger, if such extras are not free.
  • Labels, finally, can be used to attach extra labels to a specific item, in order to force an item into a non-default kitchen ticket section (as configured by section-labels in KitchenPrinterConfig).

For presentation on kitchen tickets, the following title types are supported:

TypeDescription
headingThe modifier name is displayed as a heading, on a separate line.
inlineThe modifier name is displayed before the value, on the same line.
hiddenThe modifier name is not displayed on the kitchen ticket at all.