# How to set up unit-based products and packs

> Published: 2026-09-16
> Updated: 2026-09-16
> Category: Manage
> Canonical: https://finalpos.com/help/how-to-set-up-unit-based-products-and-packs

To set up unit-based products, open the product in the Merchant Hub and choose a Sold in unit (pound, metre, glass) in the Variants table instead of By the piece. Define your own units and pack sizes under Manage, Products, Units of measure, and point pack variants at the holding variant with Stock source so sizes share one stock.

## Key takeaways

- Set the selling unit per variant with the Sold in field on the product page; the default By the piece works as before.
- Create your own units and pack sizes under Manage → Products → Units of measure, inside a unit family that shares one base unit.
- To sell one stock in several sizes, turn on Track stock, keep Stock source at Its own stock on the holding variant, and set From [variant] on every other size, all in the same family.
- At the till, staff key the quantity in the selling unit; Final calculates the line total, prints quantity @ rate = total, and decrements the shared pool.
- Refunds and reprints use the quantity, unit and rate stored at the time of sale, never the live catalog.

## What is a unit-based product?

Unit-based products sell in a measure other than one piece: by the pound or kilogram, by the metre or foot, by the glass, or by a pack size you define such as a box of 24. You set the unit on the product in the Merchant Hub, and at the till Final prompts staff for the quantity and works out the line total, the receipt line and the stock movement. Products left at the default, **By the piece**, behave exactly as before.

You will use two screens:

- The **product page** (Manage → Products → Product List → open a product), where each variant gets a **Sold in** unit and, if it shares stock with another size, a **Stock source**.
- **Manage → Products → Units of measure**, where you define your own units and pack sizes once for the whole company.

## Where do I set the unit on a product?

1. Open the product in the Merchant Hub (or start a new one with **+ Add Product**; the **Sold in** field is in the creation window too).
2. In the **Variants** table, find the **Sold in** column. A product without variants has a single row.
3. Choose the unit. **Sold in** is a searchable list of every unit in every family, so type "lb", "kg", "metre" or "glass" and pick it. Standard units for weight, length, area, volume and count are already there.
4. Set the **Price** per unit you chose: $5.95 per pound, $24.90 per kilogram, $12.00 per glass.
5. Save the product.

That is the whole setup for a product sold in one unit from its own stock. Selling by weight with a pre-loaded unit needs nothing in Units of measure.

If a product has variants, each row has its own **Sold in**, so one product can sell a pound, a 2 lb pack and a 5 lb pack as three rows.

## How do I create my own unit or pack size?

Go to **Manage → Products → Units of measure**. Units are grouped into **families**: Weight (imperial), Length (imperial), Count, Volume (metric) and so on. A family shares one **base unit** that stock is counted in, and units convert only inside their own family. The families that ship with Final cannot be renamed or removed, but you can add your own units to them.

To add a unit or pack size to an existing family:

1. Find the family and click **+ Add unit**.
2. Enter a **Name** (Box of 24, Stick 12 ft, Pack 2 lb) and an **Abbrev**, the short symbol that prints on receipts (box, stick, pk).
3. In **One is worth**, enter what one of the new unit contains, in the unit you think in: 24 ea, 12 ft, 2 lb. You do not convert to the base unit yourself.
4. Choose **Decimals allowed**: how finely staff can key a quantity in this unit. 1 means whole units only. Final caps the choice based on the conversion, so a 150 ml glass cannot allow more than one decimal.
5. Click **Create**.

To create a new family, click **+ New family**, then enter a **Name** and the **Base unit** with its abbreviation. The family and its base unit are created together. Pick the smallest unit you will ever sell as the base (millilitre for a bar, each for packs), because stock is counted in it and it cannot be deleted later. Add the larger units afterwards with **+ Add unit**.

You can also create a unit without leaving the product page: **New unit…** sits at the bottom of the **Sold in** list.

## How do I sell the same stock in more than one size?

This is the pack setup: a bottle and a glass from the same wine, a box and a single piece of the same siding, a stick of pipe and the cut foot. One variant holds the stock and the others draw from it.

1. Make sure every size on the product uses a unit from the **same family**. A Glass (150 ml) and a Bottle (750 ml) both live in a millilitre family; a Box of 24 and Each both live in Count. Units from different families cannot share stock.
2. In the product's **Inventory** section, turn on **Track stock for this product**.
3. In the **Variants** table, set **Sold in** on every row.
4. On the variant that will hold the stock (normally the size you receive or count in, such as Bottle or Each), leave **Stock source** at **Its own stock** and enter its stock on hand in that unit.
5. On every other size, set **Stock source** to **From [that variant]**, for example **From Bottle**. The list only offers sibling variants whose unit is in the same family and which are not themselves drawing from another variant. Set this on each row; it is not filled in for you.
6. Enter a **Cost** on the holding variant only. Variants that draw from it derive their cost through the conversion, so a $20.00 box of 24 gives a $0.83 piece.
7. Save.

