Items with variants: one item, several variants

After reading this you can set up an item once and add several variants underneath, you know what a variant inherits and what it carries itself, you can merge existing copies into one main product with variants — including undo — and you can build packages like ice cream in a wine glass, in a cup or in a waffle, each variant with its own contents.

If you sell Cola in 0.33 l, in 0.5 l and as a 1.0 l carafe, that is one item with three variants. Everything all variants share — name, description, category, tax rate, image — you maintain once. What differs per variant — price, cost price, stock, item number — each variant carries itself.

Check the name and the label and you will see every variant everywhere you would otherwise have kept it as its own item: on the quote, in the kitchen monitor, on the packing list and on the booking page.

What is a variant?

A variant is technically its own product row that points at a main product. The main product bundles the master data; the variants are what guests book. That is why everything that already calculates per item stays valid without a special case — price groups, price from a set date, cost price per supplier, stock journal, stock limit, quantity rule, rental availability: it all hangs on the row, and the row is unique.

The main product itself is not bookable. As soon as an item has variants, you cannot select it anywhere: not on the booking page, not on a document line, not in a booking. What you select is always a variant.

What a variant inherits — and what it carries itself

You maintain these once on the main product; the variants follow automatically and cannot be overridden individually:

  • Name — a variant is called “main name · label”, for example “Cola · 0.5 l”. The label itself you maintain per variant (see below).
  • Description, including the formatted version
  • Category with the visibility on booking pages
  • Tax rate and unit
  • Images, including the label for AI-generated images
  • Tags, dietary notes and meat type
  • Item type (item, rental, service) and billing model
  • Translations of name and description, together with the approval stamp

Each variant carries these itself:

  • Label per language, for example “0.5 l” or “Bottle”
  • Price and cost price
  • Stock, minimum stock, storage location and “Unlimited stock”
  • Item number, supplier item number and barcode
  • Content per unit and packaging
  • Availability: active or inactive, season, weekdays, times, minimum and maximum quantity, guest limits
  • Draft or published

Allergens initially follow the main product. If one variant differs — a “contains nuts” for one preparation, say — open the variant as its own item, switch on Own allergens and maintain the list yourself; the list then carries the note “Differs from the main product”. Reset to main product brings the main product’s list back. You never have to align anything by hand: when the allergen list on the main product changes, every variant without its own list follows. Allergens calculated from recipe ingredients are not affected. If a variant is a package, the allergens of its components count as well — “in a waffle” carries gluten, “in a cup” does not.

Quantity rules are copied from the main product when a variant is created and then live independently — a rule of “0.5 per guest” does not fit a carafe. On the main product you will find Apply to all variants in the Quantity rules section when you want to set the rules for all variants later. More in Quantity from guest count.

Adding a variant

  1. Open the item in the inventory and choose Variants in the sidebar.
  2. Click Add variant.
  3. Enter the label that names the variant — it is the only required value. Add price, stock and, if you use it, the item number.
  4. Under Starting values you choose where price groups, suppliers and quantity rules for the new row come from: From the main product or from an existing variant.
  5. Save with Create.

The label is translatable: in the Add variant dialog the language selector switches the language and you enter the label there. Once the English label is filled in, the English document and the English booking page print “Cola · 0.5 l” instead of just “Cola”. You change price, stock and item number of an existing variant directly in its row; the label itself you change through the AI tools or the import.

Each row in the Variants section shows label, price, cost price, stock and item number; you change price, stock and item number right in the row. Open a variant as its own item and the top of the editor names the main product it belongs to — that is also where you detach it with Detach from main product. Allergens, availability and everything else a variant carries itself are maintained in the variant’s editor.

Deleting: you delete a main product as before; its variants go with it. The confirmation dialog names how many variants are affected beforehand. A single variant you delete like any other item — documents that already contain it stay unchanged.

Turning an item that is already in use into the first variant

You have an item that already appears in quotes, templates, required room products or booking pages — and now you want to make it a variant? Click Add variant all the same. The inventory first checks whether the item is already in use. If it is, the dialog shows This item is already in use instead of the form, with the line So that nothing breaks, it becomes the first variant, and lists the uses with their counts, for example “Used in: documents: 12, line item templates: 2”.

The item then becomes the first variant: the inventory creates a new main product in front of it, takes that item’s master data from yours and asks for two things — What is this variant called? for the existing variant and the name of the main product. With Adopt as first variant the step is done: the item stays bookable, its documents keep pointing at it, and the new variant you wanted is created on the new main product right away.

Nothing is re-pointed on purpose — that is exactly why this path exists. If the database cannot provide the uses, the dialog says so and creates nothing.

Merging existing copies

