Skip to main content

Products

TypeBase PathTrigger Name
REST resource~{realm}/products/products

This resource holds all sellable products and services.

Endpoints

NameMethodRelative PathPayloadResponseDescription
addProductPOST~{realm}/products/ProductStored_ProductAdds a new product to the list.
listProductsGET~{realm}/products/N/AStored_Product[]Retrieves a list of products.
getProductGET~{realm}/products/{id}N/AStored_ProductRetrieves a product.
putProductPUT~{realm}/products/{id}ProductStored_ProductReplaces a product.
updateProductPATCH~{realm}/products/{id}Partial_ProductStored_ProductUpdates specified product fields.
removeProductDELETE~{realm}/products/{id}N/AN/ADeletes a product.

Permissions

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

Entities

Interface Product

namespace Product {
type Type = 'coupon' | 'coupon-voucher' | 'payment-voucher';
}

interface Product {
'name': string;
'name-t9n'?: Translation[];
'description'?: string;
'description-t9n'?: Translation[];
'type'?: Product.Type;
'product-group': number;
'price'?: number;
'unit'?: string;
'plu'?: number;
'sku'?: string;
'brand'?: string;
'model-number'?: string;
'ean'?: string;
'html-description'?: string;
'html-description-t9n'?: Translation[];
'purchase-price'?: number;
'default-quantity'?: number;
'alert'?: string;
'voucher-coupon-product'?: number;
'voucher-coupon-quantity'?: number;
'voucher-payment-method'?: number;
'expiration'?: string;
'modifiers'?: number[];
'id'?: number;
'created'?: DateTime;
'updated'?: DateTime;
'deleted'?: DateTime;
'updated-by'?: number;
'updated-from'?: number;
'tags'?: string[];
'labels'?: number[];
}
PropertyData TypeDescription
nameStringThe product name.
descriptionString?A short description of the product.
typeProduct.Type?Product type. May be null (default) or coupon/coupon-voucher/payment-voucher, which indicates that the product being sold is a voucher that requires special treatment.
product-groupInt64ID of the ProductGroup the product belongs to.
priceMoney?Price, including VAT, in default currency. If unset, cashier needs to enter price manually.
unitString?The unit ("kg", "m²", etc.). If unset, unit is "piece".
pluInt32?PLU code ("Price Look-up Code"). Used to quickly find a product by entering a short code.
skuString?SKU ("Stock Keeping Unit") identifier. Used to uniquely identify a product.
brandString?Product brand/maker. Used as general product metadata or for searching.
model-numberString?Model number. Used as general product metadata or for searching.
eanString?EAN code. Used by bar-code scanners.
html-descriptionString?A detailed, HTML-formatted description. Currently unused!
purchase-priceMoney?Purchase price, excluding VAT, in default currency. Used to calculate profit margin.
default-quantityFloat32?The quantity that should be added when this product is sold. If unset, the cashier will be asked for the quantity. Should normally be set to 1.
alertString?Message to be displayed to cashier when this product is sold. Can be used to remind cashier to check customer's age when serving alcohol, for instance.
voucher-coupon-productInt64?ID of the coupon Product a coupon voucher should contain.
voucher-coupon-quantityFloat32?Number of coupons a coupon voucher should contain.
voucher-payment-methodInt64?ID of the PaymentMethod a payment voucher product should use.
expirationDuration?Default lifetime for payment voucher products.
modifiersInt64[]?A list of ProductModifier IDs that should be applied when this product is sold. If set, overrides the same property in the ProductGroup entity.
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 special product types are available:

TypeDescription
couponThis product is a coupon (which always have negative prices). Coupons cannot be used independently; they must always be used as part of a promotion.
coupon-voucherThis product is a server-managed coupon voucher.
payment-voucherThis product is a server-managed payment voucher.