User guide

Products, services and inventory

Build a product library with default prices and units, drop saved items into invoice lines in one tap, and read stock levels and stock automation rules.

Updated: 2026-09-09

A product in Invoice Flow is a saved line: a name, an optional description, a default price, a unit and a default tax rate. Once it exists, every invoice, estimate or recurring schedule pulls it in with one tap and you only adjust the quantity. The same record is the anchor for the Inventory tool, which counts what you have on hand, and for stock automation, which subtracts from that count when invoices go out.

This guide follows Kestrel Coffee Roasters in Portland, Oregon. Maya sells roasted beans in 5 lb bags to cafes across the city, plus cold brew concentrate, a shelf-ready 12 oz retail bag and a handful of barista services. Oregon has no sales tax, so her tax rates stay at zero; everything is billed in US dollars.

What you see on the screen

The product library lives under the Settings tab. Scroll to the Library section and tap Products & Services (subtitle “Manage your product library”). The list is sorted by name. Each row shows a box icon, the product name and, underneath, the default price followed by a slash and the unit code, for example “$52.00 / item”. When a product has a default tax rate above zero the row adds a bullet and the rate, such as ”• 20% tax”.

The magnifier in the app bar turns the title into a Search products… field that filters by name as you type; the same icon becomes a cross to close it. Swiping a row from right to left reveals a red delete strip. The round + button at the bottom right starts a new product. An empty library shows “No products yet” with an Add Product button.

Invoice Flow app Products & Services screen listing nine coffee roastery items such as Barista training session at 150.00 per hour, Colombia Huila 5 lb bag at 58.00 per item and Wholesale onboarding at 250.00 per project, each with a box icon and chevron, and a plus button
Maya's library: beans by the bag, cold brew by the gallon, training by the hour and onboarding by the project.

Two other screens work with the same records. The Tools tab has an Inventory card that opens stock levels for products flagged as tracked, and the Library section in Settings has a second tile, Stock automation (subtitle “Auto-adjust stock when invoicing”), that decides when invoices change those levels. Both are covered further down.

How to add or edit a product

  1. Open Settings, tap Products & Services, then tap +. The editor opens titled New Product; tapping an existing row opens the same form titled Edit Product with its values filled in.
  2. Type the Name *. This is the only required field and becomes the description of the invoice line. Put the pack size in the name, as in "Colombia Huila - 5 lb bag", so the line reads correctly on the PDF.
  3. Add a Description if you want a note for yourself. It is not copied onto invoice lines and does not print; it only appears in this editor.
  4. Enter the Default Price *. The field starts at 0.00 and accepts decimals; a blank or non-numeric value blocks saving with "Required" or "Invalid number".
  5. Pick a Unit from the dropdown: item, hour, day, project or service. The codes are shown as-is here; the invoice editor and the product picker render them as Piece, Hour, Day, Project and Service. The PDF prints quantity and price only, not the unit.
  6. Set Tax Rate (%) if this product normally carries tax. Leave it at 0 for tax-free goods; a value that is not a number is rejected.
  7. Tap Save in the app bar. The row appears in the list at its alphabetical position.
Invoice Flow app Edit Product screen for Ethiopia Yirgacheffe - 5 lb bag with a Description reading Washed, light roast. Floral, lemon, black tea., Default Price 68.00, Unit item and Tax Rate 0.0, with a Save button in the app bar
The whole product form: name, description, price, unit and tax rate. There are no stock fields here.

If you tap Back after changing anything, an Unsaved Changes dialog asks whether to stay or leave; leaving discards the edits. Note what the form does not contain: there is no field for a SKU, no switch to track stock, no quantity and no low-stock threshold. That has consequences for the Inventory tool, explained below.

How to put products on an invoice