Many businesses keep their variants as separate items today: “Cola 0.33”, “Cola 0.5”, “Cola carafe”. You turn those copies into one group in a single step.

  1. Open Inventory → Catalog and select two or more items.
  2. In the selection bar choose Merge into variants.
  3. Master data template: choose the item that provides description, category, tax rate, images and allergens. The first item in the list that may be the template is preselected. Items that may not become the template — an existing variant or a payroll item — are locked, with a reason. Packages may be the template, even when their price is calculated automatically.
  4. Name and labels: Univents detects the common name prefix automatically (“Cola”) and enters the rest as the label (“0.33”). You can change both, the main name and every label, per language.
  5. Preview: for each item you see what changes (old → new), whether allergens differ, how many documents and bookings point at it and which price groups, suppliers, quantity rules and pricing rules hang on it.
  6. Confirm with Merge. A new main product is created; every selected item becomes a variant.

Why a new main product? So that no existing item number disappears. Documents, stock, the stock journal, sales history and every reference — templates, required room products, booking pages, configurators, package components — stay with the variant they belong to and keep pointing at a bookable item. Nothing is re-pointed, nothing is deleted; the new main product has no stock, no documents and no journal.

The names of the copies, including their translations, are saved beforehand. If the allergens of a copy differ from the template, it keeps its own list — aligning them would be a safety statement only a human may make.

You need at least two and at most 500 items for one run.

Undoing a merge or detaching a variant

After merging, the inventory offers Undo. It reverses the run completely: the names, descriptions, allergens and translations saved beforehand come back, the links are released, and every item is standalone again. The new main product disappears once it has no variant left.

A single variant you detach at any time in the variant’s editor with Detach from main product — the same operation without a log entry, the everyday case after a wrong click. It becomes a normal item again; price, stock and sales history stay where they are.

Packages with variants

Ice cream comes in a wine glass, in a cup and in a waffle — served differently and with different contents each time. That is one main product “Ice cream” with three variants, and every variant is its own package with its own components: in a wine glass two scoops and a wine glass, in a cup two scoops and a cup, in a waffle two scoops and a waffle.

The main product carries no components at all. You maintain the contents per variant; on the main product the Variants section only tells you that the components live with the variants.

Creating a variant from another one

  1. Open the variant that comes closest to the new one — “in a wine glass”, for example.
  2. Choose Add variant and enter the label, for example “in a cup”.
  3. Under Starting values this variant is already preselected because it is a package: the new one takes over its components including quantities and the setting that calculates price and cost price automatically from the components.
  4. In the new package, swap only what differs — the wine glass for the cup.
  5. Save with Create.

The price and the cost price then calculate from the components of the variant’s own package: when the cup’s price changes, only “in a cup” changes.

An existing package becomes the first variant. If you already use the package in documents, templates or on booking pages, Add variant turns it into the first variant — with all components as they are. After that you add the other variants and swap what differs in each.

Merging. Packages can be merged into one main product even when their price is calculated automatically; components and the automatic switches stay with each variant.

Recipes still have no variants — a recipe stays one recipe with one ingredient list.

Where variants show up

  • Inventory list: the main product appears as a group row with a price range and the number of variants. Show variants expands the variants. The Products total tile counts groups and names “including X variants” underneath.
  • Document editor and booking line: the main product appears as a group. Select it and you get Choose a variant and adopt a variant. A main product never ends up on a document.
  • Packages: a package component is either a standalone item or a variant — never a main product — otherwise material planning would calculate with an item that is never booked. A variant may itself be a package; it then brings its own components along.
  • Booking page: one card per group, with the main product’s image and description plus the allergens and the contents of the chosen variant. Underneath, the guest picks the variant; price, availability and quantity rule apply to the chosen variant, and the cart line is the variant. If a variant is sold out or unavailable on the date, it stays visible but its chip is locked. If only a single variant is visible, the card still offers the choice — so the layout does not jump when something sells out.

Import and export

The import template has two new columns:

  • Variant of (SKU) — the item number of the main product. Empty means: the row is a standalone item or a main product itself.
  • Variant label — the label, for example “1.0 l”. Required as soon as the first column is filled.

Items are created in two passes: first all rows without the variant column, then the variants — the main product has to exist. If it is missing, the check reports the row; it is not created as a standalone item. Without its own item number, a variant is only found again by main product and label on the next import — the check points that out. More in Importing products.

The export contains the same two columns, so the file can be imported again without turning variants into standalone items. Details in Printing or exporting the item list.

Duplicating copies an item’s master data but no variants: a copy of a group is a single item — otherwise every duplication would create a second group with the same labels.

Plan

Item variants are included from the Growth plan. Only creating is locked — add variant, merge, the import columns and creating through the AI chat. After a plan change, existing groups stay readable and bookable, and you can keep detaching variants and undoing runs.

Read on

Univents newsletter

Three topics, pick any. Roughly once a month, no more.

Topics