Business Guide
Business User Guide & Product Manual

RetailFlow

Multi-tenant inventory management, GST billing, accounting, and analytics for retail businesses — everything your team needs to run the shop floor, the back office, and the books from one screen.
Document version1.0
PublishedJuly 2026
AudienceBusiness owners, managers & cashiers
FormatPrintable reference — use your browser's Print → Save as PDF (turn on "Background graphics" in the print dialog's "More settings" for full-colour output)

1. Product Overview & Value Proposition

1.1  What RetailFlow Is

RetailFlow is a complete, all-in-one management system for retail businesses — the kind of shop, store, or trading business that buys stock from suppliers, sells it to customers, and needs to keep the books straight in between. It brings together five things that most small and mid-sized retailers otherwise juggle across notebooks, spreadsheets, and separate apps:

  • Billing & Point of Sale — a fast checkout screen for ringing up sales, scanning barcodes, and printing GST-compliant invoices.
  • Inventory management — real-time stock levels for every product, tracked down to the individual batch or lot it arrived in.
  • Purchasing — placing, receiving, and paying for orders with your suppliers, with a running record of what you owe them.
  • Accounting essentials — a cashbook, an expense tracker, and running ledgers of what customers owe you and what you owe suppliers.
  • Reporting & analytics — dashboards and exportable reports covering sales, profit, inventory health, and cash flow.

RetailFlow runs as a single, secure web application. Each business that uses RetailFlow has its own private, isolated account — your data is never visible to any other business on the platform.

1.2  Who It's For

RetailFlow is built for three kinds of people, and the interface adapts to each:

  • Business Owners — the person (or people) who run the shop and need the full picture: sales, profit, stock, staff, and the books, all in one place.
  • Managers and staff — day-to-day operators who use RetailFlow to bill customers, receive deliveries, count stock, and manage day-to-day operations, within limits the owner sets.
  • Cashiers — front-of-store staff who mostly live on the billing screen, looking up products and taking payments.

A fourth group — platform administrators — are RetailFlow's own operations team. They don't work inside your business's account; instead, they set up new business accounts and step in for a handful of things you can't do yourself, such as correcting your registered business details or raising your staff-account limit. This guide is written for your business, not for them, but it flags every point along the way where a task needs their help — see How Your Account Is Created and When You Need a Platform Administrator.

1.3  Problems It Solves

Without RetailFlowWith RetailFlow
Stock counts are guessed or tracked on paper; it's unclear what's actually on the shelf.Every sale, purchase, return, and correction updates stock automatically. The number on screen is always the real number.
It's hard to know which batch of stock cost what, especially when supplier prices change.Stock is tracked in batches, each with its own cost and sell price, so margin is always accurate — even mid-shelf-life.
GST invoices are calculated by hand or in a spreadsheet, risking errors.GST is calculated automatically per product at the correct slab, and a compliant invoice is generated and ready to print or share on every sale.
It's unclear who owes the business money, or who the business owes.Running, always-up-to-date ledgers for every customer and supplier, with full statement history.
Cash in the register doesn't reconcile with what the books say.A dedicated cashbook tracks every rupee in and out, with a daily reconciliation report.
It's slow to notice slow-moving stock, understocking, or shrinkage (loss).Built-in reports flag low stock, dead stock, and reorder points; physical stock counts reconcile the system to reality and quantify any loss.
Staff access is all-or-nothing, and it's hard to track who did what.Role-based permissions restrict each teammate to what their job needs, and every sensitive action is recorded in an audit trail.

1.4  Key Concepts & Terminology

A handful of ideas recur throughout RetailFlow. Understanding them up front makes every module below easier to follow.

TermWhat it means
BusinessYour company's private account on RetailFlow. All your products, sales, staff, and records live inside your business and are never shared with any other business.
ProductAn item you sell — e.g. "1L Sunflower Oil." A product defines the name, category, unit, GST rate, and default price, but not the physical stock itself.
Batch (lot)A specific delivery of stock for a product — e.g. "50 bottles that arrived on 3 June at ₹142 each." Every unit of stock belongs to exactly one batch, which carries its own cost and sell price. This is why RetailFlow can tell you accurate profit even if the same product was bought at different prices over time.
Ledger-based stock & ledgersRetailFlow never simply stores "current stock: 40" as an editable number. Instead, every sale, delivery, return, and correction is written down as a movement, and the current figure is always calculated fresh from that history. The same approach is used for customer and supplier balances (the "ledger"). This means the numbers you see are always trustworthy and fully explained by a trail of events.
GSTIndia's Goods and Services Tax. Each product carries a GST slab (5/12/18/28/40% or none); RetailFlow calculates the tax automatically and shows it on invoices.
Purchase Order (PO)A record of stock you've ordered from a supplier. It moves through statuses as it's delivered and paid — see Purchases.
Sale / InvoiceA completed transaction with a customer, generated at checkout on the Point of Sale screen. Every sale produces a printable invoice.
Customer / supplier statementA running, dated list of every invoice, payment, and adjustment for a specific customer or supplier — effectively their account history with you.
Store creditMoney the business owes a customer (e.g. from an overpayment or a refund), which the customer can spend against a future sale, or apply toward paying down an existing invoice's balance via the "Existing account credit" payment method, instead of taking cash back.
Stock count (inventory audit)A physical count of what's actually on the shelf, compared against what RetailFlow's records say should be there. Differences ("shrinkage") are reported and can be used to correct the system.
CashbookA simple ledger of physical cash moving in and out of the till/register, separate from digital payments.
Role (Owner / Manager / Cashier)Every staff member is assigned one role, which determines exactly which screens and actions they can use. See Permissions & Access Control.
Platform administratorA RetailFlow staff member (not part of your business) who provisions new business accounts and provides account-level support for the handful of things your own team can't do — see When You Need a Platform Administrator.

2. Getting Started & Onboarding

RetailFlow does not have a public "sign up" page. This section explains exactly how a new business account comes into existence, what a brand-new user sees the first time they log in, and the handful of things every business should configure before relying on RetailFlow day to day.

2.1  How Your Account Is Created

Businesses are provisioned onto RetailFlow by a platform administrator — there is no self-service registration form, by design. This keeps every account verified and correctly configured from day one (correct GST details, the right starter categories, and sensible default limits).

What this means for you To get started, you don't create an account yourself — RetailFlow's onboarding team sets up your business for you and provides the very first sign-in details for your Owner account: your login email and a temporary password. If you're waiting on access, contact whoever arranged your RetailFlow subscription rather than looking for a sign-up link.

When your business is provisioned, the following are configured on your behalf:

  • Your business name, contact details, and (for standard businesses) your GSTIN, legal name, and registered address.
  • A UPI ID and payee name, if you plan to accept UPI payments and show a QR code at checkout.
  • One Owner account — the highest level of access — using the email and name supplied during onboarding.
  • A starting set of product categories to save you typing them in from scratch.
  • A limit on how many staff accounts your business may create (five by default — see Permissions & Access Control).

2.2  First Login

Signing in for the first time

  1. Open the RetailFlow web address given to you by your onboarding contact.
  2. On the sign-in screen, enter the Email address your account was created with.
  3. Enter the Password you were given. Click the eye icon inside the field to reveal the characters and check for typos.
  4. Click Sign in.

System response: On success, you're taken straight to the Dashboard. If the email or password is wrong, a message reading "invalid credentials" appears and you remain on the sign-in screen — see Troubleshooting if this keeps happening.

TipChange your temporary password immediately after your first login — see Change Password in Settings.

2.3  First-Time Setup Checklist

Once you're in as the Owner, a few things are worth doing before the shop goes live on RetailFlow:

  1. Change your password (Settings → Change Password) so you're not relying on the onboarding temporary password.
  2. Review Business Details (Settings) to confirm your GSTIN, address, and UPI details look correct — these are read-only from your side; contact support if anything needs correcting.
  3. Set up Categories for how you group your products (e.g. Groceries, Beverages, Snacks) — a few come pre-loaded, but you can add your own.
  4. Add your Products, including opening stock, cost price, selling price, and GST rate for each.
  5. Add your Suppliers so you're ready to record Purchase Orders.
  6. Set your opening cashbook balance so day-to-day cash reconciliation starts from an accurate number.
  7. Review Inventory & Sales Settings (lead time, safety stock, low-stock threshold, void/refund windows) so alerts and rules match how your business actually runs.
  8. Invite your team by creating staff accounts with the right role for each person (Users page).

2.4  Touring the Interface

