App

Products and stock

Set up the retail catalog, track on-hand quantities per location, run a stock count, and move stock between sites.

Updated Jul 26, 2026

Retail → Products

Products are everything physical you sell — retail skincare, take-home kits, add-on items at the till.

Add a product

Identity

Name, SKU, category, and a short description. The description is shown on the retail catalog and in the cart, so write it for a client, not for yourself.

Barcode

An EAN or UPC, scanned at the register. Worth entering for anything you sell in volume — scanning is much faster and much less error-prone than searching.

Image

PNG, JPEG, WebP or GIF, up to 5MB. It appears next to the product everywhere the product appears.

Pricing

Sell price is what the client pays. Cost is what you paid, used for margin reporting — the product card shows the resulting margin percentage once both are set.

Inventory

On hand is your current quantity. Leave it blank to skip tracking entirely — useful for consumables you don't want to count.

Low-stock alert at triggers a low-stock notice when the quantity drops to that number.

Reordering

Reorder point — when on-hand drops to this, the product appears on the reorder list. Reorder quantity — how many to order when it does.

Set a preferred vendor so a purchase order can be drafted for it automatically.

Variants

A product with sizes or shades gets variants — 50 ml and 100 ml, or three shades of the same tint. Each variant is stocked and sold separately, and can carry its own price and cost or inherit the parent's.

Reading stock on the product list

BadgeMeaning
Not trackedOn hand was left blank
N on handNormal
Low · N leftAt or below the low-stock alert level
Out of stockZero

Selling a product

Products go into the cart at checkout like anything else — see Take a payment. Selling a tracked product decrements its on-hand quantity for the location the sale happened at.

On a full refund you can tick Restock items to return the stock. Partial refunds always keep the stock where it is.

Stock counts

Retail → Products → Stock counts

A stock count reconciles what's physically on the shelf against what Owneli thinks you have.

Start a count

New count, scoped to a location.

Enter what you actually counted

Each row shows the expected quantity and a field for the counted one. The variance is calculated as you go.

Tabs let you work the list efficiently: Uncounted (still to do), Variance (doesn't match), Matched (does), and All.

Save as you go

A count in progress can be left and resumed.

Complete the count

Completing applies an adjustment for every variance and tells you how many were applied.

Completing a count writes real adjustments into the stock ledger. Check the Variance tab before you complete — a mistyped count becomes a stock adjustment you then have to correct with another count.

Transfers between locations

Retail → Products → Transfers — only available with more than one location.

A transfer moves stock from a source location to a destination. It has three stages:

  1. Draft — created, nothing has moved
  2. Sent — stock is deducted from the source
  3. Received — stock is added at the destination
Drafts are paperwork. Counts only change when stock is actually sent and then received — which is what makes stock in transit visible rather than vanished.

Cancelling a transfer keeps it in history but moves no stock.

Bundles

A bundle groups several products into a discounted set — a "Morning Glow Routine" of three items at one price. The editor shows what the components would cost bought separately, so the saving is obvious to you and to the client.

Reporting

  • Stock on hand — current quantities
  • Stock log — every movement, with its cause
  • COGS — cost of goods sold
  • Inventory — the overall picture

Keep reading

Related

2
Reordering, purchase orders, and vendorsWork the reorder list, raise a PO, receive stock partially or in full, and keep supplier records straight.Take a paymentBuild a cart, apply a discount, pick a tender, split across several — and what to do when the client can't pay today.