Products & Inventory — the main screen
drop a screenshot at assets/screenshots/guides/products-inventory.png to replace this
1. ADDING OR EDITING A PRODUCT — STEP BY STEP
From Inventory → Products, click Add Item (or open an existing item to edit it). The form only shows you what's actually relevant:
- Identity & Basic Info: item name, SKU, barcode/UPC/GTIN, category, product images, a short and long description, brand, and physical variant fields (color, size). You choose a primary unit of measure, and optionally a secondary "step two" unit — e.g. you sell by the box but track and count by the individual piece.
- Pricing: a regular sell price and purchase price, plus tax settings (Sales Tax / Purchase Tax) per item. Turn on the "wholesale" toggle and you can set up to TWO independent wholesale price tiers on the same item — for example "10+ units at Price A" and "50+ units at Price B" — each with its own minimum quantity and optional extra discount, so retail and wholesale pricing run off one SKU instead of duplicate items.
- Tracking & Quality Control (all opt-in, per item): three independent switches:
- Batch Tracked — stock for this item is organized into batches/lots (batch number, manufacture date, expiry date) instead of one undifferentiated quantity. Essential for food, pharma, or anything with a shelf life or lot recall requirement.
- Serial Tracked — each individual unit gets its own serial number (electronics, equipment, high-value goods).
- QC Required — flags this item for formal pass/fail inspection tracking in the QC Dashboard (see the Batch/Lot Tracking & Quality Control guide). Note: this is currently a tracking flag, not an enforced block — a receipt or invoice is not technically stopped by a missing or failed QC record, so a QC-required item still relies on the team following the process rather than the system refusing to let a bad batch ship. Leave all three off and the item behaves like ordinary retail stock, with nothing extra to manage.
- Reorder Planning (per item, per location)
- Safety Stock — the buffer you never want to dip below.
- Reorder Threshold / Reorder Point — the level that triggers a "time to reorder" flag.
- Reorder Qty — how much to reorder when triggered.
- Max Lead (days) / Avg Lead (days) — how long this item typically takes to arrive from your supplier. This isn't a number you set once and forget: every time you actually receive a purchase, the system recalculates it from that receipt's real lead time, so it drifts toward reality instead of staying a stale guess. And because it's tracked per location, the same item can have different reorder behavior at your warehouse vs. your retail store.
- Physical Attributes & Item Type: weight (with a unit — kg/lb/etc.) and dimensions, used for shipping-rate calculations. An Item Type selector — Inventory (physical, stock-tracked, the default), Non-Inventory (physical but not stock-tracked, e.g. a one-time fee), or Service (labor, consulting — no stock at all). Choosing Non-Inventory or Service hides the stock-only fields (opening stock, warehouse/rack, batch/serial/QC tracking) and skips shipping-rate calculation for that item; a Service/Non-Inventory line on a Sales Order never posts an inventory movement (Material Issue/fulfillment quietly skips it while still invoicing it normally), and if the item is synced to WooCommerce it exports as a virtual product with stock management turned off, matching how WooCommerce itself represents a non-physical listing (it has no separate "service" product type). Raw Material / kit support is a separate flag for items that are actually built from other items, and it's what connects into the Production module's Bill of Materials.
- Save: one click writes the item, its pricing, and its per-location stock settings, all in a single transaction.
graph LR
A["New Item"] --> B{"Item Type?"}
B -->|"Inventory"| C["Stock-tracked: batch/serial/QC, reorder planning"]
B -->|"Non-Inventory"| D["Physical, not stock-tracked"]
B -->|"Service"| E["Labor only, no stock"]
2. VARIANTS — One Product, Many Options
If a product comes in multiple options (size, color, etc.), Add Variant lets you generate related SKUs that stay linked under the same parent item. "Other variants of this item" shows right on the product page, with stock health rolled up across all of them, so you can tell at a glance if the Small is out of stock while the Large isn't — without ever leaving the page.
3. THE PRODUCT PAGE — Everything About One Item, In One Place
Open a single product and you get an 11-tab view, not just an edit form (Variants is item-level only — it doesn't show on an individual variant's own page):
- Overview — the core identity, pricing, and status (Active/ Inactive, Published/Unpublished online).
- Variants — every other variant under this same parent item, with stock health rolled up across all of them (see section 2).
- Stock & Locations — Current Stock, Available, In Stock/Low Stock/Out of Stock/Need Attention status, broken out by warehouse.
- To Order — just this item's (or, on a parent item, every variant's) rows that are currently at or below their reorder threshold, with the quantity needed — a scoped, single-item version of the reorder view rather than the whole catalog.
- Performance — margin and how this item is actually doing.
- Sales — this item's sales history.
- Purchases — purchase history and purchase price trends.
- Profit — profit margin trends specifically, split out from the general Performance tab.
- Adjustments — the stock adjustment history for this specific item.
- Production — where relevant (this item is a raw material or a manufactured good), its role in Bills of Materials and Work Orders.
- Suppliers — which suppliers you buy this item from, their pricing, and lead time.
No jumping between a dozen different reports to understand one product — it's all right there on one page.
4. WHAT'S BEHIND THE SCENES — The Stock Model
Under the hood, every item/location combination tracks more than one "quantity on hand" number — it tracks the full picture:
- Current Stock — what's physically there.
- Reserve Stock — what's already promised to an open sales order, transfer, or production order, but not shipped yet.
- Available Stock — what's actually free to sell right now (current minus reserved). This is the number that protects you from overselling something that's technically "in stock" but already spoken for.
- On Receive — quantity already on an approved purchase or production order that hasn't physically arrived, so you can plan around it without counting it as on-hand.
- A full history breakdown — how much of this item's current position came from purchases, sales, returns, transfers, production, or manual adjustments, so you can answer "why does this number look the way it does" without re-deriving it by hand.
This is what turns "how much can I actually promise a customer right now" into a real, trustworthy number instead of a guess.
5. IMPORTING AND EXPORTING YOUR CATALOG
You don't have to enter products one at a time. The Import and Export tabs on the Products screen give you two speeds of each, so a 50-row catalog and a 200,000-row catalog both have a comfortable path:
Quick Import (small to medium files): upload a CSV or Excel file, and a 4-step wizard walks you through it — match your file's columns to product fields (it auto-matches what it can), review a validation preview that shows exactly what new categories/brands/variants will be created and which rows have errors, then commit. It runs while you wait, best for files up to a few thousand rows.
Background Import (large files): for huge catalogs, the same file goes through the same column-mapping and preview step, but the actual import then runs as a server-side job in chunks — close the tab, navigate away, it keeps going regardless. A running Import History table shows every background job's file, status, records created/updated, error count, and start time, so nothing you kicked off is ever "did that finish?" guesswork. Failed rows are always downloadable afterward, so you can fix and re-upload just the problem rows instead of redoing the whole file.
Import Settings (Simple → Advanced): before you import, you can tune Simple mode (fewer required columns) vs. Advanced mode (full field set); which field new rows get matched against existing items by (SKU, Barcode, or Item Name + Variant); whether unknown categories, brands, sizes, colors, variants, units, and locations get auto-created on the fly instead of rejecting the row; the chunk size a background job processes at once; a row-count threshold above which an import automatically routes itself to the background path instead of the quick one; and whether you get an email when a background job finishes so you don't have to keep the tab open to find out.
Export (instant or background, same filters either way): choose which columns you want (or Select All), optionally filter by item name, category, or active/inactive status, pick CSV or Excel, and download immediately — or, for a very large catalog, run the same export as a background job and get a download link when it's ready, no page-waiting required.
So catalog migration onto Cash Flow Inventory, and getting your data back out of it, are both first-class, no-code operations — not something that requires a spreadsheet macro or a support ticket.
6. HOW IT CONNECTS TO THE REST OF THE SYSTEM
- Sales Orders, POS & Purchase Orders — every price, tax rule, and batch/serial flag set here is what those screens read from; there's no separate product list to keep in sync.
- Inventory Transaction Log — every stock change for an item, from any module, is permanently recorded there and summarized right on this product's own Adjustments/Sales/Purchases tabs.
- Bill of Materials & Production — items flagged as raw materials or kits connect directly into recipes and Work Orders.
- Multi-Location Transfers & Stock Count — reorder points and stock health are tracked per location, feeding straight into transfer and reconciliation planning.
- Requisitions & RFQ — the same safety stock, reorder point, and demand calculations power the Stock Intelligence panel used to build a purchase requisition (see the Requisitions, RFQ & Supplier Quotes guide).
7. WHY IT SCALES FROM SMB TO ENTERPRISE
Small business
Fill in name, SKU, price — done. Nothing else is required to start selling.
Growing business
Turn on wholesale tiers, batch tracking, or multi-location reorder points item-by-item as operations get more sophisticated — no migration, no re-platforming.
Manufacturer / food & beverage
Batch/lot tracking with expiry dates, a formal pass/fail QC record, and raw-material linkage into Bills of Materials give you the traceability regulators and enterprise customers expect.
Enterprise / multi-location
Reorder points, lead times, and available-to-promise are all computed per warehouse and kept current automatically from real receiving data — no manual spreadsheet reconciliation between locations.
Quick Reference
Product catalog list ..................... Inventory > Products
Add/Edit a product ....................... Inventory > Products > Add Item
Single product detail page ............... Click any product row
Variants ................................. Product page > Add Variant
Wholesale pricing tiers .................. Product edit form > Pricing (enable
"wholesale" toggle)
Batch/Serial/QC toggles .................. Product edit form > Tracking
section
Reorder planning ......................... Product edit form > Reorder section
(per location)
Import products (small/medium file) ...... Products > Import tab > Quick Import
Import products (huge file, background) . Products > Import tab > Background
Import
Import job history / retry failed rows ... Products > Import tab > Background
Import History
Export products .......................... Products > Export tab