Every screen in RetailFlow (other than sign-in) shares the same layout:

  • Left sidebar — your main navigation menu. It only shows the sections you have permission to use; everything else is hidden rather than shown-but-blocked. It can be collapsed to a slim icon rail for more screen space, and includes a light/dark/system theme toggle at the bottom.
  • Top bar — shows the current section's title and, on most list screens, search and filter controls.
  • Main content area — the screen itself: a dashboard, a table of records, or a form.
  • Feedback — a link at the bottom of the sidebar for sending a bug report, idea, or comment straight to the RetailFlow team — see Feedback & Support.
NoteIf someone with a Manager or Cashier role signs in, their sidebar will show fewer items than an Owner's — this is expected and covered fully in Permissions & Access Control.

3. Exhaustive Module & Feature Breakdown

This section walks through every screen in RetailFlow one by one: what it's for, how it's laid out, and every action available on it. For step-by-step instructions on using each action — including exact fields, validation rules, and what happens after you click — see Section 4, Granular User Flows, which mirrors this section module-for-module.

3.1  Dashboard Home screen

Module overview. The Dashboard is the first screen most people see after signing in. It gives an at-a-glance summary of how the business is doing today and this month, without requiring anyone to run a report.

UI tour. The dashboard is arranged as a grid of cards and charts:

  • Two headline stat cards: Today's Sales and Today's Profit.
  • Two growth cards: Monthly Revenue and Monthly Profit, each with a percentage change versus the previous month.
  • A collapsible Sales Trend area chart with a 30-day / 90-day / 1-year range toggle.
  • An Inventory Alerts panel listing products that are "Reorder soon" or "Low stock."
  • Mini stat cards for Inventory value, Cash position, Receivable (what customers owe you), and Payable (what you owe suppliers).
  • A Revenue & Profit by Category bar chart.
  • A Top Customers list.

Micro-features:

  • Auto-refresh — the whole dashboard silently refreshes itself every 30 seconds, so it's safe to leave open on a shop-floor screen.
  • Sales Trend range toggle — switch the chart between 30 days, 90 days, and 1 year.
  • Collapse/expand Sales Trend — hide the chart to save space without losing the rest of the dashboard.
  • Permission-gated widgets — profit figures only show for users with the Profit-reports permission; inventory alerts and inventory value only show with the Inventory-reports permission.

3.2  Point of Sale (Billing) Checkout screen

Module overview. This is the till: the screen a cashier or owner uses to ring up a sale, from adding products to the cart through to taking payment and printing the invoice. It is the single most detailed screen in RetailFlow, and is designed to be usable entirely from the keyboard for speed at a busy counter.

UI tour. The screen is split into a product-entry/search area and cart on the left, and a running bill summary on the right, with a Payment & Complete panel that opens as a modal when checkout begins.

Micro-features:

  • Product search — type a name or SKU to find a product (keyboard shortcut F1 jumps focus to the search box).
  • USB barcode scanner support — a handheld scanner's rapid keystrokes-plus-Enter are automatically captured as a barcode lookup, no click required.
  • Camera barcode scanning — a 📷 Scan button opens your device camera to read a barcode.
  • Batch picker — if a product has more than one active batch in stock, a picker shows each batch's remaining quantity, sell price, and (for permitted users) profit margin, so you choose which stock to sell from.
  • Automatic batch split — the batch you pick sets the line's selling price, but if it doesn't hold enough quantity, RetailFlow automatically draws the rest from other active batches (oldest first) at their own cost. The cart line is only capped by the product's total stock across all batches, not the picked batch alone.
  • Cart line quantity control — a stepper or typed quantity, capped to what's actually in stock.
  • Per-line discount — apply a discount to one line, in ₹ or %.
  • Bill-level discount — apply a discount to the whole sale, in ₹ or %.
  • Warranty — optionally attach a warranty period (in months) to the sale; RetailFlow computes and prints the "valid up to" date.
  • Live totals — subtotal, discount, GST, and final price recalculate as you build the cart; a profit/margin badge shows for permitted users.
  • Payment & Complete panel (keyboard shortcut F4) — the checkout modal covering customer selection, payment method(s), store credit, UPI QR, and invoice printing.
  • Customer selection — search an existing customer by name/phone, create one inline, or proceed as a walk-in with no account.
  • Quick-set payment buttons — "Exact cash" and "Full credit" fill in the payment amount for you.
  • Split payment — divide one sale's payment across Cash, UPI, Card, and Bank Transfer.
  • Apply/remove customer credit — spend a customer's existing store credit balance against the current sale.
  • Generate UPI QR code — shows a scannable QR for the exact amount due, if your business has a UPI ID configured.
  • "No change" (convert change to credit) — instead of handing back cash change, add it to the customer's store credit.
  • Print Invoice toggle — choose whether to auto-open the printable invoice after completing the sale (defaults to your Settings preference).

3.3  Sales Records & Invoices History

Module overview. Where every past sale lives, searchable and reviewable, with tools to reprint, void, or refund a transaction after the fact.

UI tour. A searchable, date-filterable table listing Invoice number, Customer, Date, Total, Paid, Balance, and Status. Clicking a row's Details opens the Sale detail drawer.

Micro-features:

  • Search by invoice number.
  • Filter by date range.
  • Send invoice on WhatsApp — a one-click button that prepares a WhatsApp message with the invoice link for the customer.
  • View sale details — line items, subtotal/discount/tax/total, payments received, balance, and warranty details. Any line that auto-split across batches lists each batch and the quantity drawn from it.
  • Record a payment against an invoice — collect money toward this specific invoice's balance directly from the Sale detail drawer (shown whenever the invoice is active and still has a balance due), without having to go to the customer's own page.
  • Print invoice — regenerate the printable PDF at any time.
  • Void a sale — reverse a sale entirely, restoring stock, within the business's configured void window.
  • Refund a sale — issue a partial or full refund, either as cash from the register or as store credit, within the configured refund window.

3.4  Product Catalog Catalog

Module overview. The master list of everything your business sells, along with each product's category, pricing, tax rate, and stock rules.

UI tour. A searchable, filterable grid/table with a category filter, an A–Z jump index for long catalogs, and a barcode lookup box (type or scan). Each row exposes Batches, Stock, Edit, and Deactivate/Reactivate actions.

Micro-features:

  • Search products by name or SKU.
  • Filter by category.
  • A–Z index to jump straight to products starting with a given letter.
  • Barcode lookup — type a barcode or scan one with your camera to jump straight to that product.
  • Create a new product, including an opening stock batch and a product photo.
  • Edit a product's details, price, GST rate, and minimum stock level.
  • Add, replace, or remove a product photo at any time from the edit form.
  • View a product's batches — every lot of stock currently or previously held for this product.
  • Adjust stock — a manual correction (e.g. for damage or a miscount) outside of a sale or purchase.
  • Deactivate / Reactivate a product — hide a discontinued product from the till without deleting its history.
  • Inline category creation — add a new category without leaving the product form.

3.5  Batches & Inventory Stock detail

Module overview. A batch (or "lot") is a specific delivery of stock for one product, each with its own cost, sell price, and barcode. RetailFlow tracks stock this way — rather than as one editable number per product — so that profit stays accurate even when the same product is restocked at a different price. When a sale needs more of a product than the cashier's chosen batch has left, RetailFlow automatically spreads the remainder across other active batches (oldest first) so the true cost of goods sold is still tracked correctly, even though the sale prices the whole line at the chosen batch's rate. This module lets you see and manage batches both per-product and across the whole catalog.

UI tour. A global All Batches page lists every batch across every product, with search (by product, batch number, or barcode) and a status filter (Active / Depleted / Inactive). The same table appears scoped to a single product inside that product's drawer.

Micro-features:

  • Search batches by product name, batch number, or barcode.
  • Filter by status — Active, Depleted (fully sold), or Inactive (manually hidden).
  • Edit a batch — change its cost price, selling price, or barcode.
  • Deactivate a batch — hide it from the billing screen (e.g. stock found to be damaged) without deleting its history.
  • Reactivate a batch — bring a previously deactivated batch back into sellable stock.

3.6  Categories Organization

Module overview. Categories group your products (e.g. "Beverages," "Snacks") for filtering, reporting, and faster navigation of the catalog.

UI tour. A simple table of category Name, Description, and Status, with Deactivate/Activate controls.

Micro-features:

  • Create a category with a name and optional description.
  • Edit a category's name or description.
  • Deactivate / Reactivate a category — a deactivated category is hidden from new-product forms but existing products keep it.

3.7  Purchases Supplier ordering

