Creating and editing products
New product: SKU, barcode, price, cost, unit, category, supplier
Creating products
New products are created on the Products page. A product uses several fields beyond just price.
Where to find it
Products → + New product button.
Product fields
Basics
- Name (e.g., "Schwarzkopf BC Bonacure Shampoo")
- Description (optional, marketing copy)
- Product type: RETAIL or PROFESSIONAL
- Image (optional)
- Active / Inactive (toggle)
Identifiers
- SKU (Stock Keeping Unit, unique internal code, e.g., "SCH-BC-250")
- Barcode (EAN/UPC, scanner-readable)
Prices
- Retail price (sell to customer)
- Cost price (procurement price, for profit math)
- VAT rate (inherits from tenant or custom)
Stock
- Stock on hand (initial, default 0)
- Low stock alert (threshold, default 5)
- trackStock (toggle, do we track stock)
Unit (matters for PRO products)
- Unit type: PIECE, ML, GRAM, OZ
- Unit size (e.g., 1000 ml per bottle)
Categorization
- Category (from Categories tab, e.g., "Hair Care")
- Brand (optional, e.g., "Schwarzkopf")
- Supplier (optional, from Suppliers)
What product type means
RETAIL
- Sellable at POS (to customer)
- Stock auto-decremented per sale
- Appears on booking page (if published)
- Can participate in commission
PROFESSIONAL
- Internal use (consumed during service)
- Linkable at service level ("Hair Color" → 50ml dye)
- Auto-deducted on appointment completion
- Customer doesn't see, only in salon admin
Unit-size importance
A PRO product e.g., 1000 ml bottle, and one hair coloring uses 50 ml. So:
- Product: "Dye X," unit-type ML, unit-size 1000
- Service: "Hair Color," uses 50 ml of this product
- 1 bottle = 20 hair colorings (1000 / 50)
System computes consumption precisely.
Active / Inactive
Inactive product:
- Not sellable at POS
- Not on booking page
- Existing stock and past movements preserved
Useful: seasonal products, discontinued (don't delete to preserve history).
When to use it
Scenario 1, new shampoo line Products → + New. Name, SKU (vendor code or your own), price 4500 HUF, category "Hair Care," brand "Schwarzkopf."
Scenario 2, professional hair dye Products → Professional tab → + New. Unit-type ML, unit-size 1000. Link to "Hair Color" service.
Scenario 3, barcode scan at POS Set barcode on Products. At POS during customer purchase, scan, auto-added to cart.
Scenario 4, discontinued product Don't reorder a shampoo. Active → Inactive. Disappears from POS but past purchases stay in reports.
Scenario 5, customizing low-stock alert Slow-mover: threshold 2. Fast-mover: 10. Configurable per product.
Tips
- SKU should be unique and meaningful, e.g., "BRAND-PRODUCT-SIZE." New versions easier to manage later.
- Barcode is mandatory for POS scan, otherwise manual lookup.
- Cost price for profit math, don't leave empty or reports break.
- PRO products' unit-size critical for SERVICE_USAGE accuracy, always set correctly.
- Upload product image, customer likes it on the booking page.
- Tune the low-stock threshold to consumption speed: fast-mover higher (8-10), slow-mover lower (2-3).