Getting oriented
Everything you do lives in the back-office at your store address (for example yourstore.xissuite.com). Sign in with the email and password created when the store was opened. The owner account is created at sign-up; everyone else is added as staff.
The sidebar & what you can see
The left sidebar is grouped into sections — Dashboard, Inventory, Point of Sale, Online Orders, Delivery, Accounting and Administration. A link only appears when both of these are true:
- Your plan includes the module. Inventory, POS, Online Orders, Delivery and Accounting are paid modules. If a whole section is missing, that module isn't on your plan — the owner can switch it on under Billing → Change plan. (Administration always shows.)
- Your role grants the permission. Within a module, each screen is gated by a permission. Staff see only what their role allows.
The Dashboard · requires dashboard.view
Your home screen shows an at-a-glance summary: total Products, Low stock and Expiring counts, Today's sales (count and total), Staff count, your 8 most recent sales, and a Sales-over-time chart (last 14 days and last 12 months). Staff without dashboard.view (for example cashiers) get a plain welcome screen with no figures, so sensitive numbers stay private.
Roles that ship with every store
Four ready-made roles exist from day one. You can edit them, add your own, or assign several to one person.
| Role | Made for | Roughly can… |
|---|---|---|
| Administrator | Owners / managers | Everything. |
| Manager | Shop managers | Run operations — inventory, purchasing, POS, customers, reports. |
| Cashier | Till staff | Use the register, see products & customers; no reports or settings. |
| Accountant | Bookkeepers | Books, financial reports, tax, journals, and pay suppliers. |
Inventory & Catalog
Your product catalogue, stock, purchasing and stock reports. Everything here needs the Inventory module on your plan.
Products & variants · Inventory → Products · inventory.view to see, products.manage to edit
The product is everything you sell — price, cost, stock, images, tax and variants. The list has a typo-tolerant search (name, SKU or barcode), a category filter, and quick-filter chips for “⚠ Needs attention” and “No price / out of stock”. Rows carry badges: No sale price, Out of stock, Expired, Expiring.
To add a product:
- Products → Add product.
- Enter the Name, pick or create a Category, set the Tax rate, and optionally a Reorder level and Expiry date.
- Add a cover Image (upload or use the device camera; a built-in editor lets you crop, rotate, tidy the background and watermark) and any gallery images.
- In the variants grid, add a row per sellable version. Name up to three option axes (e.g. Size, Colour). Set each variant's SKU, Barcode (use Gen for a unique one), Cost, Price and opening Stock. A simple product just uses one row with no options.
- Toggle Track stock, Active and Featured (pins it to the storefront bestsellers) as needed → Save.
| Field | Notes |
|---|---|
| Reorder level | Applies to the default warehouse only. Blank = no reorder flag. |
| Stock (variant grid) | An absolute figure — saving records the difference as an adjustment into the default warehouse. (The Stock Adjustment screen instead takes a +/− amount.) |
| SKU | Must be unique across all products and variants. Reuse one and the system appends -2, -3… Leave blank to auto-generate. |
| Expiry date | Drives the expiry badge, the dashboard alert and the Expiring Stock report. |
Categories · Inventory → Categories · categories.view / categories.manage
A nestable tree to organise products; filters cascade to sub-categories. Add category → enter a Name and optional Parent → Save. You can also create a category inline while editing a product or a purchase order. Deleting a category doesn't delete its products — they simply become uncategorised.
Suppliers · Inventory → Suppliers · suppliers.manage
Vendor records with Name, Email, Phone and Address, plus an Owed balance (what you owe that vendor). The balance rises automatically when you receive a purchase order. When a supplier is owed money, a Pay link lets you settle it: enter the Amount, choose the cash/bank account to pay from, and an optional reference — this posts the payment to the books. Paying is also open to staff with purchases.pay (e.g. an accountant).
Purchase Orders · Inventory → Purchase Orders · purchases.view / purchases.manage
Order stock from a supplier into a warehouse, then receive it to raise stock on hand.
- Purchase Orders → New purchase order.
- Choose the Supplier (optional) and Warehouse, set the Order date, add a Note.
- Add line items: search a product, set Quantity and Unit cost (pre-filled from the product's cost).
- Create purchase order — it's saved as a draft with a reference like
PO-XXXXXXXX. No stock moves yet. - When the goods arrive, open the PO → Receive order. Stock on hand goes up, the status becomes received, and the books post Dr Inventory / Cr the supplier's payables.
Warehouses · Inventory → Warehouses · warehouses.manage
Multiple stock locations; stock on hand is tracked per warehouse. Fields: Name, Code, Address, and Set as default. There is always exactly one default (setting a new one clears the old), and the default can't be deleted. Several actions always target the default warehouse — the product form's Reorder level and Stock column, bulk restock, and CSV opening stock. To place stock in another warehouse, use a Stock Adjustment or a PO addressed to it.
Stock levels, adjustments & movements · Inventory → Stock Levels · stock.view / stock.adjust
Stock Levels lists every product×warehouse row with on-hand and reorder level (rows at/below reorder are highlighted). To correct a count, Adjust stock → pick the product and warehouse, enter a +/− quantity (e.g. 10 to add, -5 to remove) and a note. Product Movements is the full ledger of every change — Stock in, Purchase received, Return, Import, Adjustment, Sale, Stock out — filterable by date, category, type and product, with CSV export.
Barcodes & labels
Generate scannable barcodes and print sticker labels.
- Generate: the Gen button next to a barcode field creates a unique code, or select products in the list and use Generate barcodes (only fills ones without a code). Codes are valid EAN-13 with a “restricted circulation” prefix, so they never clash with real retail barcodes.
- Print: select products → 🏷 Print labels. Choose a label size, labels per product, and tick Roll printer for thermal printers, then Print. Each label shows the name, barcode, code and price. If a code is too dense to scan at the chosen size, the label is flagged red — pick a bigger size.
Import products from CSV · Inventory → Import Products · products.manage
- Import Products → choose the Source (CSV recommended; Shopify or Odoo exports also supported).
- Click ⬇ Download CSV template, fill one row per product, and upload it → Import products.
CSV columns: name, sku, barcode, category, cost_price, sale_price, tax_rate, track_stock, opening_stock, is_active, description. Only name is required. Rows are matched by SKU — a match updates, otherwise a new product is created; unknown categories are auto-created; opening_stock books into the default warehouse. The import runs in the background and the page then shows a summary (created / updated / skipped / errors). Re-uploading the same file updates rather than duplicates. Limit 20 MB.
Alerts: out of stock, below reorder, expiring · Inventory · inventory.view
| List | Shows |
|---|---|
| Out of Stock | Stock-tracked products with on-hand ≤ 0, with a suggested order quantity and 90-day demand. |
| Below Reorder | Products still holding stock but at/below their reorder level (empty ones appear under Out of Stock instead). |
| Expiring Stock | Products with an expiry date that has passed or falls within the look-ahead window (default 60 days). Adjustable via a days filter. |
Inventory reports
- Product Report — per-product stock state plus sales activity and stock value.
- Product Movements — the full stock ledger (see above).
- Stock Valuation (stock.valuation) — what your on-hand stock is worth at cost and retail, potential profit and margin, broken down by category.
- Purchase Report — spend by status, supplier, warehouse and top items, on an order-date or received-date basis.
Every report filters on screen and exports to CSV.
Point of Sale
The till, cash drawer, credit sales, refunds and sales reports. Needs the POS module on your plan.
The Register / checkout · Point of Sale → Register · pos.use
The cashier's screen: products on the left, cart and payment on the right, with the current register and a Shift open / No open shift badge up top.
- Add items — tap a product tile, type in the search box (name, SKU — typo-tolerant), or scan a barcode (the scan field stays focused, so a keyboard-wedge scanner just works). If a product has several variants, a picker opens.
- Adjust — change quantities with the −/+ steppers; add a per-line disc or a whole-cart Cart discount; type a coupon code and Apply.
- Select the customer — “Walk-in” by default, or search by name/phone or scan a loyalty card. Picking a customer reveals their wallet balance and points.
- Redeem loyalty points or pay from the customer's wallet if available.
- Take payment — add one or more tender rows (method + amount); + Add method for split payment, and the = due button fills the remainder.
- Complete — the button shows the total, or “X on credit” if a balance is left owing. The receipt opens (and auto-prints if enabled).
INV-0001, INV-0002…Registers, shifts & the cash drawer · Point of Sale → Registers & Shifts · registers.manage
Define one or more tills (Name, Code, optional Warehouse, Active). To reconcile cash, work in shifts:
- Open shift on the register card — enter the opening float.
- During the day, use Cash in / Cash out on the Register (amount + reason) for non-sale cash movements.
- Close shift — enter the counted cash. The system shows the expected amount (float + cash sales + cash-in − cash-out) so you can see any over/short.
Credit sales & taking payments later · pos.use
Choosing a tender flagged as credit records the amount as owed rather than received (the sale becomes partially paid with a balance due — and needs a customer). Collect later two ways:
- Against one sale — open the sale → Record payment (amount + method, capped to the balance). Clearing it flips the sale to completed.
- Across all a customer's sales — on the customer profile → Receive payment. One amount is applied oldest-invoice-first; tick add overpayment to store credit to bank any leftover as wallet credit.
Refunds & returns · open a sale → Return items · sales.refund
- Sales → open the sale → in Return items, enter a quantity per line (or Return all).
- Process return. Stock is restored, revenue and tax reversed, points unwound, and the refund recorded.
Sales history & receipts · Point of Sale → Sales · sales.view
Browse past sales (filter by status, date, sale number, product or payment method). Open a sale to see items, totals, cashier, customer and payments — and to record a payment or process a return. The Receipt button prints (sized to your 58 mm / 80 mm setting) or re-prints any past sale; the ✉ Email button sends it to the customer.
POS reports & settings
- Sales Report (sales.reports) — revenue analytics: gross, discounts, tax, net, COGS, gross profit & margin, returns, money collected, and outstanding credit, with breakdowns by payment method, product, cashier, register and day. Set the range to “today” for an end-of-day/Z-report.
- Payment Summary (sales.reports) — every money movement in a period grouped by source and method, with drill-downs.
- Returns (sales.view) — every return with its cash / store-credit split.
- Settings (pos.settings) — Register Display (grid columns, receipt width, auto-print), Payment Methods (your tender list; mark one as “credit”), and Cash Reasons (the reasons in the cash in/out dialog).
Customers & CRM
Customer records, statements, store-credit wallets and the loyalty programme. Part of the POS module.
Customers · Point of Sale → Customers · customers.view / customers.manage
Create customers with Name, Email, ID/Tax number, Loyalty number (the card scanned at the till, and what enrols them to earn points), Phone, Address and Notes. A customer's profile shows their wallet balance, loyalty points, anything they owe you, wallet & loyalty history, and recent purchases.
Statement — a printable running ledger of invoices and payments with opening/closing balances and optional date range. The closing balance is what the customer currently owes.
Store-credit wallets · Point of Sale → Wallets · wallets.view / customers.manage
Each customer can hold store credit, usable as a tender at the till. Every change is written to a ledger.
- Top up one customer — profile → Top up wallet (amount, method, note).
- Withdraw / pay out — profile → Withdraw from wallet (capped to the balance).
- Bulk top-up — select many customers and credit them at once.
- Redeem — the “Pay from wallet” control on the Register draws the balance down.
Loyalty points · Point of Sale → Loyalty Program · loyalty.manage
Configure the programme: turn it active, set the earn rate (points per unit of net spend), the redeem value (cash per point) and a minimum points to redeem. Customers with a loyalty number earn points on net (ex-tax) spend; at the till they can redeem points for a discount. You can also manually adjust a customer's points from their profile.
Online Store
Your public shop, online orders, coupons, subscribers and analytics. Needs the Online Orders module.
Storefront settings · Online Orders → Storefront · storefront.manage
Controls how your public shop looks and who's notified about orders. Fill the cards and Save (blank text fields fall back to sensible defaults):
- Hero (title, subtitle, image), Brand story, Promo banner (with an on/off toggle), Logo, Testimonials, Social handles, Footer tagline.
- Featured collections — up to 6 categories highlighted on the home page, each with a subtitle and optional image.
- Contact — phone and address shown to shoppers.
- Order-alert recipients — the emails and phone numbers notified when an online order comes in (falls back to the store contact + owner if left blank).
- Community listing — “List my products in the XISSuite community search.” Opting in lists your active products in the public
/communitysearch so new shoppers can find you.
Online Payments · Online Orders → Online Payments · payments.manage
Connect your own Paystack account so customers can pay by card. Tick Enable, paste your public and secret keys (the secret is encrypted and never shown again — leave blank to keep the existing one), and choose whether to require full payment or allow a minimum deposit %. With a gateway configured, checkout offers pay-in-full, deposit and pay-on-delivery; without one, only pay-on-delivery is available.
Orders · Online Orders → Orders · orders.view / orders.manage / orders.fulfill
Online orders flow pending → confirmed → preparing → ready → dispatched → delivered → completed (or cancelled). Payment status is unpaid / partial / paid / refunded.
- Record payment — method and (if allowed) partial amount.
- Fulfil — this is where stock is decremented and the books post, then the order is marked completed. An order must be paid in full before it can be fulfilled (unless you don't require full payment, in which case fulfilling creates a receivable).
- Cancel before completion, or Refund a paid order (a fulfilled order restores stock and reverses the books).
- Orders Report — gross/net/tax/profit, status & fulfilment mix, shipping and payment breakdowns, top products, refunds — with CSV export.
Coupons · Online Orders → Coupons · coupons.manage
One coupon works identically online and at the POS. Set the code, type (percent or fixed), value, optional minimum order, usage limit, expiry and active toggle.
Subscribers & broadcasts · Online Orders → Subscribers · subscribers.view
Your storefront mailing list. Search, export to CSV, or remove subscribers. Broadcast sends a “new arrivals” email featuring your latest products — set a subject, intro and how many products to feature. Tick test to send only to yourself first as a preview.
Meta Pixel & Conversions API · on the Storefront page · storefront.manage
Add your Meta Pixel ID to track shop activity in the browser, and a Conversions API token for the server-side counterpart that reports purchases straight to Meta (so conversions still land when a browser blocks the pixel). Both are needed for the server side to fire; they're de-duplicated into one conversion.
Delivery
Track deliveries, manage drivers and set shipping options. Needs the Delivery module.
Deliveries board · Delivery → Deliveries · deliveries.view / deliveries.manage
Track each delivery through pending → assigned → out for delivery → delivered (or failed).
- Create a delivery — you can prefill it from an order (recipient, address, fee). Otherwise enter recipient, phone, address, city, zone, fee, schedule, driver and notes. A tracking number is generated automatically.
- Assign a driver → status becomes assigned.
- Dispatch → out for delivery (also pushes the linked order to “dispatched”).
- Deliver → delivered (pushes the order to “delivered”). Use Fail with a reason if it couldn't be completed.
Drivers · Delivery → Drivers · drivers.manage
Your driver roster: Name, Phone, Vehicle, Active. Only active drivers appear in the assign dropdowns.
Shipping methods · Delivery → Shipping Methods · shipping.manage
The options customers pick at checkout. Each row: label, fee, and a pickup flag (pickup carries no fee and needs no address). With none configured, the store falls back to Standard Delivery and Store Pickup.
Accounting
Real double-entry books that post themselves from your sales and purchases. Needs the Accounting module.
Chart of Accounts · Accounting → Chart of Accounts · accounting.view / accounts.manage
The accounts every transaction posts against, grouped by type (asset, liability, equity, income, expense). Your store starts with a standard set — Cash (1000), Bank (1010), Accounts Receivable (1200), Inventory (1300), Accounts Payable (2000), Owner Equity (3000), Sales Income (4000), COGS (5000), Operating Expenses (6000). Add one with a unique Code, Name and Type.
Journal Entries · Accounting → Journal Entries · accounting.view / journals.manage
The ledger — both automatic postings and your own manual adjustments. To post a manual entry: set the date, add at least two lines (each an account with a debit or credit), and Save. Debits must equal credits or it's rejected.
Completing a POS sale posts automatically: Dr Cash / Store Credit / Receivable, Cr Sales Income and Tax, plus Dr COGS / Cr Inventory. Purchases and online orders post their own entries.
Tax Rates · Accounting → Tax Rates · taxes.manage
Reusable tax percentages: Name, Rate (0–100%), Active. A No Tax (0%) rate is created for you.
Financial Reports · Accounting → Financial Reports · reports.view
| Report | What it tells you | Default period |
|---|---|---|
| Trial Balance | Every account's opening balance, movement and closing balance — the books' balancing check. | This month |
| Profit & Loss | Income vs expenses and net profit/loss. | Year to date |
| Balance Sheet | Assets = Liabilities + Equity as of a date. | Today |
| Accounts Receivable | Who owes you, aged Current / 31-60 / 61-90 / 90+. | Live |
| Account Statement | Ledger detail for one chosen account with a running balance. | This month |
Every report exports to CSV.
Administration
Staff, roles, store preferences and device security. Always available (no module needed).
Staff · Administration → Staff · users.view / users.manage
The people who can sign into your back office. Create → name, email, password, and tick one or more roles. When editing, leave the password blank to keep it, and untick Active to disable sign-in.
Roles & permissions · Administration → Roles · roles.view / roles.manage
Bundle permissions into named roles. Create → give it a name and description, then tick permissions grouped by module. The four system roles (Administrator, Manager, Cashier, Accountant) can be edited but not deleted.
tenants:sync-permissions if a new capability is missing for staff.Preferences · Administration → Preferences · users.manage
| Setting | What it does |
|---|---|
| Timezone | Sets local time across the app (e.g. Africa/Lagos). |
| Only approved devices may sign in | Restricts staff (not the owner) to admin-approved devices; new devices appear under Administration → Devices. Turning it on approves the browser you're using now, so you don't lock yourself out. |
| Gemini API key | One Google Gemini key powering both the AI image tools and smart search, billed to your own Google account. Stored encrypted; leave blank to keep, or tick “remove” to clear. |
| Smart product search | Turns on semantic search (needs the Gemini key). Enabling it starts indexing your catalogue right away. |
AI Features
Two tools powered by the one Gemini key you set in Preferences.
AI Product Studio · inside a product's edit form · products.manage + Gemini key
Turn one photo into a full set of product shots. Open a product for editing, scroll to ✨ AI image tools, pick an operation and click — each result is saved to the product's gallery:
- Plain background — remove/replace the backdrop (choose a colour).
- Recolour — change the product's colour, keeping shape and lighting.
- Add angle view — generate a Side / Back / ¾ / Top-down shot.
- Lifestyle / model shot — show the product in use or worn by a model.
Smart (semantic) search · enable in Preferences · users.manage + Gemini key
Finds products by meaning, not just spelling — “notebook” can match “laptop”, and it tolerates typos. Enable it in Preferences (with a Gemini key set); your catalogue is indexed within about 15 minutes and search keeps working meanwhile. It powers the product search box across the app.
Billing & Domains
Owner only — these two screens are visible only to the store owner.
Billing · Administration → Billing
Shows your subscription status (active, on trial with days left, or past due), your plan, monthly amount and anything due now. Pay with Paystack settles it and saves the card for automatic monthly renewals (these routes stay reachable even if the store is suspended, so you can always pay to reactivate).
Change plan lists the public plans and the modules each includes. Switching applies modules immediately (the sidebar changes at once) but the new rate is charged at your next renewal — no charge today.
Domains · Administration → Domains
Buy a custom domain and point it at your store without leaving the app.
- Search for an available domain.
- Register — fill the contact details (years, name, address, country, phone, email); the price shows in the platform currency.
- Checkout via Paystack — on success the domain is registered and pointed at your store (DNS can take a little while to propagate).
Each domain then has a control panel to edit DNS records (A, AAAA, CNAME, TXT, MX) and toggle auto-renew. Your store keeps working on yourstore.xissuite.com regardless.
Permissions Appendix
A quick reference for building roles. Grant these on Administration → Roles. Remember: owners bypass all of them, and each module also needs the matching subscription.
| Area | Permission | Grants |
|---|---|---|
| Dashboard | dashboard.view | See dashboard figures & charts |
| Inventory | inventory.view | View products, movements, alert lists, labels |
| products.manage | Add/edit products, bulk actions, CSV import, barcodes, AI images | |
| categories.view / categories.manage | View / manage categories | |
| stock.view / stock.adjust / stock.valuation | View stock / adjust stock / valuation report | |
| suppliers.manage / warehouses.manage | Manage suppliers / warehouses | |
| purchases.view / purchases.manage / purchases.pay | View / create-receive POs / pay suppliers | |
| Point of Sale | pos.use | Use the register, checkout, cash in/out, record payments |
| sales.view / sales.reports | View sales & returns / revenue reports | |
| sales.refund | Process returns & refunds | |
| customers.view / customers.manage | View customers / manage customers, wallets, loyalty | |
| wallets.view / loyalty.manage | Wallets overview / loyalty programme settings | |
| registers.manage / pos.settings | Registers & shifts / POS settings | |
| Online Orders | storefront.manage / payments.manage | Storefront content / Paystack settings |
| orders.view / orders.manage / orders.fulfill | View / take payment & status / fulfil, cancel, refund | |
| coupons.manage | Coupons (also used at POS) | |
| subscribers.view | Subscribers & broadcasts | |
| Delivery | deliveries.view / deliveries.manage / drivers.manage / shipping.manage | Deliveries / drivers / shipping methods |
| Accounting | accounting.view / accounts.manage / journals.manage | View books / chart of accounts / manual journals |
| taxes.manage / reports.view | Tax rates / financial reports | |
| Administration | users.view / users.manage / roles.view / roles.manage | Staff / roles & preferences & devices |
| Owner-only | Billing Domains | No permission — restricted to the store owner |