Inventory in Flowesce tracks both the products you use on clients (back-bar stock like color and developer) and the products you sell. The big payoff is automatic deduction: when you complete an appointment or ring up a sale, the stock comes off and is logged for you. This guide covers setup, when stock actually moves, batch expiry, the Committed column, and how inventory connects to services and your shop.
Add an item and pick its kind
Go to Inventory, then New inventory item. The most important choice is the kind:
- Service: consumed when an appointment is completed. Not sold at the counter.
- Retail: sold to clients (in a Quick Sale or your online shop). Not deducted by services.
- Both: used in services and sold at retail, sharing one stock count.
Other fields: name, category, unit (piece, bottle, ml, and so on), the branch it belongs to (or "Shared" across all branches), starting stock, a low-stock threshold, cost per unit, and (for Retail or Both) a retail price and whether sales tax applies.
A note on Both: there is a single stock count behind it. Every service that uses it and every retail sale of it draw from the same number, so it can run down faster than you expect if it is popular on both sides.
When stock actually moves
This is the rule to internalize: stock is deducted when an appointment is marked completed, not when it is booked.
- Completing an appointment deducts the inventory its service (or the booked variant) requires, and writes an audit entry. Move the appointment back out of completed and the deduction is reversed.
- A walk-in Quick Sale of a service also deducts, unless that sale is already tied to an appointment (so it is never counted twice).
- A retail sale deducts each product as the sale is rung up.
Stock is allowed to go negative. Flowesce surfaces it as a warning rather than blocking you, because in a real salon you sometimes use the last of something before the count catches up. Treat a negative number as a signal to recount or reorder, not an error.
To connect a product to a service, open the service, go to its Inventory tab, and list what it uses per appointment. See services for how variant inventory overrides work.
The Committed column
On the inventory list, the Committed column shows how much stock is already promised to upcoming appointments that have not been completed yet (booked, confirmed, or arrived). It is a heads-up, not a deduction: nothing has come off yet, but it will when those appointments complete.
When committed stock is more than what you have on hand, the number turns amber. That is your cue to reorder before those appointments arrive.
Batch expiry and FEFO
If you want to track expiry dates (common for color, peroxide, and skincare), turn on Track expiry when you create the item. Each delivery becomes a batch with its own expiry date, quantity, and optional supplier lot.
- When stock is deducted, Flowesce drains the soonest-expiring batch first (this is called FEFO, first-expired-first-out), so you use product before it lapses.
- The Next expiry column on the list shows the soonest-expiring batch, colored red if it has expired, amber if it is within 30 days, grey if later.
- Your dashboard has an Inventory expiring soon card for the same warning.
Managing batches (on an item's Batches tab):
- Add batch when stock arrives, with its expiry and quantity.
- Adjust remaining corrects a count when the wrong bottle was physically used and FEFO drained a different one. You set the true remaining amount, with a reason for the audit trail.
- Write off zeroes a batch you have binned (expired or damaged) and takes it off your stock.
- Delete is for a batch entered by mistake.
Track expiry is a setup-time choice. It appears on the new-item form, not the edit form, so decide when you create the item.
Sell a product online
Retail and Both items can be listed in your online shop. On the item, use the Sell online section. A product appears in the shop only when all of these are true:
- It is active.
- Its kind is Retail or Both.
- It has a retail price above 0 (a price of 0 disables the listing toggle, and the screen tells you why).
- The listing itself is set to visible.
The full storefront walkthrough, including photos, descriptions, variants, and orders, is in Set up and run your online storefront.
What can go wrong
- Stock did not come off after an appointment. Deduction only happens on completion. If the appointment is still booked, confirmed, or arrived, the stock has not moved yet (you will see it under Committed instead). Mark it completed.
- A retail sale failed with "not a retail product." The item's kind is Service. Only Retail or Both items can be sold at the counter. Change the kind on the item.
- A product will not show in the shop. Check the four conditions above: active, kind Retail or Both, a retail price above 0, and the listing set to visible. A missing price is the most common cause.
- The wrong batch was used. FEFO always drains the soonest-expiring batch. If staff physically used a different one, use Adjust remaining on both batches so the counts match reality. The total on-hand number stays the same.
- Stock went negative. That is allowed and is a signal, not a bug. Recount and add a batch or adjust stock.
- You imported a CSV twice. Inventory import does not merge by name, so importing the same file again creates duplicate items. Import once, then edit in place.
What's next
With inventory connected to your services, completing appointments keeps your stock and your books honest at the same time. When you are ready to sell those products to clients online, set up your online storefront.