The invoice editor has a chip row above the line items. The first chip, Product / Service, is the door to your library.

  1. In the invoice editor, scroll to Line Items and tap Product / Service.
  2. The Add from Saved dialog lists every product by name with its price in the invoice's currency and its unit word. Scroll if the list is long; tap a row to add it.
  3. The new line arrives with quantity 1, the product's unit, price and tax rate, and a link back to the product record. Change the quantity, or the price for this customer, directly on the line; the product itself is not altered.
  4. Repeat for each product. Every tap adds a separate line, so tap once and raise the quantity rather than tapping six times.
Invoice Flow app Add from Saved dialog over a new invoice listing Colombia Huila - 5 lb bag $58.00 / Piece, Decaf Swiss Water, Espresso machine calibration $95.00 / Service, Ethiopia Yirgacheffe, House Espresso Blend, Retail bag 12 oz and Wholesale onboarding - brew bar setup $250.00 / Project, with a Create New Item row at the bottom
Prices in the picker are shown in the invoice currency; the last row creates a product on the spot.
Invoice Flow app Quick Add Item dialog over the invoice editor with Name set to Guatemala Antigua - 5 lb bag, Price 64.00 with a dollar prefix, a unit dropdown showing Piece, and Cancel and Add buttons
Quick Add saves a new product to the library and adds it as a line in one step.

When the product does not exist yet, use the last row of the picker:

  1. In Add from Saved, scroll to the bottom and tap Create New Item.
  2. In the Quick Add Item dialog, type the Name *. The cursor is already in this field.
  3. Enter the Price. The prefix shows the invoice's currency symbol, so on a euro invoice you see "€" here.
  4. Choose Piece, Hour, Day, Project or Service from the dropdown next to the price.
  5. Tap Add. The product is stored in the library with a 0% tax rate and appears as a new line on the invoice. Tapping Add with an empty name does nothing; use Cancel to close without saving.

The recurring-schedule editor uses the same picker and adds the stock count to tracked products. Lines added with Custom keep no link to the library.

How to read the Inventory screen

Open the Tools tab and tap Inventory. The screen only lists products whose tracking flag is on and shows three summary cards at the top: Tracked (how many products are counted), Low Stock (amber, with a small badge when the number is above zero) and Out (red, badge when above zero). Tapping the Low Stock or Out card filters the list to those products; tapping the same card again returns to all. The magnifier searches by name or SKU.

Invoice Flow app Inventory screen with cards reading 6 Tracked, 2 Low Stock and 1 Out, and product cards for Cold Brew Concentrate 9 item low stock, Colombia Huila 6 item low stock, Decaf Swiss Water 0 item out of stock, Ethiopia Yirgacheffe 14 item, House Espresso Blend 31 item and Retail bag 12 oz 48 item, each with a SKU line, a colored stock bar and a price, plus an Add Stock button
Six tracked products; the pill colour and the dot on the gradient bar tell you at a glance which ones need roasting.

Each card shows the name, a “SKU:” line when a code is stored, a pill with the quantity and unit coloured green, amber or red, a small circled plus with the tooltip Stock action, a thin red-to-green bar with a marker at the low-stock threshold and a dot at the current level, and a bottom row with the price and the status text In stock, Low stock or Out of stock. The bar spans from zero to twice the threshold.

Tap a card to expand its Transaction History. Movements are listed newest first: a green down arrow with a positive number for a purchase, a red up arrow with a negative number for a sale, a blue double arrow for an adjustment and an orange undo arrow for a return. The second line names the source: Invoice # followed by a number, or Manual for movements you recorded by hand. A note icon appears when a note was saved; long-press it to read the text. After twenty rows the list ends with “…and N more”.

Invoice Flow app Inventory screen with the House Espresso Blend - 5 lb bag card expanded to a Transaction History showing Return +3 Manual on 05.09, Sale -20 Invoice #216 on 04.09, Sale -12 Invoice #214 on 02.09 and Purchase +60 Manual on 01.09
A roast batch in, two wholesale invoices out and a return of torn bags: the four movements that make up the 31 bags on hand.
The product editor has no way to switch tracking on, so products you create in the app never appear on this screen; it shows "No tracked products" and "Enable inventory tracking on products". In the current version the tracking flag, SKU, quantity and threshold only arrive through a restored backup that already contains them. Until an editor for these fields ships, treat Inventory and Stock automation as features you can read about here but will not see populated.