Stock now shows on the holding row in its unit (12 btl) and reads **pooled** on the rows that draw from it. Every sale from any size decrements the one pool by the right amount, and the remainder is restated in mixed units: sell 2 glasses from 12 bottles and stock reads 11 bottles + 3 glasses. Adjust stock, receive stock and count stock on the holding variant, in its unit.

## Worked example: house wine by the glass, bottle and case

1. **Units of measure → + New family.** Name: Wine. Base unit: Millilitre (ml).
2. **+ Add unit** three times in the Wine family: Glass (gl), one is worth 150 ml, 0 decimals; Bottle (btl), one is worth 750 ml, 1 decimal; Case (cs), one is worth 12 btl, 1 decimal.
3. On the House Red product, turn on **Track stock**, then in **Variants**: Bottle, Sold in btl, Stock source Its own stock, stock 12; Glass, Sold in gl, Stock source From Bottle; Case, Sold in cs, Stock source From Bottle.
4. Price each row in its own unit: $12.00 a glass, $48.00 a bottle, $499.00 a case.

Receive one case and the pool holds 9,000 ml. Pour two glasses and stock reads 11 bottles + 3 glasses. Sell a bottle and it reads 11 bottles.

The same pattern covers a box of 24 (add Box of 24 = 24 ea to Count; Each holds the stock, Box draws From Each) and pipe sold by the foot and stocked by the stick (add Stick = 12 ft to Length (imperial); Foot holds the stock, Stick draws From Foot).

## What happens at the till?

- When staff tap or scan a unit-based item, a **quantity prompt** opens. They key the amount in the product's selling unit: 1.25 lb, 2.5 m, 3 glasses. Products sold By the piece get no prompt and work as they always have.
- The prompt accepts only the decimals the unit allows. If Pound allows two decimals, 1.25 lb is accepted and 1.255 lb is rejected rather than rounded.
- The line total shows before the line is added: quantity times the price per unit, rounded to the cent. 1.6 kg at $24.90/kg is $39.84.
- Receipts print measured lines as quantity @ rate = total, for example 1.25 lb @ $5.95/lb = $7.44, using the unit's abbreviation.
- Weights and measures are keyed by hand. Final does not read a connected scale or weight-embedded barcodes.

## How do refunds and stock work for unit-based lines?

A refund or a reprinted receipt reads the original line back exactly as it was sold: the quantity, the unit and the rate at the time of sale. If you change a price afterwards, past receipts and refunds keep the old rate. Partial refunds on fractional lines add up to the cent.

Stock is decremented in the family's base unit and restated in each variant's unit, so pooled quantities never drift or round to fractions of a pack. Changing what a unit is worth (say, a Bottle from 750 ml to 700 ml) does not move stock; it only changes how the pool is restated in that unit.

## What are the limits?

- Units convert only inside their family. Metric and imperial units of the same kind are separate families, so a product cannot pool stock across metres and feet.
- A pool is one level deep. A variant that draws From another cannot itself be a source.
- Prices are whole cents per selling unit. A rate such as $1.549 per litre cannot be entered; define a larger unit (per 100 litres at $154.90) instead.
- Bulk import currently creates products sold By the piece. Set **Sold in** on imported products afterwards.
- Selling time (by the hour or minute) is not supported.

## FAQ

**Q: Do I need to set anything up to sell by the pound or kilogram?**
A: No. Standard weight, length, area, volume and count units come pre-loaded. Open the product, set Sold in to Pound (lb) or Kilogram (kg), enter the price per unit and save.

**Q: Why can't I pick a variant in the Stock source list?**
A: Stock source only offers sibling variants of the same product whose unit is in the same family and which are not themselves drawing from another variant. Check that both units belong to the same family and that the variant you want is set to Its own stock.

**Q: Which variant should hold the stock?**
A: The size you receive or count in, such as Bottle, Each or Foot. Enter stock on hand, cost and stock adjustments on that row; the other sizes read pooled and derive their cost through the conversion.

**Q: Does the till need a scale?**
A: No, and Final does not read one. Staff key the weight or measure into the quantity prompt in the product's selling unit.

**Q: What happens if I change a price after a sale?**
A: Nothing changes on past sales. Refunds and reprinted receipts use the quantity, unit and rate stored when the line was sold.

**Q: Can I set units through the bulk import?**
A: Not yet. Imported products are created as sold By the piece. Set Sold in on each product afterwards.