Module overview. Purchases (Purchase Orders, or "POs") are how new stock enters RetailFlow. A purchase order records what you ordered from a supplier, tracks partial or full delivery, records any price differences, and keeps a running balance of what you owe.

UI tour. A searchable, date-filterable list of purchase orders (PO number, supplier, date, total, status). A + New Purchase Order button starts a new order; Details opens the Purchase detail drawer, which is where receiving, payment, returns, and closing all happen.

A purchase order moves through a lifecycle of statuses as it's actioned:

StatusMeaning
DRAFTOrder created but nothing delivered yet. Can still be cancelled.
PARTIALLY_RECEIVEDSome, but not all, ordered items have arrived.
RECEIVEDEverything ordered has arrived.
PARTIALLY_PAID / PAIDPayment status toward the supplier, tracked independently of delivery.
CANCELLEDThe order was cancelled before anything was received.
CLOSED_SHORTSome ordered stock will never arrive, and the outstanding amount has been written off.
RETURNEDDelivered stock was sent back to the supplier.

Micro-features:

  • Search purchase orders by PO number, and filter by date range.
  • Create a new purchase order — pick a supplier (or create one inline), set the order date and the supplier's own invoice number, and add line items with quantity, unit cost, tax %, and an overall discount.
  • Receive goods — record delivery of some or all of an order's line items, each becoming a new stock batch.
  • Track price variance — if the delivered unit cost differs from what was ordered, RetailFlow tracks the difference automatically.
  • Append to an existing batch — when a second delivery against the same PO matches an already-created batch's cost, add to it instead of creating a new batch.
  • Close short — write off the value of items that were ordered but will never be delivered.
  • Cancel a purchase order — only available while it's still in Draft.
  • Record a payment to the supplier against this order, including part-payments and advances paid before goods arrive.
  • Return items — send delivered stock back to the supplier, reducing your stock and crediting your account with them.

3.8  Suppliers Vendor ledger

Module overview. Your supplier directory and, for each supplier, a running ledger of everything you've ordered, received, paid, and returned.

UI tour. A searchable list of suppliers with Details, Statement, and Edit actions. The Supplier detail page has tabs for Supplier Details, Purchases, and Products Delivered.

Micro-features:

  • Search suppliers by name.
  • Create / edit a supplier — name, contact person, phone, email, GSTIN, address, and notes.
  • Deactivate a supplier.
  • View statement — a running-balance ledger of everything owed and paid, in date order.
  • Record a refund received — if returns to a supplier exceed what you've paid them, they may owe you; record money received back.
  • View purchase history for this supplier.
  • View products delivered by this supplier, filterable to this month or all-time.

3.9  Customers Customer ledger

Module overview. Your customer directory, each customer's balance (what they owe you, or store credit they hold), and their full purchase history.

UI tour. A searchable list showing each customer's outstanding balance (shown in red if they owe money, or as an amber "CR" badge if the business owes them credit), with Details, "Pay out credit" (when applicable), "Collect payment," and Edit actions. The Customer detail page has tabs for Customer Details, Statement, Invoices, and Products Bought — the Invoices tab adds a "Show only invoices with a balance due" filter and flags any invoice that isn't fully paid with an amber "UNPAID" badge alongside its status.