How to record stock by hand

When products are tracked, the Add Stock button and the per-card Stock action icon record movements without an invoice.

  1. Tap Add Stock at the bottom right, then pick the product in the Select Product dialog (rows read "name (SKU)"). Tapping the circled plus on a card skips this step.
  2. In the dialog titled with the product name choose Purchase / Receive for goods coming in, Adjustment to overwrite the count after a stocktake, or Return for goods a customer sent back.
  3. The next dialog is titled Purchase — , Adjustment — or Return — plus the product name and shows "Current stock" with the unit. Enter the Quantity; for an adjustment the field is called New quantity and you type the total you counted, not the difference.
  4. Optionally write a note in Notes (optional), such as the roast batch or the reason for the return.
  5. Tap Save. A snackbar reads "Stock updated:" followed by the new quantity, and the card, the pill and the summary cards refresh.
Invoice Flow app dialog titled Purchase — Colombia Huila - 5 lb bag showing Current stock: 6 item, a Quantity field with 24 and the suffix item, a Notes field reading Roast batch 0909, and Cancel and Save buttons
Receiving a roast batch: 24 bags on top of the 6 left takes Colombia Huila back above its threshold of 10.

Purchases and returns add the quantity to stock and must be greater than zero. An adjustment replaces the count; the history stores the signed difference, so a stocktake that finds 28 instead of 31 appears as “-3 Adjustment”.

How stock automation works

Settings → Library → Stock automation controls what invoices do to tracked products. The hint at the top states the two hard limits: only tracked products are affected, and estimates never change stock.

Invoice Flow app Stock automation settings with Enable stock automation on, Deduct stock radios where When the invoice is sent is selected, Return stock automatically on, If stock is insufficient radios where Deduct and warn is selected, and Include recurring invoices on
Maya deducts when an invoice is sent and wants a warning, not a block, when a roast runs short.
SettingOptionsDefaultWhat it does
Enable stock automationon / offonMaster switch; when off nothing below is shown or applied.
Deduct stockWhen the invoice is created / When the invoice is sent / When the invoice is paidsentThe status at which tracked lines are subtracted. “Sent” also covers overdue and paid invoices.
Return stock automaticallyon / offonAdds the quantity back when an invoice is cancelled, deleted or moved back below the trigger (for example reverted to draft).
If stock is insufficientAllow negative stock / Deduct and warn / Don’t deduct below zeroallowWhat happens when a line asks for more than is on hand.
Include recurring invoiceson / offonWhether invoices generated by recurring schedules follow the same rules.

The engine runs when you save an invoice in the editor, when you change its status on the detail screen, before a delete, and when a recurring schedule generates an invoice. It compares what has already been recorded for that invoice with what the invoice now requires and writes only the difference. Saving the same invoice five times deducts once; raising a line from 10 to 12 bags deducts 2 more; cutting it to 8 puts 4 back; reverting a sent invoice to draft with the trigger on “sent” returns everything. Deductions appear in the history as Sale with the invoice reference, automatic add-backs as a movement typed “restock”.

With Deduct and warn, the detail screen shows “Insufficient stock for N product(s)” after the status change; the editor applies the same rule silently. With Don’t deduct below zero, a product that would go negative is skipped entirely, and the shortfall is reported the same way. Allow negative stock simply lets the count go below zero, which shows as Out of stock in red.

Rules and details

Tips

Name products the way you want them printed. The name is the line description, the description field is not, so "House Espresso Blend - 5 lb bag" tells the cafe exactly what they are paying for while your tasting notes stay in the description.
Create products from the invoice, not before. The first time a cafe orders something new, tap Create New Item inside the picker; it lands in the library with the price you just agreed. Open it later in Products & Services if it needs a description or a tax rate.
If you export a backup and restore it on a new phone, products, SKUs, tracking flags and stock movements travel with it, so a stock history is never tied to one device.