Items (Items V2) — create, edit, view
Menu: Master Data → Items (often marked NEW).
(Legacy Item Library is the older item list UI — same business idea.)
How to create a new item
- Open Items from the sidebar.
- Click Add Item (or equivalent primary button on your build).
- A large dialog opens with sections (basic info, pricing, tax, locations, modifiers, loyalty, inventory, etc.) — all sections are visible for create and edit.
- Fill at minimum:
- Item name
- Category (select a real category, not empty / zero)
- Quantity / units as your form shows (defaults may exist)
- Prices your business requires (standard / online / dine-in — depends on sections shown)
- For finished products, choose which locations sell the item (the form may pre-select active locations).
- Discount rule: if you enter any discount amount (standard, online, or dine-in) greater than zero, you must also choose a discount type from the dropdown. Otherwise save shows: Please select a discount type when applying discounts.
- Click Save / Create on the dialog (exact label on the bottom bar).
After create, the dialog usually closes and the list refreshes.
How to edit an item
- In the table, use Edit (or row action) on the item.
- The same dialog opens with data filled.
- Change any section (including location overrides for price per outlet).
- Save. Message: Item updated successfully.
Item dialog — tabs and sections
When you Add Item or Edit Item, a large modal opens. At the top you set the image, Item name (required), and Description. Below that, four tabs group the rest of the form:
| Tab | What it covers |
|---|---|
| Basics | Item Details (type, category, barcode, unit), Location Availability, and Pricing (only when the item has no variants — see below) |
| Pricing & Options | Variants or Attributes, plus Modifiers |
| Inventory | Product-level stock tracking and cost fields |
| Advanced | Tax, loyalty, half-and-half, tags, and other flags |
Each row inside a tab (for example Item Details or Pricing Options) expands when you click it — use the chevron on the right.
Finish with Save Changes / Create at the bottom, or Cancel to close without saving.
Product variants (sizes and options)
Menu: Master Data → Items → open an item → Pricing & Options tab → expand Pricing Options.
Variants let one menu item sell as separate versions (for example Small, Medium, Large), each with its own price, online price, and dine-in price. Cashiers and online ordering then ask the customer to pick a variant before adding the item to the cart.
Variants are only available for Finished Product items — not for Ingredient or Packaging types.
Variants vs Attributes: An item uses one pricing style. Variants = fixed sizes/versions with their own prices. Attributes = combinations built from product attributes with price adjustments (for example “Extra cheese +$2”). You cannot keep both on the same item. Switching between them deletes the other setup after you confirm.
Open the variants area
- Open Items and Add Item or Edit a finished product.
- Fill Basics first if this is new: at minimum Item name, Category, and Unit under Item Details, and choose locations under Location Availability when you sell at specific outlets.
- Click the Pricing & Options tab.
- Expand Pricing Options (layers icon — “Variants (e.g. sizes) or attributes (e.g. toppings)”).
- If the item has no pricing style yet, choose Use Variants (not Use Attributes).
Choosing Use Variants creates a starter Regular variant from your base prices. The Pricing block on the Basics tab is then hidden — all sell prices live on the variants table instead.
Add variants step by step
Option A — Quick Fill (Small / Medium / Large)
- When the variant list is still empty, click Quick Fill (S/M/L) in the Product Variants header.
- The app adds three rows (Small, Medium, Large) with example prices based on the item’s base price. Adjust names and amounts, then save the item.
Option B — Add one variant at a time
- Click Add Variant at the bottom of the table.
- A blue row appears. Fill at least:
- Variant name (required) — e.g.
Large - Price (required) — standard / POS price
- Variant name (required) — e.g.
- Set Unit, Online, and Dine-in if they differ from the defaults (new rows copy the item’s base pricing).
- Tick the star column checkbox if this row should be the default variant (pre-selected on POS).
- Click the check icon to add the row, or X to cancel the row.
- Repeat Add Variant for each size or option.
- Click Save Changes on the dialog. Variants are stored when the product saves — there is no separate “save variant” button.
Variants table — columns (main row)
| Column / control | Purpose |
|---|---|
| Drag handle (grip) | Reorder variants; order is the sequence shown on POS |
| Chevron (›) | Expand extra fields (barcode, inventory, per-location prices) |
| Star | Default variant — filled star = default; click an outline star on another row to change default |
| Variant name | Label shown to staff and customers (e.g. Medium) |
| Unit | Measurement unit for this variant (inherits item default; can differ per variant) |
| Price | Standard / in-store price |
| Online | Online ordering price |
| Dine-in | Dine-in channel price |
| Trash | Remove this variant (if you delete the default, the first remaining row becomes default) |
Expanded variant details (click ›)
Expand a row to configure optional fields:
| Field | Required? | Notes |
|---|---|---|
| GTIN / Barcode | No | Scannable code (UPC, EAN, ISBN) for this variant |
| Quantity | No | Numeric amount tied to the unit (default 1) |
| Track Inventory | No | When on, shows Inventory Settings for this variant |
| Opening Stock | No | New variants only — starting quantity at each assigned outlet; blank = 0. After save, change stock in Inventory, not here |
| Purchase Unit | No | Unit you buy stock in |
| Conversion Factor | No | How purchase unit relates to sell unit (default 1) |
| Standard Cost | No | Cost for reporting |
| Reorder / Min / Max stock level | No | Thresholds when inventory is tracked |
| Inventory SKU | No | Internal stock code (separate from GTIN) |
| Override price at location | No | Per-outlet Price, Online, Dine-in, and optional Channel pricing (e.g. kiosk, Uber) |
Quick Fill — Apply to All Locations (when the item is sold at more than one outlet and overrides are enabled): enter Price, Online Price, and/or Dine-in Price, then Apply to create overrides for every selected location at once.
Tips shown under the table:
- Drag the grip to reorder variants.
- Click › for inventory and per-location pricing.
- Click the star to set the default variant.
- All variant rows save when you save the product.
Switch between variants and attributes
- With variants configured, use Switch to Attributes (top right of Product Variants) only if you intend to replace sizes with attribute-based pricing. You must confirm — existing variants are removed.
- With attributes configured, Switch to Variants works the same way in reverse.
Variants and the rest of the form
| Area | Behaviour when variants exist |
|---|---|
| Basics → Pricing | Hidden — set prices on each variant instead |
| Pricing & Options | Shows Product Variants and a badge such as 3 Variants on Pricing Options |
| Inventory tab | Product-level inventory still applies to the item; per-variant Track Inventory is optional in the expanded variant row |
| POS | Staff pick a variant (size/option) before adding the line; default variant is pre-selected when configured |
Practical checklist
- Finished product with name, category, unit, and locations set.
- Pricing & Options → Use Variants (or already on variants).
- Add rows (Quick Fill or Add Variant); set default star on the most common size.
- Expand rows only when you need barcode, stock, or location-specific variant prices.
- Save Changes on the dialog.
- On POS, open the item and confirm each variant name and price.
How to view an item
- Use View from the row (eye icon or View action), if shown.
- The dialog opens in read-only mode — fields are disabled; browse all sections without saving.
What is required (practical minimum)
Always read on-screen errors — your organisation may turn on extra required fields.
| Area | Required in practice |
|---|---|
| Identity | Name, Category |
| Product type | Finished product vs ingredient/packaging — affects whether locations must be chosen |
| Discounts | If any discount field > 0 → Discount type mandatory |
| Tax | Often Tax group when your company mandates it on items |
Optional (common)
Description, image, barcodes, product variants (sizes/options on Pricing & Options), half-and-half flags, loyalty flags, inventory linking, modifiers, attributes (alternative to variants — one per item), product tags, location price overrides, bulk actions (Bulk edit, Clone to location — use only if you understand impact).
List screen tools
Filters typically include search, barcode, category, status, product type; pagination; select rows for bulk operations. Use Refresh after big changes.
Import CSV format (Items V2)
If your screen shows an Import action, use a CSV file in this format.
Blank template: download CSV
| Column | Header name | Notes |
|---|---|---|
| Item name | name | Required. |
| Description | description | Optional. |
| Barcode | barcode | Optional. |
| Product type | product_type | finished_product, ingredient, or packaging_item (defaults to finished_product). |
| Category ID | category_id | Required for finished_product; numeric ID. |
| Measurement unit ID | measurement_unit_id or quantity_unit_id | Required; numeric ID. |
| Quantity | quantity | Number; defaults to 0 when blank. |
| Base price | price | Required number. |
| Online price | online_price | Optional number. |
| Dine-in price | dine_in_price | Optional number. |
| Discount type ID | discount_type_id | Optional numeric ID. |
| Discount | discount | Optional number. |
| Online discount | online_discount | Optional number. |
| Dine-in discount | dine_in_discount | Optional number. |
| Locations | restaurant_ids | Required comma-separated outlet IDs, e.g. 101,102. |
| Status | status | 1 = active, 0 = inactive. |
Use UTF-8 encoding if names include special characters.