Micro-features:

  • Search customers by name or phone.
  • Create / edit a customer — name, phone, email, GSTIN, address, and notes.
  • View statement — a paginated, running-balance ledger of every invoice, payment, and adjustment.
  • View invoices for this customer, with WhatsApp send and a filter to show only invoices with a balance due.
  • View products bought, filterable to this month or all-time.
  • Collect a payment — record money received from the customer, applied invoice-by-invoice against their open invoices (oldest first, adjustable per invoice), with any leftover recorded as a general, unallocated reduction of their overall dues. Typing a total amount auto-distributes it across open invoices for you; a "Clear all dues" shortcut fills in the exact total owed across every open invoice in one click.
  • Pay with existing account credit — choose "Existing account credit" as the payment method to apply store credit the customer already holds toward one or more open invoices instead of collecting new money; this method has no unallocated portion, since there's nothing left over to apply it to.
  • View or print a combined invoice — from the payment screen, generate one merged PDF covering every open invoice with its full itemized detail: a "Statement of Dues" before payment (listing what's still owed on each), or a "Payment Receipt" once a payment clears every open invoice in full.
  • Pay out credit — return store credit the customer holds, as cash or another method (only shown when the customer has a credit balance).

3.10  Expenses Spend tracking

Module overview. Tracks business running costs (rent, utilities, wages, supplies) separately from purchases of resale stock, so profit reporting is accurate.

UI tour. Three tabs: Expenses (the filterable list with create/edit/delete), Categories (manage expense categories), and Report (a bar chart of spend, grouped by category, vendor, or payment method).

Micro-features:

  • Log a new expense — date, amount, payment method, optional vendor and note, and a category (creatable inline).
  • Filter expenses by date range, category, or payment method.
  • Edit or delete an expense (delete requires a two-step confirmation).
  • Manage expense categories — create, and toggle Active/Inactive.
  • View the spend report for a chosen period, grouped by category, vendor, or payment method.

3.11  Cashbook Cash reconciliation

Module overview. A dedicated ledger for physical cash moving in and out of the till, kept separate from digital payment methods, so the register can be reconciled daily.

UI tour. Stat cards for Opening balance, Cash in, Cash out, and Closing balance sit above two tabs: Entries (the transaction list) and Report (a daily rollup table).

Micro-features:

  • Set the opening balance — establishes the starting cash figure the cashbook reconciles against.
  • Add a manual adjustment — record cash in or cash out with an amount and notes (e.g. petty cash withdrawal).
  • View the daily report — a rollup of opening/in/out/closing figures per day.

3.12  Stock Counts & Loss Reports Inventory audit

Module overview. Lets you periodically count what's physically on the shelf, compare it against what RetailFlow's records say, and correct the system to match reality — while quantifying any loss (shrinkage) or surplus along the way.

UI tour. Two tabs: Stock counts (create and complete physical counts) and Loss report (shrinkage summarized by period).

Micro-features:

  • Start a new stock count — pick a count date, add notes, and search-and-add the products being counted.
  • Enter counted quantities — each line is pre-filled with the current system quantity as a starting point; you edit it to the actual counted number, and a live Difference column shows the variance.
  • Review a count's impact — before completing, see short/over quantities and the net value impact.
  • Complete a count — corrects system stock to match what was counted. This cannot be undone.
  • View the loss report — total loss/surplus value and a per-product breakdown, filterable by month or all-time, drawn only from completed counts.

3.13  Reports & Analytics Business intelligence

Module overview. A deeper analytical companion to the Dashboard, organized into focused tabs for sales performance, inventory health, customer/supplier rankings, and full financial statements — plus one-click exports for spreadsheet analysis.

UI tour. Five tabs: Overview, Inventory, Rankings, Financial, and Exports. Most tabs offer a period selector; some are gated by permission (Inventory and Exports need Inventory-reports access, Financial needs Profit-reports access).

Micro-features:

  • Overview tab — revenue, profit, order count, average order value, and growth versus the previous period, plus a Revenue & Profit by Category chart.
  • Inventory tab — low-stock list, reorder suggestions, dead-stock list (items not selling), and total inventory valuation.
  • Rankings tab — top customers, top suppliers, ABC analysis (classifying products by contribution to revenue), fast-moving products, and a per-product sales-by-day breakdown with its own date-range picker.
  • Financial tab — a profit & loss statement (revenue, cost of goods sold, gross profit, expenses, net profit), current cash position, and outstanding receivable/payable.
  • Exports tab — download CSV/Excel files for ten report types: Low stock, Reorder, Dead stock, Fast-moving, Slow-moving, Inventory valuation, ABC analysis, Category performance, Top customers, and Top suppliers.

3.14  Staff & User Management Team accounts

Module overview. Where the Owner (or anyone granted the right permission) creates and manages accounts for the rest of the team, assigning each person a role that controls what they can see and do.

UI tour. A list of staff with Name, Email, Role badges, and Status, plus a live counter in the header showing how many of the business's allowed accounts are in use (e.g. "3 / 5 accounts").

Micro-features:

  • Create a new user — name, email, temporary password, optional phone, and a role.
  • Edit a user's name or phone number.
  • Change a user's role — every user has exactly one role at a time.
  • Reset a user's password — sets a new password and signs them out of all existing sessions.
  • Deactivate a user — immediately ends any session they're currently signed into and blocks further sign-in, without deleting their history.
  • Account limit awareness — the "+ New user" action is disabled with an explanatory message once the business's account limit is reached.
NoteThe Owner role can never be assigned to anyone through this screen — every business has exactly one Owner, set when the business account was created. See Permissions & Access Control.

3.15  Audit Log Accountability

Module overview. An unchangeable record of every significant action taken in your business's account — who did what, to which record, and when — for accountability and troubleshooting.

UI tour. A date-range-filterable, paginated table of Time, Action, Entity, Entity ID, User, Role, and IP address, with each action color-coded (e.g. green for creation, blue for updates, red for deletions or cancellations).

Micro-features:

  • Filter by date range.
  • Read entries — every row shows exactly which user performed which action on which record, from where.
NoteThis is separate from Stock Counts (§3.12), which reconcile physical inventory. The Audit Log tracks actions across the whole system — sales voided, users deactivated, products created, and so on.

3.16  Settings Configuration

Module overview. Where a business reviews its own details and tunes the rules RetailFlow uses for stock alerts, void/refund time limits, and invoice printing, plus manages personal password security.

UI tour. Three cards: Business Details (read-only), Inventory & Sales Settings (editable with the right permission), and Change Password.

Micro-features:

  • View Business Details — business name, phone, GSTIN, address, and UPI details (read-only; changes go through a platform administrator).
  • Set Lead time — how many days it typically takes a supplier order to arrive, used in reorder calculations.
  • Set Safety stock — a buffer of extra days' stock to hold, used in reorder calculations.
  • Set Dead stock threshold — how many days without a sale before a product is flagged as dead stock.
  • Set Low-stock threshold — the quantity below which a product is flagged as low stock.
  • Set the Void window — how long after a sale it can still be voided.
  • Set the Refund window — how long after a sale it can still be refunded.
  • Toggle "Print Invoice by default" — the default state of the print checkbox at checkout.
  • Change your own password.

3.17  Feedback & Support Always available

Module overview. A lightweight way for anyone on your team to send a bug report, an idea, or a comment directly to the RetailFlow team, without leaving the app.

UI tour. A "Send feedback" link at the bottom of the sidebar opens a small dialog with a category picker, a message box, and an optional screenshot attachment.

Micro-features:

  • Choose a category — Bug, Idea, Praise, or Other.
  • Write a message describing the issue or idea.
  • Attach a screenshot — paste or upload an image to illustrate the feedback.
A note on Platform Administration RetailFlow's own operations staff use a completely separate, internal portal to provision business accounts and provide support. It's not part of your business's experience and isn't covered module-by-module here — but see When You Need a Platform Administrator for the specific tasks in this guide where you'll need to involve them.

4. Granular User Flows

This is the step-by-step reference. For every micro-feature listed in Section 3, you'll find here exactly what to click, what to type, what's required versus optional, and what happens immediately afterward — including the exact wording of confirmation and error messages RetailFlow shows.

4.1  Dashboard Flows

Switching the Sales Trend chart range

  1. On the Dashboard, locate the Sales Trend card.
  2. Click 30d, 90d, or 1y to change the chart's time window.

System response: The chart redraws immediately with the selected range; no page reload occurs.

Collapsing the Sales Trend chart

  1. Click the collapse arrow/header on the Sales Trend card.

System response: The chart hides, freeing vertical space; clicking again restores it. Your other dashboard cards are unaffected.

Note on live dataThe Dashboard refreshes automatically every 30 seconds. If a number seems out of date, wait a moment rather than reloading the page — a reload is unnecessary and will lose your Sales Trend range/collapse selection.

4.2  Point of Sale (POS) Flows

Adding a product to the cart by search

Requires: sales.create
  1. Press F1 or click the product search box.
  2. Type the product's name or SKU.
  3. Select the product from the results.
  4. If the product has more than one active batch, a Batch Picker opens — choose the batch to sell from, using the shown remaining quantity, sell price, and (if you can view profit) margin per unit.

System response: The product is added to the cart as a new line with quantity 1, using the selected batch's sell price. If only one batch exists, it is chosen automatically with no picker shown.

Selling more than the picked batch has in stock

  1. On a cart line whose picked batch is running low, increase the quantity beyond that batch's remaining stock.

System response: RetailFlow automatically tops up the line from other active batches of the same product, oldest batch first, at each batch's own cost — the line still sells at the originally picked batch's price throughout. The sale detail view later shows exactly which batches (and how much of each) the line drew from. The line is only blocked once quantity exceeds the product's total stock across every active batch, not the picked batch alone.

Scanning a barcode (handheld USB scanner)

  1. With the billing screen open (no need to click into a field first), scan the product's barcode with your USB scanner.

System response: RetailFlow recognizes the rapid keystroke-plus-Enter pattern of a scanner, looks up the barcode, and adds the matching product/batch to the cart automatically. If no product matches the barcode, a "not found" message is shown and nothing is added.

Scanning a barcode with the camera

  1. Click 📷 Scan.
  2. Grant camera access if prompted by your browser.
  3. Point the camera at the barcode until it is recognized.

System response: On a successful read, the scanner closes and the matched product/batch is added to the cart, same as a USB scan. Supported formats include EAN-13/8, UPC-A/E, Code128/39/93, ITF, Codabar, and QR. A torch/flashlight toggle is available for low light.

Changing a cart line's quantity

  1. On the cart line, use the quantity stepper, or click into the quantity field and type a number directly.

Validation: Quantity cannot exceed the product's total stock across all its active batches (the excess over the picked batch is drawn from other batches automatically — see below). If you try to enter more than the product's total stock, the field shows "Max stock: N" and will not accept a larger number.

System response: The line's subtotal and the bill's running totals update immediately.

Applying a per-line discount

  1. On the cart line, click the discount field.
  2. Toggle between and % as needed.
  3. Enter the discount amount.

System response: The line total, and the bill's subtotal/tax/final total, recalculate immediately.

Applying a bill-level discount

  1. In the bill summary panel, click the overall discount field.
  2. Toggle ₹/% as needed and enter the amount.

System response: The final total updates immediately, applied after any per-line discounts.

Adding a warranty period

  1. In the bill summary panel, enter a number of months in the Warranty field.

System response: RetailFlow computes and displays a "valid up to" date based on today's date plus the entered months. This date is printed on the invoice.

Removing a line from the cart

  1. Click the remove/trash icon on the cart line.

System response: The line disappears and totals recalculate immediately. There is no confirmation prompt — this only affects the in-progress cart, not a completed sale.

Completing a sale (Payment & Complete)

Requires: sales.create
  1. With at least one item in the cart, press F4 or click Payment & Complete.
  2. Select a customer: search by name/phone and pick one, click + New to create one inline, or leave as Walk-in (no account).
  3. Choose how payment is made:
    • Click Exact cash to fill in the exact amount due as cash, or Full credit to put the whole sale on the customer's account.
    • Or manually enter amounts against one or more of Cash / UPI / Card / Bank Transfer to split the payment — in split mode, the cash amount auto-computes to cover whatever is left.
  4. If the selected customer holds a credit balance, a banner shows it — click Apply to spend it toward this sale, or Remove to undo that.
  5. If your business has a UPI ID configured, click Generate QR to show a scannable payment QR code for the amount due.
  6. If the customer overpays in cash, you may tick No change to add the change to their store credit instead of handing back cash (this option requires a selected customer — it is unavailable for a walk-in sale).
  7. Tick or untick Print Invoice as needed (defaults from your Settings preference).
  8. Review the live summary line — it will read one of: "Exceeds total" (too much entered), "On credit" (payment doesn't cover the total and a customer is attached), "Paid in full ✓" with any change/credit noted, or plain "Paid in full ✓."
  9. Click the Complete button. Its label adapts to context: "Complete — ₹X credit," "Complete — Change ₹X," "Complete — Credit ₹X," or plain "Complete sale."

Validation: A sale cannot be completed on credit without a selected customer — "a customer is required for a credit sale." Total payments entered cannot exceed the sale total by more than what would be handled as change — "payments exceed the sale total" is rejected server-side if something is inconsistent. Selling more of a batch than is in stock is blocked with "insufficient stock."

System response: On success, a confirmation toast shows the new invoice number and outcome. If Print Invoice was ticked, the printable invoice PDF opens automatically in a new tab and its print dialog opens after a short delay. If "No change" was used, the change amount is posted as a customer credit payment in the background. The cart clears, ready for the next sale.

4.3  Sales Record & Invoice Flows

Finding a past sale

Requires: sales.view
  1. Go to Sales in the sidebar.
  2. Type an invoice number in the search box, and/or set a date range.

System response: The table filters to matching invoices as you type/select.

Sending an invoice on WhatsApp

  1. On the Sales list (or a customer's Invoices tab), click Send on WhatsApp next to the invoice.

System response: A WhatsApp link opens (in a new tab or the WhatsApp app, depending on your device) pre-filled with a message containing the invoice details/link, ready for you to send to the customer's number on file.

Viewing sale details

  1. Click Details on a sale in the list.

System response: A drawer opens showing line items with batch allocations, Subtotal/Discount/Tax/Total/Paid/Balance, the payment method(s) used, and warranty details (period and valid-until date) if any.

Recording a payment against a single invoice

Requires: payments.manage
  1. Open the sale's detail drawer and click Record payment (shown only while the invoice is active and still has a balance due).
  2. The Amount field defaults to the full balance due; adjust it down for a part-payment.
  3. Choose a Payment method — Cash, UPI, Card, Bank Transfer, or Existing account credit to draw the amount from store credit the customer already holds instead of collecting new money — add optional Notes, then click Save.

Validation: "Amount exceeds the balance due on this invoice" if you enter more than what's currently owed on it.

System response: The invoice's Paid amount and balance update immediately, and the payment shows up in the customer's statement — the same underlying action as collecting a payment from the Customers screen (see Customer Flows), just scoped to this one invoice.

Printing an invoice again

  1. In the Sale detail drawer, click Print invoice.

System response: The invoice PDF opens in a new tab, ready to print or save.

Voiding a sale

Requires: sales.cancel
  1. Open the sale's detail drawer.
  2. Click Void.
  3. Confirm the action.

Validation: The button is disabled once the business's configured void window (a number of days plus hours; the default is 12 hours) has passed since the sale, with a tooltip reading "Void window has expired." A sale that isn't in a voidable status shows "sale cannot be voided in its current status."

System response: The sale is reversed — stock sold in it is returned to inventory, and its status updates. This is recorded in the Audit Log.

Refunding a sale

Requires: sales.refund
  1. Open the sale's detail drawer and click Refund.
  2. The modal shows the linked customer's current balance context: whether they owe money, already hold a credit balance, or have no outstanding balance.
  3. Choose a Refund method: Add to customer's credit balance or Pay cash from register. (If no customer is linked to the sale, cash is the only option.)
  4. Confirm the refund.

Validation: Disabled after the business's configured refund window (default 7 days) has elapsed, with a tooltip reading "Refund window has expired." A sale not in a refundable status shows "sale cannot be refunded in its current status."

System response: The refund is recorded against the sale, and either the customer's credit balance increases or cash is logged as paid out, depending on the method chosen.

4.4  Product Catalog Flows

Searching and filtering the catalog

Requires: products.view
  1. Go to Products in the sidebar.
  2. Type into the search box to filter by name or SKU, and/or pick a category from the filter dropdown.
  3. Use the A–Z index bar to jump to products starting with a specific letter, or click it again to collapse it.

System response: The list filters live as you type or select.

Looking up a product by barcode

  1. Click the barcode field and either type a barcode or click the camera icon to scan one.

System response: If found, the matching product is shown/highlighted. If not, a "not found" message appears.

Creating a new product

Requires: products.create
  1. Click + New product.
  2. Enter Name (required).
  3. Optionally enter a SKU.
  4. Pick a Category, or click the inline "add category" option to create one on the spot without leaving the form.
  5. Enter the Opening cost (required) — what you paid per unit for the starting stock.
  6. Enter the Default selling price (required).
  7. Tick Apply GST if the product is taxable, then choose the GST slab: 5%, 12%, 18%, 28%, or 40%.
  8. Optionally tick Selling price is MRP — when set, GST is calculated as already included in the price you entered (backed out) rather than added on top.
  9. Choose a Unit: PCS, KG, GRAM, LITER, ML, BOX, PACK, DOZEN, or METER.
  10. Optionally set Min. stock — the quantity that triggers a low-stock alert for this product.
  11. Enter or scan a Barcode (optional).
  12. Enter Initial stock (create-only) — the opening quantity for this product's first batch.
  13. Optionally add a product photo — drag-and-drop, click to upload, or capture with a camera. Accepted formats are JPEG, PNG, and WebP, up to 5MB; images over 2MB are automatically compressed before upload.
  14. Click Save.

Validation: Name is required. Cost and selling price must both be entered and greater than zero — otherwise you'll see "Enter a purchase price and a selling price greater than 0." An SKU or barcode already used by another product is rejected with "sku already in use" or "barcode already in use."

System response: The product is created along with its first stock batch (using the opening cost, selling price, and initial stock you entered), and appears immediately in the catalog list.

Editing a product

Requires: products.update
  1. Click Edit on a product row.
  2. Update any field except initial stock (stock is changed via Adjust Stock or purchases, never by editing the product directly) and the opening cost (each batch tracks its own cost from here on).
  3. To change the photo, upload a new one to replace the existing image, or click Remove photo and confirm to delete it entirely.
  4. Click Save.

System response: Changes apply immediately across the catalog and billing screen. Removing a photo deletes it from storage right away, independent of clicking Save, and cannot be undone.

Adjusting stock manually

Requires: inventory.adjust
  1. On a product row, click StockAdjust (or the equivalent action from the product's Batches view).
  2. Enter a signed Quantity — a positive number to add stock (e.g. found extra stock), or a negative number to remove it (e.g. damage or a correction).
  3. Optionally add a Note explaining the reason.
  4. Click Save.

Validation: The quantity cannot be zero — "Enter a non-zero quantity."

System response: A stock-adjustment movement is written against the relevant batch, and the product's current stock reflects it immediately. The adjustment appears in the Audit Log.

Deactivating / reactivating a product

Requires: products.delete
  1. Click Deactivate on a product row (or Reactivate on an already-deactivated one).

System response: A deactivated product disappears from the billing screen's search and can no longer be sold, but its full sales/purchase history is preserved and it can be reactivated at any time.

4.5  Batch Flows

Searching and filtering batches

Requires: inventory.view
  1. Go to Inventory → All batches (or open a specific product's Batches view).
  2. Search by product name, batch number, or barcode.
  3. Filter by status: Active, Depleted, or Inactive.

System response: The batch table filters live.

Editing a batch

Requires: products.update
  1. Click Edit on a batch row.
  2. Update Cost price, Selling price, and/or Barcode.
  3. Click Save.

System response: Future sales from this batch use the updated price(s) immediately; past sales are unaffected.

Deactivating / reactivating a batch

  1. Click Deactivate on a batch (e.g. stock found to be damaged) or Reactivate on a previously deactivated one.

System response: A deactivated batch is hidden from the billing screen's batch picker and cannot be sold from, but remains visible in reporting and can be reactivated at any time.

4.6  Category Flows

Creating a category

Requires: products.create
  1. Go to Categories in the sidebar, or use the inline "add category" option from a product form.
  2. Click + New category.
  3. Enter Name (required).
  4. Optionally enter a Description.
  5. Click Save.

Validation: A duplicate name is rejected with "category name already exists."

System response: The category appears immediately in the category list and in the category picker on product forms.

Editing a category

  1. Click Edit on a category row, update the name or description, and click Save.

System response: Existing products keep the category; only its name/description changes everywhere it's shown.

Deactivating / reactivating a category

  1. Click Deactivate or Activate on a category row.

System response: A deactivated category is hidden from new-product forms but remains attached to any product already assigned to it.

4.7  Purchase Order Flows

Creating a new purchase order

Requires: purchases.create
  1. Go to Purchases and click + New Purchase Order.
  2. Choose a Supplier from the list, or click "+ New" to create one inline.
  3. Set the Purchase date and optionally enter the supplier's own Invoice #.
  4. Add products to the order — search and select, or create a new product inline if it doesn't exist yet.
  5. For each line, enter Qty, Unit cost, and Tax %.
  6. Optionally enter an overall Discount (₹) and Notes.
  7. Review the live Subtotal / Tax / Total, then click Save.

Validation: A supplier must be selected — "Select a supplier." At least one item is required — "Add at least one item" / "purchase must have at least one item." Quantity must be greater than zero — "quantity must be greater than zero." Unit cost cannot be negative — "unit cost must be non-negative."

System response: The purchase order is created with status DRAFT and appears in the Purchases list, ready to receive against.

Receiving goods against a purchase order

Requires: purchases.update
  1. Open the purchase order's detail drawer and choose Receive.
  2. For each outstanding line, enter the Receiving now quantity (capped at what remains to be delivered).
  3. Confirm or adjust the Unit cost — if it differs from the ordered cost, RetailFlow tracks this as a price variance automatically.
  4. Enter the Selling price for the new batch this delivery will create.
  5. Provide a Batch barcode — type one, scan one, or click "reuse previous barcode." Alternatively, if an earlier delivery on this same order already created a batch for this exact product at a matching cost, tick Append to batch to add to it instead of creating a new one.
  6. Review the live "Price variance vs. ordered" total, then click Save.

Validation: A receiving quantity must be entered — "Enter a quantity to receive." It cannot exceed what's left on the line — "Received quantity exceeds what's left on a line" / "received quantity exceeds the remaining ordered quantity." A selling price is required for every received line — "Enter a selling price for each received line." Reusing a barcode when none exists yet shows "This product has no previous barcode to reuse — enter one." Appending to a batch whose cost doesn't match is rejected — "unit cost does not match the existing batch's cost."

System response: Each received line becomes a new stock batch (or adds to an existing one if appended), immediately available for sale. The purchase order's status updates to PARTIALLY_RECEIVED or RECEIVED depending on whether anything is still outstanding.

Recording a payment to a supplier

Requires: payments.manage
  1. Open the purchase order's detail drawer and choose Record payment.
  2. Enter the Amount (required).
  3. Choose a Method: Cash, UPI, Card, or Bank Transfer.
  4. Optionally add Notes.
  5. Click Save.

System response: The payment is recorded against the order and the supplier's ledger. If paid before anything has been received, it is flagged as an "ADVANCE." The order's payment status updates to PARTIALLY_PAID or PAID.

Returning items to a supplier

  1. Open the purchase order's detail drawer and choose Return items.
  2. For each delivered-but-not-yet-returned line, enter the Return qty.
  3. Optionally add a Reason.
  4. Review the estimated credit, then click Save.

Validation: Return quantity cannot exceed what was purchased and not already returned — "return quantity exceeds the remaining purchased quantity."

System response: Stock is reduced accordingly, the supplier's ledger is credited by the estimated value, and the order's status may become RETURNED if fully returned.

Closing a purchase order short

  1. Open the purchase order's detail drawer and choose Close short.
  2. Confirm the action in the dialog that appears.

System response: The value of whatever was ordered but never delivered is written off as no longer owed to the supplier, and the order's status becomes CLOSED_SHORT. This cannot be undone.

Cancelling a purchase order

  1. Open the purchase order's detail drawer and choose Cancel, then confirm.

Validation: Only available while the order is still DRAFT. Otherwise: "purchase cannot be cancelled in its current status."

System response: The order is marked CANCELLED and no stock is affected, since nothing had been received.

4.8  Supplier Flows

Creating or editing a supplier

Requires: suppliers.manage
  1. Go to Suppliers and click + New supplier (or Edit on an existing one).
  2. Enter Name (required).
  3. Optionally fill in Contact person, Phone, Email, GSTIN, City, State, Address, and Notes.
  4. Click Save.

System response: The supplier appears in the list and becomes available to select on new purchase orders.

Viewing a supplier statement

  1. Click Statement on a supplier row.

System response: A running-balance ledger opens, listing every purchase, payment, and return in date order.

Recording a refund received from a supplier

  1. On the supplier's Statement, if their balance shows a credit in your favor (returns exceeding payments), click Record refund received.
  2. Enter Amount, Method, and optional Notes.
  3. Click Save.

Validation: The amount is capped to the supplier's available credit — "refund exceeds the supplier's available credit" if you try to enter more.

System response: The supplier's ledger balance decreases by the refunded amount.

4.9  Customer Flows

Creating or editing a customer

Requires: customers.manage
  1. Go to Customers and click + New customer (or Edit on an existing one). This can also be done inline from the POS checkout screen.
  2. Enter Name (required).
  3. Optionally fill in Phone, Email, GSTIN, City, State, Address, and Notes.
  4. Click Save.

System response: The customer becomes searchable on the billing screen and in the Customers list.

Collecting a payment from a customer

Requires: payments.manage
  1. On the Customers list or a customer's detail page, click Collect payment.
  2. If the customer has open invoices, they're listed oldest first, each with a checkbox and an amount, under a running Total due across open invoices banner.
  3. Enter Amount received: it auto-distributes across the open invoices oldest-first (each capped at its own balance due), leaving any remainder in Additional amount (not linked to an invoice). Or click Clear all dues to fill in the exact total owed in one click.
  4. To override the auto-distribution, tick/untick individual invoices or edit their amount directly.
  5. Click Details next to any invoice to open its Sale detail drawer without leaving the payment screen, or View/print combined invoice to open a merged, itemized PDF of every open invoice and its balance due — useful for showing the customer their total before they pay.
  6. Choose a Payment method: Cash, UPI, Card, Bank Transfer, or Existing account credit to draw the allocations down from store credit the customer already holds instead of collecting new money (choosing Credit clears and hides the "Additional amount" field, since credit can only be applied against the invoices listed).
  7. Optionally add Notes, then click Save.

Validation: "Amount for invoice [number] exceeds its balance due" if an individual invoice's entered amount is more than what's left owing on it. "Enter an amount" blocks Save if nothing has been entered anywhere.

System response: Each invoice allocation posts against that invoice (increasing its Paid amount and reducing its balance) and reduces the customer's overall balance; any additional/unallocated amount reduces the customer's overall balance only, with no invoice attached. Cash payments also post a CASH_IN entry to the Cashbook. If the payment pays off every open invoice in full, a confirmation replaces the form with a Print customer copy button that opens the same merged PDF, now reframed as a settlement receipt confirming everything's cleared.

Paying out a customer's credit balance

  1. On a customer who holds a credit balance, click Pay out credit (only shown in this case).
  2. Enter the Amount (capped to their available credit) and Method.
  3. Click Save.

Validation: "settlement exceeds the customer's available credit" if you try to pay out more than they hold.

System response: The customer's credit balance decreases by the amount paid out.

Viewing a customer's statement, invoices, and products bought

  1. Click Details on a customer, then choose the Statement, Invoices, or Products Bought tab.
  2. On Products Bought, toggle between This month and All time.

System response: Statement is a paginated, signed (+/−) ledger; Invoices lists their sales with a WhatsApp-send option per row; Products Bought summarizes quantities/spend per product for the chosen period.

4.10  Expense & Cashbook Flows

Logging an expense

Requires: expenses.manage
  1. Go to Expenses and click + New expense.
  2. Enter Date and Amount (both required).
  3. Choose a Payment method.
  4. Optionally enter Vendor and a Note.
  5. Pick a Category, or create one inline.
  6. Click Save.

System response: The expense appears in the list immediately and is reflected in the Expense Report and in Financial reporting.

Editing or deleting an expense

  1. Click Edit to change any field, or Delete to remove it.
  2. Deleting requires a second confirmation click before it takes effect.

System response: Edits apply immediately; deletion is permanent and removes the expense from all reports.

Managing expense categories

  1. Go to the Categories tab within Expenses.
  2. Click + New category to create one, or click a category's status badge to toggle Active/Inactive.

System response: Inactive categories are hidden from new-expense forms but remain attached to existing expenses.

Setting the cashbook opening balance

Requires: settings.manage
  1. Go to Cashbook and click Set opening balance.
  2. Enter the Opening balance amount.
  3. Click Save.

System response: The Opening balance stat card updates, and all subsequent Cash in/out totals reconcile against it.

Adding a cash adjustment

  1. Click + Adjustment.
  2. Choose Type: Cash in or Cash out.
  3. Enter the Amount and optional Notes.
  4. Click Save.

System response: The Cash in/Cash out and Closing balance stat cards update immediately, and the entry appears in the Entries tab.

4.11  Stock Count Flows

Starting a new stock count

Requires: inventory.audit
  1. Go to Inventory audits → Stock counts and click + New count.
  2. Pick the Count date and optionally add Notes.
  3. Search for and add each product being counted. Every line is pre-filled with the current system quantity.
  4. Edit the Counted quantity on each line to the number you actually counted on the shelf. A live Difference column shows the variance (shown in green for a surplus, red for a shortage).
  5. Click Save to store the count in progress (it does not affect stock yet).

System response: The count is saved with status IN_PROGRESS and assigned an audit number; it can be resumed and edited until completed.

Completing a stock count

  1. Open the stock count's detail drawer to review the Short/Over counts and net value impact, along with a per-line System/Counted/Difference/Value table.
  2. Click Complete count & correct stock.
  3. Confirm the warning: "Your system stock will be corrected to match the counted quantities. This can't be undone."

System response: RetailFlow writes stock-adjustment movements to bring system stock in line with what was counted, and marks the count COMPLETED. Completed counts feed into the Loss report.

Viewing the loss (shrinkage) report

  1. Go to the Loss report tab.
  2. Choose This month or All time.

System response: Shows total loss/surplus value and a per-product System/Counted/Difference/Value breakdown, calculated only from completed stock counts.

4.12  Reports & Analytics Flows

Viewing the Overview tab

Requires: reports.sales
  1. Go to Reports (defaults to the Overview tab).
  2. Choose a period from the selector.

System response: Revenue, profit, order count, average order value, growth versus the previous period, and the category chart update for the chosen period.

Viewing the Inventory tab

Requires: reports.inventory
  1. Click the Inventory tab.

System response: Shows low-stock items, reorder suggestions (based on your Lead time and Safety stock settings), dead-stock items (based on your Dead stock setting), and total inventory valuation.

Viewing the Rankings tab

  1. Click the Rankings tab.

System response: Shows top customers, top suppliers, ABC analysis (products ranked by contribution to revenue), and fast-moving products.

Viewing products sold by day

  1. On the Rankings tab, scroll to the Products sold by day card.
  2. Use its date-range picker to choose a single day (defaults to today) or a multi-day range.

System response: Lists each product's quantity sold and revenue for the selected day; choosing a multi-day range adds a Date column and breaks the totals out per day.

Viewing the Financial tab

Requires: reports.profit
  1. Click the Financial tab.

System response: Shows a full profit & loss statement (revenue, cost of goods sold, gross profit, expenses, net profit), current cash position, and outstanding receivable/payable, generally reflecting the current month for the live figures.

Exporting a report

Requires: reports.inventory
  1. Click the Exports tab.
  2. Click the download button (CSV or Excel) next to the report you need: Low stock, Reorder, Dead stock, Fast-moving, Slow-moving, Inventory valuation, ABC analysis, Category performance, Top customers, or Top suppliers.

System response: The file downloads to your device immediately, ready to open in a spreadsheet application.

4.13  Staff & User Management Flows

Creating a new staff user

Requires: users.manage
  1. Go to Users and click + New user.
  2. Enter First name and Last name (required).
  3. Enter Email (required, must be a valid, unused address).
  4. Enter a Password (required, minimum 8 characters).
  5. Optionally enter a Phone number.
  6. Choose a Role from the dropdown — note the Owner role never appears here.
  7. Enter Confirm with your password — your own account password, to authorize this action.
  8. Click Save.

Validation: Email must be valid and not already registered — "email already registered." Password must be at least 8 characters. A role must be selected — "Select a role." Your confirm-password must match your own account password — "password is incorrect" otherwise. If the business is already at its account limit, the button is disabled with the tooltip "You've reached your maximum number of user accounts. Contact support to raise this limit."

System response: The new user appears in the list immediately, able to sign in with the email and password you set, restricted to their assigned role's permissions.

Editing a user's details

  1. Click Edit on a user row.
  2. Update First/Last name and/or Phone.
  3. Enter your own Confirm password.
  4. Click Save.

System response: Changes apply immediately.

Changing a user's role

  1. Click Change role on a user row.
  2. Select the new role from the dropdown (Owner is never an option here).
  3. Enter your own Confirm password.
  4. Click Save.

Validation: You cannot change your own role — "cannot change your own role" — this action is hidden on your own row. Assigning Owner is never possible — "the owner role cannot be assigned here."

System response: The user's permissions change to match the new role the next time they load or refresh a page; if they're actively signed in, their sidebar and access update on their next navigation.

Resetting a user's password

  1. Click Password on a user row.
  2. Enter a New password (minimum 8 characters).
  3. Enter your own Confirm password.
  4. Click Save.

Validation: You cannot reset your own password this way — "cannot reset your own password here; use change password instead" — this action is hidden on your own row.

System response: The message "The user will be signed out of existing sessions" applies — their password changes and any device where they're currently signed in is logged out.

Deactivating a user

  1. Click Deactivate on a user row.
  2. Enter your own Confirm password in the dialog that reads "This user can no longer sign in until reactivated."
  3. Confirm.

Validation: You cannot deactivate your own account — "cannot deactivate your own account" — this action is hidden on your own row.

System response: The user is immediately blocked from signing in (and signed out if currently active), but their history and any records they created remain intact and can be reactivated later.

4.14  Settings Flows

Reviewing Business Details

  1. Go to Settings — Business Details are shown read-only.

System response: Nothing is editable here; the card notes "Managed by the administrator. Contact support to make changes." Reach out to your onboarding contact for corrections.

Updating Inventory & Sales Settings

Requires: settings.manage to save (reports.inventory to view)
  1. In the Inventory & Sales Settings card, adjust any of: Lead time (days), Safety stock (days), Dead stock (days), Low-stock threshold, Void window (days + hours), Refund window (days), and the Print Invoice by default checkbox.
  2. Click Save.

Note on the Void window field: entering 24 or more hours automatically rolls over into whole days for you. Setting both days and hours to 0 means no time limit at all.

System response: New values take effect immediately across the app — for example, sales older than the new void window will show the "Void window has expired" tooltip right away. Defaults, if never changed, are: Lead time 7 days, Safety stock 3 days, Dead stock 90 days, Low-stock threshold 0, Print by default on, Void window 12 hours, Refund window 7 days.

Changing your password

  1. In the Change Password card, enter your Current password.
  2. Enter a New password (minimum 8 characters).
  3. Enter the same value again in Confirm new password.
  4. Click Save.

Validation: The two new-password fields must match — "New passwords do not match" if they don't. The current password must be correct.

System response: Your password changes immediately, and other signed-in devices/sessions are signed out for security.

5. Permissions & Access Control

Every staff account belongs to exactly one role. A role is simply a fixed bundle of permissions — there is no way to hand-pick individual permissions for a single user outside of the three built-in roles. Anything a user doesn't have permission for is hidden from their sidebar entirely, not merely shown-but-disabled — the interface only ever offers what you're allowed to do.

5.1  The Three Roles

OWNER — full control, one per business MANAGER — full operations, no admin CASHIER — front-desk billing
RoleIntended forSummary of access
OWNERThe business owner / proprietorEvery permission in the system, including staff management, settings, and the audit log. Every business has exactly one Owner, assigned when the business account is created by a platform administrator — the Owner role can never be granted to anyone else afterward, and an Owner cannot demote or replace themselves through the Users screen.
MANAGERA trusted deputy running day-to-day operationsEverything an Owner can do except managing staff accounts, changing business settings, and viewing the audit log.
CASHIERFront-of-store billing staffCreating and viewing sales, looking up products and stock, managing customers, and recording payments — enough to run the till and handle walk-in questions without exposing purchasing, reporting, or admin screens.

5.2  Full Permission Matrix

PermissionWhat it controlsOwnerManagerCashier
sales.createRing up sales on the POS screen
sales.viewView the Sales list and sale details
sales.cancelVoid a sale within the void window
sales.refundRefund a sale within the refund window
products.createCreate products and categories
products.updateEdit products and batches
products.deleteDeactivate / reactivate products
products.viewView the product catalog
inventory.viewView batches and stock levels
inventory.adjustManually adjust stock quantities
inventory.auditCreate and complete stock counts
purchases.createCreate purchase orders
purchases.updateReceive, return, close, or cancel purchase orders
purchases.viewView purchase orders
suppliers.manageCreate/edit suppliers, view statements, record refunds
customers.manageCreate/edit customers, view statements
payments.manageCollect/pay out customer & supplier payments
expenses.manageLog expenses and manage expense categories
reports.salesView sales-related dashboard cards and Overview report
reports.inventoryView inventory alerts/valuation and the Inventory & Exports report tabs
reports.profitView profit figures and the Financial report tab
users.manageCreate, edit, role-change, reset password, and deactivate staff
settings.manageEdit Inventory & Sales Settings, set cashbook opening balance
audit_logs.viewView the Audit Log

5.3  Special Rules That Apply Regardless of Role

  • The Owner role cannot be assigned to anyone via the Users screen — including by an Owner themselves. Every business has exactly one Owner, fixed at account creation.
  • No one can deactivate their own account.
  • No one can change their own role (even an Owner with full permissions).
  • An Owner cannot reset their own password via the staff-management "reset password" action — they must use the self-service Change Password flow in Settings instead.
  • Every sensitive staff-management action (create user, edit user, change role, deactivate, reset password) requires the acting user to re-enter their own account password as a confirmation step, regardless of role.
  • The number of staff accounts a business may have is capped (five by default) and can only be raised by a platform administrator — never by the Owner from within their own Settings.

5.4  When You Need a Platform Administrator

Platform administrators are RetailFlow's own operations staff, working outside your business's account. A handful of tasks sit outside what any role inside your business — including the Owner — can do alone. If you hit one of these, contact your onboarding contact or RetailFlow support rather than looking for the option inside the app:

TaskWhy it needs a platform administrator
Setting up your business account in the first placeThere's no self-service sign-up — see How Your Account Is Created.
Correcting your business's GSTIN, legal name, registered address, or UPI detailsThese are shown read-only in Settings and can't be edited by any role inside your business — see Settings.
Raising your staff-account limit above the default (five)Even the Owner cannot raise this limit from within the app — see Special Rules.
Restoring access if your business's account has been suspendedSuspension and reactivation are platform-level actions; a suspended business sees "business is not active" when anyone tries to sign in — see Sign-in & Access Issues.

For anything not listed above, use the in-app Feedback & Support link, or reach out through the contact your business used when it was first set up on RetailFlow.

6. Troubleshooting & User Edge Cases

Most error messages in RetailFlow are written in plain language and tell you exactly what to fix. This section collects the most common ones, what they mean, and how to resolve them.

6.1  Sign-in & Access Issues

What you seeWhat it meansHow to resolve it
"invalid credentials"The email or password entered doesn't match any account, or doesn't match each other.Double-check for typos (use the eye icon to reveal your password) and confirm caps lock is off.
"user is not active"Your account has been deactivated by your Owner or Manager.Contact your business's Owner or Manager to have your account reactivated.
"business is not active"Your business's account has been suspended at the platform level.Contact RetailFlow support/your onboarding contact — this is not something anyone inside the business can reverse themselves.
Sidebar is missing an option you expect (e.g. no Reports link)Your role doesn't include the permission for that section.This is by design — ask your Owner to review your assigned role if you believe you need broader access.
"You don't have permission to view this page"You navigated directly to a page URL your role doesn't have access to.Return to the Dashboard using the sidebar; if you believe you should have access, ask your Owner to check your role.

6.2  Sales & Billing Issues

What you seeWhat it meansHow to resolve it
"Max stock: N" and the quantity won't go higherYou're trying to sell more units than remain in that batch.Check if another batch of the same product has stock (use the Batch Picker), or reduce the quantity to what's available.
"insufficient stock"The system blocked a sale because the stock isn't actually available (e.g. it changed between opening the cart and checking out).Refresh the product's stock and adjust the quantity, or select a different batch.
Complete button stuck showing "On credit" and won't proceedThe amount entered doesn't cover the total and no customer is selected — credit sales require a customer.Select or create a customer, or increase the payment amount to cover the total.
"No change" checkbox is disabledThis option requires a specific customer to receive the store credit — it can't be used for a walk-in sale.Select a customer before ticking "No change," or hand back the cash change normally.
Void or Refund button is greyed out with a tooltip about an expired windowThe business's configured time limit for voiding/refunding that sale has passed.If a correction is still needed, use a manual stock adjustment and/or a customer credit/payment instead, or ask your Owner to review the Void/Refund window in Settings if this happens often.
"sale cannot be voided/refunded in its current status"The sale is already voided, refunded, or otherwise not in a state that allows the action.Check the sale's current status in its detail drawer — no further action of that kind is possible.

6.3  Product & Inventory Issues

What you seeWhat it meansHow to resolve it
"Enter a purchase price and a selling price greater than 0"One or both price fields were left blank or entered as zero when creating/editing a product.Enter a positive number for both the opening cost and the default selling price.
"sku already in use" / "barcode already in use"Another product already has that exact SKU or barcode.Check the existing product (search by that SKU/barcode) — either reuse it or choose a different, unique value.
"category name already exists"A category with that exact name is already in your list.Select the existing category instead of creating a duplicate.
"Enter a non-zero quantity" on a stock adjustmentThe adjustment field was left at zero.Enter a positive number to add stock, or a negative number to remove it.

6.4  Purchases & Suppliers Issues

What you seeWhat it meansHow to resolve it
"Add at least one item" / "purchase must have at least one item"You tried to save a purchase order with no products on it.Add at least one product line before saving.
"Received quantity exceeds what's left on a line"You entered a receiving quantity larger than what's still outstanding on that order line.Reduce the quantity to match what's actually still due, or check whether this delivery belongs to a different purchase order.
"This product has no previous barcode to reuse — enter one"You clicked "reuse previous barcode" but no earlier batch exists to reuse from.Type or scan a barcode for this new batch manually.
"unit cost does not match the existing batch's cost"You tried to append a new delivery to an existing batch, but the unit cost this time is different.Uncheck "Append to batch" to create a separate new batch at the new cost instead.
"return quantity exceeds the remaining purchased quantity"You tried to return more units than were actually delivered (and not already returned).Reduce the return quantity to match what's genuinely available to send back.
"refund exceeds the supplier's available credit"You tried to record a refund larger than the credit balance the supplier actually owes you.Reduce the amount to the available credit shown on the supplier's statement.

6.5  Customer Payment Issues

What you seeWhat it meansHow to resolve it
"settlement exceeds the customer's available credit"You tried to pay out more store credit than the customer actually holds.Check the customer's current credit balance and reduce the amount.
"Pay out credit" button is missing on a customerThe customer currently has no credit balance — there's nothing to pay out.This is expected; the option reappears automatically if they build up a credit balance later.
"Amount for invoice [number] exceeds its balance due"In the Collect Payment screen, you edited one invoice's allocated amount to more than that invoice currently has left owing.Reduce that invoice's amount, or clear it and let "Amount received" auto-distribute the total for you instead of entering per-invoice amounts by hand.
"Amount exceeds the balance due on this invoice"The same check, encountered from the Record payment button in a sale's own detail drawer.Reduce the amount to at most the "Balance due" shown at the top of that dialog.
"Additional amount (not linked to an invoice)" field disappears after choosing Existing account creditAccount credit can only be applied against the invoices already listed on screen — there's nothing to tie a leftover, unallocated portion to.This is expected; switch to a different payment method if you need to record an unallocated amount alongside invoice allocations.

6.6  Staff & Account Management Issues

What you seeWhat it meansHow to resolve it
"email already registered"Another staff account already uses that email address.Use a different, unused email, or check whether the person already has an account (perhaps deactivated) that should be reactivated instead.
"password is incorrect" when confirming a sensitive actionThe "confirm with your password" field didn't match your own account's current password.Re-enter your own current password carefully — this field always refers to the person performing the action, not the account being changed.
"the owner role cannot be assigned here"The Owner role can never be assigned through the Users screen.Every business has exactly one Owner, fixed at account creation — contact RetailFlow support if ownership genuinely needs to change hands.
"+ New user" is disabled, tooltip about the account limitYour business has reached its maximum number of staff accounts (five by default).Deactivate an unused account to free up a slot, or contact support to have a platform administrator raise your limit.
"cannot deactivate your own account"You tried to deactivate the account you're currently signed in as.Ask another Owner/Manager-permission user to perform this action if you genuinely need your own account disabled.
"cannot change your own role"You tried to change the role of the account you're currently signed in as.Ask another user with the right permission to make this change on your behalf.
"cannot reset your own password here; use change password instead"You tried to use the staff "reset password" tool on your own account.Go to Settings → Change Password instead, which asks for your current password first.

6.7  Feedback & Miscellaneous

What you seeWhat it meansHow to resolve it
"Please write a little more detail" on the feedback formYour feedback message is shorter than 3 characters.Add a bit more detail describing the bug or idea.
A screenshot won't attach to feedbackThe file is either larger than 8MB or isn't an image.Resize/compress the screenshot, or attach a smaller image file.
Barcode scanner (camera) shows a blank or black previewCamera permission wasn't granted, or the browser/device doesn't support the camera API being used.Check your browser's site permissions and allow camera access; if the device genuinely lacks support, use a USB barcode scanner or type the barcode manually instead.
Numbers on the Dashboard look staleThe dashboard auto-refreshes every 30 seconds — you may just be between refreshes.Wait a few seconds; a manual page reload is not necessary and will reset your chart range/collapse choices.
Still stuck? Use the Send feedback link at the bottom of the sidebar to report a bug or ask a question directly — see Feedback & Support.