Nexus One POS single-page documentation for setup, operations, stock, printing, sync, licensing, and report plugins.
This handbook replaces scattered HTML and markdown notes with one human-friendly guide. It is written against the current repo modules: admin, cashier, kitchen, stock operations, settings, sync center, backup and restore, licensing, device setup, receipts and invoices, and the report plugin runtime.
Legacy plugin import guidance has been cleaned up, stock and batch behavior has been merged into the main manual, tutorial flows were rewritten step by step, and the page now reflects the current receipt, invoice, sync, QR setup, licensing, and report plugin runtime behavior in the codebase.
Everything covered on this page
Use this as the master contents list. Every card jumps to a full section below, and the tutorial bank later in the page gives task-focused instructions for the jobs people actually do.
What Nexus One POS includes right now
The current application is not just a cash register. It combines cashier operations, admin management, catalog and stock control, supplier and finance workflows, reporting, plugin-based reporting, sync, backups, and device configuration inside the same product.
Core operating areas
- Admin workspace with inventory, people, finance, reports, settings, and user accounts.
- Cashier workspace with checkout, saved carts, split bills, credit sales, coupons, gift cards, and digital receipts.
- Kitchen role support and stock operations for purchase receiving, supplier cases, write-offs, and reports.
Business and workflow controls
- Business types: retail, restaurant, hospitality, salon, and pharmacy.
- Module toggles: core POS, refunds and exchanges, customer credit, supplier payables, manager approvals, cash drawer, online payments, table management, and business-specific workflow modules.
- Role-aware permission rules for admins, managers, cashiers, and kitchen users.
Technical foundations
- Setup wizard for local-only or remote sync deployments.
- Direct database sync profiles for MongoDB, MySQL, and PostgreSQL.
- License activation, secure stored keys, setup QR payloads, background sync, backup/restore, and report plugin runtime.
This page is aligned to pubspec.yaml app version 1.0.0+1, the current licensing flow, the batch-based inventory model, the updated stock operations screen, and the strict .nxpack-only report plugin workflow.
The shortest safe path from install to first live sale
If you are setting up a new shop or staging machine, follow this order. It keeps licensing, data mode, users, stock, and device testing in the right sequence so you do not have to redo work later.
- Launch the setup wizard and decide whether this device is local only, the main remote shop, or a terminal connected to a remote shop.
- If you are using remote sync, enter or scan the database profile and validate connectivity before you continue. The app supports direct DB profiles for MongoDB, MySQL, and PostgreSQL.
- Activate the license with your product key, or use the one-time 7-day grace period if you need temporary access while waiting for the final key.
- Fill in the business profile: store name, address, phone, business type, currency code, currency symbol, separators, and negative formatting rules.
- Enable the modules your team needs, especially refunds and exchanges, customer credit, cash drawer, manager approvals, supplier payables, online payments, or table management where relevant.
- Create at least one admin and one cashier account. Give each cashier the correct allowed departments, commission behavior, and drawer policy override if needed.
- Build the catalog in this order: departments, categories, subcategories, units, suppliers, products, add-ons, then initial product batches.
- Configure receipt printing, invoice printing, scanner behavior, and weight scale settings. Run device tests and diagnostics before going live.
- Process a test sale, print a receipt, open an invoice PDF, and verify that stock is reducing from the correct active batch.
- Open Sync Center and confirm there are no pending conflicts. Then create the first backup so you have a clean rollback point.
First-day checklist
- Setup completed and saved.
- License activated or grace period intentionally started.
- At least one admin account and one cashier account created.
- Catalog built with products that have batches and selling prices.
- Printer, scanner, and scale tested if hardware is in scope.
- First backup exported after test transactions pass.
Do not skip these
- Do not go live with cash payments until a shift and drawer workflow is confirmed.
- Do not import or restore data over a remote shop unless you are sure whether this device should become the main shop or a terminal.
- Do not install report plugins as loose .zip or standalone .nxrpt files. The runtime now expects .nxpack packages only.
Choose the right deployment shape before building data
Setup matters because it decides where the local database lives, whether the app should sync to a remote database, and whether the device is acting as the main shop or only as a terminal.
Local-only mode
Best for a single device shop or an isolated test machine.
- Data mode is stored as local_only.
- The app creates and normalizes a local DB folder automatically.
- No remote profile is required.
Main remote shop
Use this when one shop database should act as the source of truth for multiple devices.
- Data mode is remote_sync.
- The remote profile can target MongoDB, MySQL, or PostgreSQL.
- The setup flow checks whether the remote already contains data before allowing create or restore operations.
Terminal mode
Use this when the device should connect to an existing main shop.
- The saved remote device role becomes terminal.
- You can scan a setup QR or enter the remote profile manually.
- If the remote already has shop data, the wizard may automatically steer you toward terminal mode.
Remote profile fields you should prepare
- Engine: MongoDB, MySQL, or PostgreSQL.
- Host and optional port.
- Optional connection URI.
- Database name.
- Username and secure password.
- TLS, schema, auth database, read preference, application name, and connection timeout where relevant.
QR setup behavior
- QR provisioning is only for remote sync setups.
- The payload stores the remote profile and optional remote password.
- Mobile validation rejects loopback hosts like localhost or 127.0.0.1.
- Private LAN hosts are allowed but raise a warning so operators remember the mobile device must be on the same network.
If the selected remote database already contains shop data, stop and decide whether this device should connect as a terminal or whether the remote should be erased and rebuilt from a backup or a new main shop setup. Choosing the wrong option can overwrite live data.
| Scenario | Recommended path | Why |
|---|---|---|
| Brand-new single register | Local-only mode | Fastest setup, no network dependency. |
| Head office or store server machine | Main remote shop | Becomes the shared data source for terminals. |
| Additional checkout counter | Terminal mode via QR | Fastest and least error-prone terminal enrollment. |
| Replacing a broken device with an old backup | Restore after clean remote check | Keeps setup, settings, and data aligned to the backup snapshot. |
How to obtain, activate, validate, and troubleshoot a product key
The app stores the activation key securely, validates it with a device ID, and gates app access if activation is missing or fails after the grace window expires.
End-user activation flow
- Obtain the product key from platform.nexuscloud.uk.
- Open the setup wizard or the activation screen.
- Enter the key exactly as issued and click activate.
- The app verifies the key using the device ID, current platform, and app version.
- After success, the activation state is saved and the app can proceed normally.
Grace period behavior
- The app supports a one-time 7-day grace window.
- Grace is intended for controlled temporary use while waiting for a real product key.
- Once grace expires, the app can route back to activation until a valid key is entered.
- The home panel shows status, masked key preview, last validation check, and last successful validation time.
Go to platform.nexuscloud.uk, complete the purchase or subscription step required for your deployment, copy the activation key, then return to Nexus One POS and activate it in the setup wizard or the dedicated activation screen.
| Validation outcome | Meaning | What to do |
|---|---|---|
| valid | The key is accepted and activation is stored. | No further action needed. |
| skipped_offline | Internet was unavailable during a scheduled check. | Reconnect later and validate again. |
| config_missing | The build does not have license API settings. | Use a correctly configured build or add the bundled and environment settings. |
| invalid_key, key_revoked, key_expired | The key is not usable for this device or has expired. | Confirm the correct key in the platform portal. |
| device_limit_reached or app_mismatch | The license is valid in principle but not for this device or build. | Review device allocation and version entitlement. |
| network_error or rate_limited | The server could not be reached or told the client to slow down. | Retry later with a stable connection. |
Technical build configuration
- Environment keys include NEXUS_LICENSE_VERIFY_URL, NEXUS_LICENSE_APP_ID, NEXUS_LICENSE_APP_SECRET, and NEXUS_LICENSE_APP_VERSION.
- Bundled config loaders also read assets/env/license.debug.json or assets/env/license.release.json.
Validation timing
- Stored license validation is skipped if the last successful check is still fresh.
- The default periodic recheck interval is every 6 hours.
- The app also triggers checks during startup and resume flows.
Create staff correctly before handing over the register
User accounts are stored in the users collection and can carry role defaults plus role-specific overrides for departments, permissions, commission, and drawer handling.
Cashier account fields you should understand
- Username: must be unique among active users.
- Display name: appears in operational flows and printed documents.
- Allowed departments: limits where the cashier can work.
- Commission enabled and commission rate %: optional extra pay logic for cashiers.
- Cash drawer policy override: use business default, tracked drawer, no drawer tracking, or auto-managed drawer.
Permission tuning basics
- Managers can override a smaller set of sensitive admin permissions such as users, settings, approvals, drawer, customers, customer receivables, and supplier payables.
- Cashiers only edit POS-relevant permissions such as discounts, refunds, save/load cart, split bills, manual price overrides, drawer open, close shift, and stock management.
- Kitchen users are scoped for kitchen operations and should not receive cashier or admin actions unless you have a special workflow reason.
Create a dedicated test cashier account and let staff practice on that account before you assign real commissions, drawer overrides, or department limits to live operators.
- Open Admin > User Accounts and create a new user.
- Enter display name, username, and password.
- Select the role. For a checkout employee choose cashier.
- Choose the departments or workspaces the cashier is allowed to use.
- Turn on commission only if your business pays commission from net sales before tax.
- Set the drawer policy override only if this cashier should behave differently from the business default.
- Review the editable POS permissions and disable anything this cashier should not do without help.
- Save the account, sign in on a test run, and confirm the menus match the intended role.
Understand role definitions and permission matrices
Roles and permissions work together to give staff exactly the access they need. The system supports role-level defaults and per-user overrides so you can fine-tune without creating new role types.
| Role | Best For | Key Permissions | Typical Restrictions |
|---|---|---|---|
| Admin | Owner, system administrator, lead manager | All admin areas, all POS actions, full user management, full settings access, approvals, sensitive operations | None - full access |
| Manager | Store manager, supervisor, lead staff | Most admin areas, POS actions, staff oversight, specific admin permissions can be restricted per business | Often restricted from users, settings, licensing, or supplier payment approval |
| Cashier | Checkout staff, customer service representative | Checkout, discounts, refunds, customer look-up, cart save/load, split bills, cash drawer, close shift | No access to admin areas, inventory management, or staff accounts |
| Kitchen | KDS operator, production staff, order fulfillment | Kitchen display system only, order viewing, status updates | No checkout, admin, or inventory management access |
Admin-level permission categories
- User management: create, edit, delete user accounts.
- Settings access: business profile, workflows, templates, device config, database settings.
- Financial approval: approve refunds, customer credits, discounts over limit, manager approvals.
- Drawer management: open/close cash drawer, drawer reconciliation, float adjustments.
- Customer receivables: manage customer credit limits and outstanding balances.
- Supplier payables: approve supplier payments and manage accounts payable.
- Backup and restore: create and restore from backup files.
- System maintenance: diagnostics, factory reset, sync management.
Cashier-level permission options
- Discounts: apply discounts to sales.
- Manual price override: manually override product prices at checkout.
- Refunds and exchanges: initiate refund or exchange workflows.
- Save and load cart: temporarily save and resume cart items.
- Split bills: divide a sale into multiple payments.
- Customer lookup: search and attach customer records.
- Drawer operations: open cash drawer, view drawer status.
- Close shift: finalize and close the shift summary.
- Stock visibility: view remaining stock when scanning products.
Create a base cashier role with sensible defaults, then adjust per-user permissions for your senior staff or trusted cashiers. This avoids maintaining multiple role types and simplifies training.
Build departments, categories, suppliers, and products in the right order
Product creation depends on the catalog around it. The smoothest workflow is to create the reference structures first so product rows can reuse them instead of forcing manual cleanup later.
Recommended catalog order
- Departments
- Categories
- Subcategories
- Units
- Suppliers
- Products
- Add-on groups
- Initial batches and restock records
Useful product fields in the current model
- Name, description, image, barcode
- Department, category, optional subcategory
- Stock tracking type
- Minimum and maximum stock levels
- Tags, active status, variant flag
- Add-on groups
- Batches with batch number, supplier, SKU, expiry, stock, cost, and selling price
The department management flow supports more than a name. It can also carry operational focus, storage zone, and notes, which makes it a useful place to mirror your real-world layout such as chilled drinks, fresh produce, front counter items, or back-room consumables.
- Create departments that reflect the way your team works physically, not just the way you want reports to look.
- Add categories under each department and subcategories only if they make searching, stock reporting, or cashier navigation easier.
- Create units and suppliers before adding products so batch-level supplier and unit fields are ready.
- Add products with clean names, barcodes, tags, stock levels, and active status.
- Attach add-on groups where the item needs sizes, toppings, extras, or similar selectable modifiers.
- Finish by creating or reviewing the first batch so the product has usable stock and a live selling price.
Product manager behavior to remember
- The product screen prepares departments, categories, subcategories, units, and suppliers before editing rows.
- The page can keep a preferred batch and sync common fields like SKU, supplier, cost price, selling price, expiry date, and stock totals from that batch.
- Products can start with a seed batch automatically so batch-driven inventory is ready from the first save.
Data quality habits
- Do not leave barcodes and SKUs blank if you expect rapid stock lookup or supplier return work later.
- Keep department and category names short and stable so filters stay readable.
- Deactivate products instead of deleting them when you need sales history to remain consistent.
Complete product lifecycle from creation to retirement
Products are the heart of your business. Each product can carry extensive metadata, linkages to batches, variants, images, barcodes, and operational settings that control how it behaves during sales and reporting.
Core product fields
- Name and description: visible to cashiers and customers.
- Product image: thumbnail display on cashier screen and receipts.
- Barcode and SKU: for fast scanning and supplier tracking.
- Department, category, subcategory: organization and filtering.
- Stock tracking type: whether to track by quantity, weight, volume, or custom units.
- Variant flag: marks the product as part of a variant set.
- Tags: custom labels for filtering and reporting.
Stock and operational settings
- Minimum stock level: triggers reorder alerts when inventory falls below this.
- Maximum stock level: threshold for overstocking warnings.
- Active status: controls whether the product appears in checkout.
- Returnable and refundable: whether the product can be returned or exchanged.
- Markup percentage: automatic pricing calculation from cost.
- Preferred batch: which batch to use for common editing.
Use clear, consistent names across your catalog. Avoid abbreviations unless they are universal, and include key details like size or flavor when they affect pricing or stock tracking.
Product variants workflow
- Create a base product and mark it as a variant product.
- Create related product SKUs or batch numbers that represent size, color, or other differentiators.
- Link variant products together in the variant group so reporting captures the full family.
- Each variant can have its own batches, pricing, and stock levels.
When to deactivate vs delete
- Deactivate: for seasonal, discontinued, or temporarily unavailable items. Keeps sales history intact.
- Delete: only for data entry mistakes before any sales are recorded.
- Always prefer deactivation to preserve historical transaction accuracy.
- Open Admin > Inventory > Products.
- Click create and enter the product name, description, and barcode.
- Assign the department, category, and optional subcategory.
- Choose the stock tracking type based on how you physically manage this item.
- Set minimum and maximum stock levels to match your reorder thresholds.
- Upload a product image if you want cashiers to recognize it visually.
- Add any tags that help with filtering or reporting.
- Mark as active if it is immediately available for sale.
- Save the product, then create or attach the first batch with cost and selling prices.
Set selling prices, manage discounts, and run promotional campaigns
Pricing works at both the batch level and at promotion time. Use batch-level pricing for normal sales, and promotions or coupons for temporary deals.
Batch-level pricing
- Each batch carries its own cost price and selling price.
- The batch selling price determines the checkout default unless overridden by a promotion or coupon.
- Markup percentage can automatically calculate selling price from cost if needed.
- Tiered pricing by quantity can be set so bulk purchases receive better unit pricing.
Promotional pricing types
- Fixed discount: reduce the price by a fixed currency amount.
- Percentage discount: reduce the price by a percentage (e.g., 25% off).
- Bundle pricing: sell multiple items together at a special rate.
- Tiered pricing: different unit prices for different quantity ranges.
- Seasonal markup: increase prices temporarily for high-demand periods.
Coupon management
- Create coupons in the Finance section with code, discount value or percentage, valid date range, and usage limits.
- Coupons can apply to specific products, categories, or the entire sale.
- Per-use or total-use limits prevent over-redemption.
- Track coupon usage and redemption rates for reporting and analysis.
Discount controls during checkout
- Cashiers can apply per-item discounts if permission is granted.
- Line-level discount percentages override batch prices temporarily.
- Manager approval can be required for discounts exceeding a threshold.
- All applied discounts are logged in the sale record and receipt.
Be careful when adjusting batch prices retroactively. It can affect FEFO ordering and may create confusion if similar batches have different prices. Consider creating new batches instead for new promotional periods.
Create, track, and receive purchase orders from suppliers
Purchase orders are the formal mechanism to request products from suppliers. Track them through creation, shipment, and receiving so your inventory stays accurate and supplier payments are matched to deliveries.
Purchase order workflow stages
- Draft: create and edit the order before sending.
- Sent: formally submitted to the supplier.
- Partially received: some items have arrived.
- Received: all items delivered and accepted.
- Closed: fully invoiced and reconciled with payments.
Creating a purchase order
- Open Admin > Stock Operations > Orders.
- Select the supplier.
- Add product lines with quantity, unit price, and expected delivery date.
- Review totals and include notes for special handling or delivery instructions.
- Save as draft then finalize when ready to submit.
Receiving procedures
- Match the delivered products to the purchase order using barcode scanning or manual selection.
- Confirm quantities and inspect for damage or defects.
- If everything matches, mark the line as received.
- Any discrepancies or damaged items are logged in the supplier case flow instead.
- Once all lines are received or disputed, close the receiving process.
Auto-reordering setup
- Set minimum reorder points on products to trigger automatic PO suggestions.
- The system can recommend suppliers and quantities based on historical usage.
- Review calculated reorder quantities and adjust if needed.
- Generate multiple POs at once for selected products and suppliers.
Always receive new stock into new batches unless it is genuinely from the same lot with the same expiry. This keeps your FEFO ordering clean and prevents mixing old and new stock prices.
Manage supplier profiles, invoices, and payment tracking
Suppliers are partners in your business. Track their invoices, payment terms, performance history, and disputes so you maintain healthy relationships and accurate accounts payable records.
Supplier profile fields
- Company name, contact name, and title
- Phone, email, and website
- Mailing and billing addresses
- Tax ID or registration number
- Payment terms (e.g., net 30, net 60)
- Default delivery lead time
- Account notes and credit limit
Supplier invoice matching
- Receive supplier invoices and match them to your purchase order records.
- Verify quantities, prices, and line items match the PO.
- Log any variance or dispute in the supplier case system.
- Mark as approved once verified or as pending invoice correction if needed.
Supplier payment tracking
- Track all outstanding supplier balances in the Finance > Accounts Payable view.
- Group invoices by supplier and aging bucket (current, 30 days, 60 days, 90+ days).
- Record payment dates and methods for reconciliation.
- Generate aging reports for month-end financial statements.
Supplier performance management
- Review on-time delivery rates from receiving records.
- Track quality issues and damage cases by supplier.
- Maintain supplier scorecard or notes for review meetings.
- Elevate chronic issues to disputes or contract renegotiations.
When a supplier issues a credit note for returned or defective goods, create a credit note record in the system and link it to the original invoice. This reduces your accounts payable and maintains historical accuracy.
Report, track, and manage damaged stock
When products are damaged during receiving, storage, or transport, use the damage handling workflow to document the loss, allocate cost, and trigger potential supplier claims or replacements.
Damage report fields
- Batch and product: which exact batch is affected.
- Quantity damaged: how many units cannot be sold.
- Damage type: packaging, product defect, dent, leak, breakage, corrosion, etc.
- Discovered date: when the damage was detected.
- Root cause: shipping, handling, storage, manufacturing, or unknown.
- Estimated cost: retail or cost value of the loss.
- Supplier claim status: pending claim, claim submitted, approved, rejected, or not claimable.
Damage workflow steps
- Discover or receive a damage report from staff.
- Create a damage record immediately to preserve evidence and timing.
- Take photos if needed and attach to the record.
- Determine whether to discard, attempt repair, or donate the items.
- Reduce stock from the affected batch accordingly.
- If supplier is at fault, initiate a supplier case or claim.
- Track claim submission and resolution in the supplier module.
Always estimate and record the financial impact of damage. This helps determine legitimate supplier claims and makes insurance documentation easier if applicable.
Supplier damage claims
- Link damage records to the original PO or supplier case.
- Calculate claim amount considering restocking fees or partial recovery if applicable.
- Submit claim documentation via email or the supplier portal if integrated.
- Track claim status through approval, payment, or rejection.
Disposal and recovery
- Discarded items should be logged for potential tax deduction or insurance purposes.
- Some damaged goods can be salvaged, sold at discount, or donated.
- Partial recovery reduces the net loss and should be recorded separately.
- Maintain disposal records for audit trails and compliance.
Manage expired, obsolete, or unsellable stock removal
Write-offs are formal records of inventory that can no longer generate revenue. This includes expired stock, obsolete items, long-term overstock, and shrinkage that cannot be recovered.
Write-off categories
- Expiration: products past their usable date.
- Obsolescence: discontinued products or replaced models with no further demand.
- Overstock: inventory that has not sold within a specified aging period.
- Shrinkage: unaccounted loss due to theft, miscounting, or handling errors.
- Quality migration: items that have deteriorated in storage but not technically expired.
- Recall: products removed due to safety or regulatory issues.
Write-off procedure
- Identify candidates using stock aging reports and inventory reports.
- Create a write-off batch or journal entry for each category.
- Document the batch numbers, quantities, reasons, and estimated loss value.
- Mark affected batches as inactive or closed after write-off.
- Arrange for disposal or salvage processing where applicable.
- Record the financial impact in expense reports for accounting.
Regular write-offs indicate inventory control issues. Use the data to improve minimum/maximum stock settings, supplier selection, and demand forecasting to reduce future write-offs.
Write-off reporting
- Run write-off summary reports by category, month, or supplier.
- Calculate write-off cost as a percentage of total inventory.
- Use trends to identify problem areas in ordering or demand planning.
- Review with managers to identify systemic issues or training needs.
Financial treatment
- Write-offs are typically expensed rather than capitalized.
- Include write-off values in cost of goods sold or operational expense lines.
- For tax purposes, document the business reason for each significant write-off.
- Work with your accountant to ensure proper treatment in financial statements.
Complete refund and exchange workflows with settlement tracking
Refunds and exchanges handle customer returns. The system tracks the original sale, reasons, refund or exchange settlement, and impacts on inventory, revenue, and supplier accounting.
Refund policy configuration
- Refund window: days within which a full refund is allowed (e.g., 14 days).
- Extended returns: whether returns beyond the window are allowed at a discount.
- Restocking fee: percentage deducted if a full window return is allowed but not requested immediately.
- Non-refundable skus: product categories or specific items that cannot be returned.
- Condition requirements: whether items must be unopened, unused, or in original packaging.
- Original or equivalent price: refund based on original receipt price or current price.
Settlement calculation logic
- Even exchange: customer receives exact replacement with same cost.
- Refund to customer: cash or credit returned when original price exceeds replacement.
- Customer top-up: customer pays difference when replacement costs more.
- Restocking deduction: percentage deducted from refund amount based on condition.
- Credit note: refunds can issue store credit instead of cash refund.
Refund workflow execution
- Locate the original sale via receipt number, transaction ID, or customer record.
- Verify the item meets refund policy conditions (within window, condition met, not restricted).
- Calculate the eligible refund amount considering window, restocking fee, replacement item if any.
- Select settlement method: cash refund, credit note, exchange, or partial refund.
- Confirm payment allocation and any approvals required.
- Finalize the refund, which updates stock, accounting, and sales history.
- Print refund receipt and provide documentation to customer.
Exchange workflow execution
- Locate and verify the original sale eligibility as above.
- Select the replacement product and quantity.
- Calculate whether this is even exchange, requires refund to customer, or customer top-up.
- Confirm stock availability of the replacement before finalizing.
- Process the exchange, updating stock for both return and new item.
- Settle any price difference via cash, credit, or invoice.
- Print both original refund and new sale documentation.
Refunds reduce accounts receivable, reverse commission payments if applicable, and may require credit note generation for supplier returns if the item came from stock. Ensure your staff understands these linked effects.
Refund and exchange approvals
- Refunds outside the normal window may require manager approval.
- Large refund amounts can trigger approval thresholds.
- Refunds on non-refundable items require explicit override and approval.
- Approvals are logged with timestamp and approver name for audit.
Daily procedures and month-end reconciliation
Reconciliation ties sales, payments, inventory, and supplier accounts together to ensure financial accuracy. Regular reconciliation catches errors early and maintains confidence in reporting.
Daily reconciliation checklist
- Count physical cash against recorded drawer balances.
- Compare cash transactions to checkout records.
- Verify split payments and multi-tender transactions were recorded correctly.
- Check online payment capture logs against batch submission receipts.
- Review refund and exchange entries for accuracy and approval status.
- Confirm all sales documents (receipts, invoices) printed and delivered.
Discrepancy resolution process
- Identify the exact amount and transaction involved.
- Check for duplicate entries, reversals, or missing entries.
- Review corresponding customer or supplier records.
- Consult staff for possible manual entry or processing errors.
- Document the resolution in notes or adjustment records.
- If unresolved, mark for manager or accountant follow-up.
Month-end closing procedures
- Halt new transactions during a cut-off window or mark period boundary.
- Run reconciliation of all sales, payments, and adjustments for the period.
- Close pending customer credit accounts or hold approval for outstanding invoices.
- Match supplier invoices to purchase orders and received goods.
- Process and approve all supplier payments for the month.
- Inventory count and write-off any expiration or shrinkage found.
- Generate accounting exports or trial balance reports.
- Review with management and finance before finalizing the period.
Cashier drawer reconciliation
- Each cashier reconciles their drawer at end of shift.
- Count cash physically and compare to system balance.
- Investigate variances immediately: missing sales, over-tenders, counterfeit.
- Document responsibility if shortage exceeds tolerance threshold.
- Manager signs off on drawer reconciliation before cashier leaves.
Daily and weekly reconciliation discipline prevents month-end chaos. The longer discrepancies sit unresolved, the harder they become to investigate and trace.
Create modifiers customers can choose at checkout
Add-ons are stored as groups on the product. The cashier flow then opens an add-on selection sheet before the item is added to the cart, and the selection is carried through checkout, receipts, reports, and refunds.
How add-on groups are structured
- Group name: the visible label, such as Size, Toppings, Extras, or Cooking Preference.
- Selection mode: single or multiple.
- Required: whether the cashier must choose something before continuing.
- Min selections / max selections: the allowed range.
- Options: each option has a name, active flag, default flag, and optional priceDelta.
What the cashier sees
- A modal titled Choose Addons.
- Each group listed separately with its selectable options.
- Validation if minimum or maximum selection rules are broken.
- An apply button that shows the total extra price from the chosen add-ons.
Selected add-ons are summarized in the cart and sale history, stored with groupName, option name, and priceDelta, and then printed in sales documents, digital receipts, reports, and refund flows.
- Open the product in the product management page.
- Use the Addons field to open the add-on group manager.
- Create a group and give it a clear business name.
- Choose whether the customer may select only one option or multiple options.
- Set required, minimum, and maximum selections to match the business rule.
- Add the options and enter a positive, zero, or negative price delta for each option if needed.
- Save the add-ons, save the product, then test the item from the cashier screen.
Understand the current batch-first inventory model
Inventory in the current repo is centered around product batches. Common product fields can still exist for compatibility, but the active source of stock, cost, price, supplier, and expiry is the batch layer.
What a batch represents
- Batch ID and batch number
- Supplier and SKU
- Unit, cost price, selling price
- Current stock, last restock date, purchase date
- Expiry date and active state
- Minimum and maximum stock thresholds
How the app chooses batches
- Direct batch ID match is used first if available.
- If only batch number is known, the app looks for active matching batches for that product.
- When multiple active matches exist, batches are sorted using FEFO: earliest expiry first, then earlier purchase or creation timing.
- Soft-deleted or inactive batches are ignored for active stock use.
A batch counts as expired when its expiry date is before the current day. That means a batch expiring today is still usable today, but one dated before today should no longer be treated as live stock.
Stock operations areas
- Orders: purchasing and receiving preparation.
- Supplier cases: supplier issues, credits, exchanges, and refund-now scenarios.
- Write-offs: damaged, expired, or otherwise removed stock.
- Reports: purchase register, receipt register, supplier case register, movement register, reorder alerts, stock transfers, approval history.
Recommended daily batch workflow
- Review pending purchase orders and receiving tasks.
- Receive stock into the correct existing batch or create a new batch if the supplier lot is genuinely new.
- Use supplier case and write-off tools for damaged, expired, or disputed stock instead of silently editing counts.
- Run report views to watch low stock, reorder alerts, and unusual movement patterns.
- Clean up finished and inactive batches once they are no longer needed operationally.
| Batch term | Meaning in practice |
|---|---|
| Active batch | Eligible for sales or restock targeting. |
| Expired batch | Past its usable day and should be removed from selling use. |
| Preferred batch | The batch whose core fields are mirrored back to common product fields for editing convenience. |
| FEFO sorting | Earliest expiry first, then earlier purchase or creation timing. |
| Synthetic fallback | A technical fallback used only when explicitly allowed during restock resolution if the requested batch record does not already exist. |
How sales, discounts, credit, coupons, gift cards, and refunds fit together
The cashier side of the app is richer than a simple pay screen. It supports add-ons, split checks, split tender allocations, customer credit, coupons, gift cards, online payments, sales document generation, and refund or exchange settlement logic.
Normal checkout flow
- Select or scan products into the cart.
- Choose add-ons when prompted.
- Attach a customer if credit, loyalty, digital receipts, or detailed invoicing are needed.
- Apply discounts or coupons where permission and module rules allow.
- Accept tender using cash, split allocations, online payment capture, or gift card.
- Print a receipt, invoice, or both, and optionally open the invoice PDF.
Special cashier capabilities
- Split bills and split sale parts.
- Customer credit sales, including approval checks and credit limit enforcement.
- PayHere online payment capture when enabled and configured.
- Gift card redemptions and balance checks.
- Coupons, loyalty, saved carts, and sale edits.
If your business uses drawer tracking, open a shift before taking cash. The checkout flow can block cash acceptance if the drawer and shift state are not ready.
Refund and exchange behavior
- Refund policy supports a default refund window, optional refunds after the window, restocking fee %, non-refundable product SKUs, and customer initiation rules.
- Refunds can calculate customer payout, exchange credit, even exchange, or customer top-up depending on the settlement balance direction.
- Refund and exchange flows can touch stock, payment allocations, customer credit, supplier accounting, and sales history.
Sales documents
- Checkout print mode can be receipt, invoice, or both.
- Receipts are optimized for 80mm thermal output.
- Invoices can open as PDF or print through system printer support.
- Add-ons, taxes, discounts, settlement status, and payment allocation summaries can appear in the document layout.
Set up receipts, invoices, scanners, scales, and digital delivery
The settings area separates hardware setup from document design. Configure the device connection first, then adjust the document template, then run test actions and diagnostics.
Receipt printer modes
- USB: supported on Android and Windows.
- Bluetooth: supported on Android and iOS.
- Network: supported across platforms.
- Auto print, auto reconnect, reconnect attempts, discovery, test print, and recovery are all part of the setup flow.
Invoice printing and PDFs
- Invoice documents use PDF rendering and system printer listing.
- Paper presets include 80mm receipt and A4 invoice behaviors.
- Saved document printer support currently covers invoice-role printer routing.
Scanner and scale support
- Scanner modes: keyboard wedge and camera assist.
- Scanner prefix and suffix stripping are built in for cleanup.
- Weight scales support manual mode and network mode, with stable sample validation and protocol profile support.
Document template blocks
- store_header
- document_meta
- customer_summary
- items
- totals
- payment_summary
- notes_terms for invoices
- footer
Digital receipt options
- Email receipts use SMTP host, port, username, password, sender name, and sender email.
- SMS receipts use a configurable HTTP base URL and related account credentials.
- Receipt delivery jobs are stored with status such as pending, processing, sent, failed, or skipped.
Choose the device mode, discover or enter the target, save the settings, run a connection test, run a real print or scan test, then save diagnostics. If you change networks or hardware later, repeat the connection test before you reopen checkout lanes.
Built-in reporting plus installable NXPACK report plugins
The app includes sales, finance, and stock reporting surfaces, but also supports packaged report plugins through the Report Plugins Center. The current runtime only accepts the stricter .nxpack package format.
Report Plugins Center workflow
- Open Finance > Report Plugins Center.
- Click Install Package and select a .nxpack file.
- If the same version already exists, choose whether to force replace it.
- Enable or disable installed plugins as needed.
- Run a plugin, fill its parameter sheet, and generate the report.
- Use Download Template to export a starter plugin package.
Strict import rule
- Supported install format: .nxpack.
- Unsupported legacy formats: standalone .nxrpt, standalone .nxrpt.json, and generic plugin zip files.
- Package name must match the internal plugin folder name.
my_plugin.nxpack
+-- plugin.manifest.json
+-- my_plugin/
+-- my_plugin.nxrpt
+-- README.md
+-- package.json
+-- assets/
+-- icons/
+-- styles/
Current supported plugin runtime surface
- Parameter types: text, number, integer, bool, date, dateTime, dateRange, select, radio, multiSelect, json
- Data sources: sales, income, expenses, purchases, inventory, supplierBalances, customerReceivables
- Layout blocks: title, header, section, text, condition, divider, spacer, metricsRow, table, list, formatShowcase, iconShowcase, footer, pageBreak
- Formats: currency, percentage, date, dateTime, number, decimal, badge, text
- Auto-fill sources: departments, suppliers, customers, categories, subcategories, units, products, salesStatus, paymentMethods, expenseTypes, incomeSources, and table:<name>
Validation rules that often fail first
- Missing plugin.manifest.json at the archive root.
- Missing README.md, package.json, or required asset directories.
- Manifest plugin ID, report ID, report name, or version mismatch.
- Report schema version outside the package requirement range.
- Re-importing the same version without force replace, or importing an older version than the installed one.
| Sample package in repo | Version | Purpose |
|---|---|---|
| all_fields_showcase.nxpack | 2.1.0 | Advanced showcase of almost every parameter type, data source, layout element, icon, and formatting feature. |
| inventory_reorder_velocity.nxpack | 1.0.0 | Inventory reorder and sales velocity guidance for replenishment planning. |
| sales_cashflow_summary.nxpack | 1.0.0 | Daily sales, income, expense, and cashflow snapshot. |
| supplier_payables_aging.nxpack | 1.0.0 | Outstanding supplier balance aging analysis. |
The app can export a starter package called report_plugin_template.nxpack. Use that as the safest starting point because it already includes the required manifest, report file, README, package details, icon placeholder, and theme JSON.
Deep sales, inventory, financial, supplier, and customer analysis
Beyond plugins, the app includes built-in reporting views for operational analysis. Use these reports daily to understand performance, spot issues, and make data-driven decisions.
Sales and revenue reports
- Daily sales summary: total revenue, item count, payment method breakdown, by hour or by cashier.
- Product sales analysis: top sellers, bottom performers, sales trends by product or category.
- Sales by department: revenue and margin by department for store layout optimization.
- Cashier performance: sales volume, average transaction size, payment methods handled, customer count.
- Discount and promotion impact: how much revenue was given away versus retained.
- Payment method analysis: cash vs card vs online, tender processing efficiency.
Financial reports
- Income statement: sales, cost of goods, gross profit, operating expenses, net profit.
- Cash flow mapping: when money moves in versus out across payables and receivables.
- Expense tracking: categorized operational expenses for cost control.
- Tax liability calculation: sales tax, VAT, or other withholdings collected or owed.
- Margin analysis: gross and net margins by product, department, or time period.
- Budget vs actual: compare planned revenue and expenses to actual results.
Inventory and stock reports
- Stock-on-hand: current quantity by product or batch.
- Stock aging: how long items have been in inventory, useful for identifying obsolescence.
- Reorder alerts: products that fell below minimum levels during the period.
- Stock movement: inbound receives, sales, adjustments, and write-offs by product.
- Overstock analysis: slow-moving items that tie up cash.
- Batch expiry calendar: upcoming expirations by date range.
- FEFO compliance: verify that oldest stock is being sold first.
Supplier and payables reports
- Supplier invoice register: all invoices by supplier with dates, amounts, and payment status.
- Accounts payable aging: outstanding balances by age bucket (current, 30, 60, 90+).
- Supplier performance: on-time delivery, quality issues, average order value.
- Purchase register: all received goods with cost and receipt date for cost accounting.
- Supplier case register: damaged goods, returns, and disputes by supplier.
- Cost price trends: track how supplier pricing changes over time.
Customer and receivables reports
- Customer lifetime value: total purchases by customer over time.
- Accounts receivable aging: outstanding customer credit sales by age.
- Customer credit limit utilization: who is near or over their credit limit.
- Transaction history: all purchases by customer for follow-up or pattern analysis.
- Gift card and loyalty: balance reports and redemption analysis.
- Customer segmentation: high-value, frequent, lapsed, or one-time customers.
Refund and exchange reports
- Refund register: all refunds by date, product, reason, and amount.
- Refund rate by product: which products have high return rates, indicating quality or fit issues.
- Exchange tracking: items swapped and price adjustments made.
- Refund impact on revenue: gross sales minus refunds to get net revenue.
- Approval tracking: refunds requiring manager approval and their resolution.
Use Email or export features to deliver daily, weekly, or monthly reports to managers and accounting without requiring them to log in. Schedule reports during off-peak hours if they run long.
Reporting best practices
- Run daily sales and cash reports to spot issues the same day.
- Review inventory reports weekly to stay ahead of stockouts.
- Month-end financial reconciliation should match sales, refunds, and payments exactly.
- Use custom date ranges and filters instead of generic monthly snapshots.
- Benchmark performance month-over-month and year-over-year.
Operational decision examples from reports
- Product reordering: check reorder alerts and aging stock before placing POs.
- Staffing and scheduling: use sales by hour to plan cashier coverage.
- Pricing adjustments: review margin by product and compare to market.
- Promotional planning: analyze discount impact on revenue to justify future campaigns.
- Supplier negotiations: use performance reports as basis for terms discussions.
Monitor queues, unresolved issues, and background sync health
The Sync Center is where you confirm that outbound changes, incoming changes, and recovery operations are healthy. It is especially important before backups, remote restores, and end-of-day shutdowns.
What Sync Center shows
- Pending outbox count
- Retry queue count
- Dead-letter and unresolved issue count
- Outbox item details and queue flow
- Repeated requeue diagnostics
- Background helper status on Windows
Manual controls you should know
- Push Now to send local changes immediately.
- Pull Now to fetch remote changes immediately.
- Retry or discard unresolved local copies in the dead-letter area.
- Pause or resume the Windows background helper if closed-app sync must be suspended temporarily.
Pull sync can be paused while unresolved issues exist. If you see dead letters or unresolved conflicts, fix them before you assume the terminal is current. This matters for inventory, refunds, and backup safety.
Background helper summary
On Windows, a helper mode can continue conservative sync activity after the main UI is closed. It focuses on outbox push, checkout queue recovery, issue recovery, and incremental pulls of changed records. Use it when you need background continuity but still want safety-first sync behavior.
When to open Sync Center immediately
- After a network outage
- Before exporting a backup
- Before restoring to a remote shop
- When terminals appear out of date
- When a plugin or report seems to miss fresh transactional data
Protect the shop before upgrades, hardware changes, or repairs
Backup is more than a file export. In remote sync mode, it can lock terminals, drain queues, repair or validate databases, and capture settings and setup metadata as part of the bundle.
What a backup can include
- Collections and local store data
- App settings
- Setup configuration
- Admin and cashier databases
- Sync metadata
- Users, business profile, and business config data if present
What can block a backup
- Pending outbox entries
- Retry queue entries
- Dead-letter conflicts not yet resolved
- Database integrity validation failures
- In remote mode, terminals that cannot be safely locked for the operation
Before every major catalog import, plugin rollout, or remote setup migration, make a clean backup after Sync Center shows no unresolved issues. That gives you a known-good recovery point with matching settings, sync metadata, and operational data.
Restore planning checklist
- Analyze the restore source first.
- Decide whether the target remote shop should be erased or whether this device should switch to terminal mode instead.
- Make sure users understand terminal reset notices after restore actions.
- Expect remote shop safety prompts if the destination already contains entities.
Remote restore safety
- The app can lock other terminals during backup operations.
- Restore and backup operations both benefit from a clean sync queue.
- If unresolved sync issues remain, backup can stop on purpose instead of producing a misleading snapshot.
Task-by-task guides for real operators and admins
These tutorials are intentionally written in plain language. Expand only the workflow you need, or use the page search to jump straight to a task.
How to create a cashier account
- Open Admin > User Accounts and choose the add or create action.
- Enter a unique username, display name, and password.
- Set the role to cashier.
- Select the allowed departments or workspaces for this cashier so they only see the correct selling area.
- If commission is part of your payroll model, enable commission and enter the rate percent.
- If the cashier needs custom drawer behavior, set a drawer policy override. Otherwise leave it on the business default.
- Review the POS permissions and disable high-risk actions that should require manager help.
- Save the user and test sign-in from a non-admin session before the first live shift.
How to set up departments, categories, and products
- Create departments first. Use names that match how the team stocks and sells items.
- Create categories inside each department, then subcategories only if they make lookup or reporting easier.
- Add units and suppliers before you add product rows.
- Create the product with name, barcode, department, category, optional subcategory, stock tracking type, and min or max levels.
- Set active status, tags, and any variant or reference information you need.
- Finish by opening the batch editor or preferred batch fields so the product has stock and a selling price.
How to create a product add-on and use it
- Open the product and click the Addons editor.
- Create an add-on group such as Size, Toppings, or Extras.
- Choose single or multiple selection mode.
- Set whether the group is required, then enter minimum and maximum selections.
- Add options and set each option's extra price with priceDelta if the choice changes the price.
- Save the group, save the product, then add the product from the cashier screen.
- When the Choose Addons sheet appears, select the options and apply them.
- Confirm the cart, printed receipt, and sales history show the add-on summary correctly.
How product batches work
- Think of each batch as one stock layer with its own quantity, cost, price, supplier, SKU, and expiry.
- When creating a new product, keep or create the seed batch so the item has a valid first stock record.
- When restocking the same lot, update the existing batch. When receiving a new lot, create a new batch.
- Keep the correct preferred batch so common edit fields reflect the batch you actually want to maintain.
- Use expiry dates properly because FEFO sorts earlier expiry batches first.
- Deactivate or close finished batches instead of mixing old and new stock in one record unless it is truly the same lot.
- Review stock operations reports and reorder alerts regularly so the batch list stays clean and meaningful.
How to set up a receipt printer
- Open Settings > Hardware and Devices.
- Select the printer mode: USB, Bluetooth, or network.
- Discover the printer or enter the address and identification details manually.
- Save the printer settings.
- Run a connection test. If it fails, fix the connection before enabling auto-print.
- Run a real text or receipt test print.
- Turn on auto-print and auto-reconnect only after the test succeeds reliably.
How to customize receipt and invoice templates
- Open Settings > Templates and Design.
- Select whether you are editing the receipt or invoice template.
- Review the supported blocks such as store header, document meta, customer summary, items, totals, payment summary, notes and terms, and footer.
- Adjust field visibility per block and choose the correct accent color or branding details.
- Preview the output, then print a receipt and open an invoice PDF to compare both formats.
How to connect a terminal with a setup QR
- On the main shop device, open the setup or network tools and generate the terminal QR for the current remote profile.
- On the terminal device, start the setup wizard and choose terminal or remote connection mode.
- Scan the QR or paste the encoded QR text.
- Let the app validate the remote host. Fix any loopback or invalid host warnings before continuing.
- Save the remote profile, complete licensing, and finish setup.
- Open Sync Center and confirm the terminal can push and pull cleanly.
How to install a report plugin package
- Prepare a valid .nxpack file.
- Open Finance > Report Plugins Center.
- Click Install Package and pick the file.
- If the runtime reports that the same version already exists, decide whether a force replace is appropriate.
- After installation, review the plugin card, enable it if needed, and run it once with test parameters.
How to create a report plugin for Nexus One POS
- Use the app's template export or copy the structure from report_plugins/all_fields_showcase.nxpack.
- Create plugin.manifest.json at the archive root with matching plugin metadata and file paths.
- Create the plugin folder with the main .nxrpt file, README.md, package.json, and assets/icons plus assets/styles.
- Define parameters, data sources, filters, layout blocks, and optional auto-fill sources inside the report file.
- Zip the package root and rename the archive to .nxpack.
- Install it from Report Plugins Center and fix any validation feedback.
How to obtain and activate a license
- Go to platform.nexuscloud.uk and obtain the product key for your deployment.
- Open the setup wizard or activation screen in the app.
- Paste the key and activate it.
- If you are waiting for the final key and this is a controlled temporary machine, start the 7-day grace period once.
- After activation, review the license status panel on the home screen for last validation timing and any stored failure message.
How to run a clean backup and restore safely
- Open Sync Center and make sure pending outbox, retry, and unresolved issue counts are clean.
- Open Settings > System Maintenance and start the backup.
- If the shop is in remote sync mode, allow the app to lock terminals and drain sync safely.
- Save the backup bundle and label it clearly with date and purpose.
- Before a restore, analyze the backup source and confirm whether the destination should be erased or used only as a terminal connection target.
- After restore, reopen Sync Center and confirm the system is stable before resuming normal checkout.
How to process a refund or exchange
- Open the refund and exchange flow and locate the original sale.
- Review the refund policy window, restocking fee rules, and any non-refundable SKU restrictions.
- Select the items and quantities to return.
- Choose whether this is a refund or an exchange.
- For exchanges, select the replacement product and quantity, then review whether the balance direction is even exchange, refund to customer, or additional payment due.
- Confirm the settlement allocations, stock updates, and printed or digital refund receipt before finalizing.
How to create and receive a purchase order
- Open Admin > Stock Operations > Orders.
- Create a new purchase order and select the supplier.
- Add one line for each product you are ordering, with quantity and unit price.
- Set the expected delivery date for each line.
- Add any special delivery notes, such as preferred times or handling instructions.
- Review the total cost and save the order as a draft.
- When ready to submit, mark the order as sent to the supplier.
- When goods arrive, open the purchase order and start marking lines as received.
- For each received line, confirm the quantity matches the order and inspect for damage.
- If quantity or condition doesn't match, log a supplier case instead of marking as received.
- Once all lines are received or disputed, close the purchase order.
How to manage supplier records and invoices
- Open Admin > Inventory > Suppliers to view your supplier list.
- To add a new supplier, click create and fill in company name, contact details, tax ID, and payment terms.
- Set the standard payment term (e.g., net 30) and default delivery lead time.
- When supplier invoices arrive, open Finance > Accounts Payable.
- Create a new supplier invoice record and link it to the corresponding purchase order if available.
- Verify line items, quantities, and prices match the PO before approving.
- If there are discrepancies, create a supplier case to resolve before approval.
- Once approved, the invoice is tracked until payment.
- Use the aging reports to identify which suppliers are past due for follow-up.
How to report and track damaged stock
- When you discover damaged products, immediately open Admin > Stock Operations > Damage Reports.
- Create a new damage record and select the affected batch.
- Enter the quantity damaged and select the type of damage (breakage, leak, dent, etc.).
- Set the root cause: shipping damage, handling, manufacturing defect, or storage issue.
- Take photos if possible and attach them to the record.
- Estimate the retail or cost value of the damaged items.
- Save the damage record, which removes the damaged quantity from available stock.
- If the supplier is at fault, create a supplier case or claim to request reimbursement or replacement.
- For internal damage, escalate to management for process improvement review.
How to write off expired or obsolete stock
- Regularly review your stock using Admin > Stock Operations > Stock Reports to identify low-movement or expired items.
- Check the batch expiry calendar to see upcoming or already-passed expirations.
- When you find items to write off, open Admin > Stock Operations > Write-offs.
- Create a write-off batch and select the category: expiration, obsolescence, overstock, or shrinkage.
- Add one line for each product batch you are removing, with quantity and reason.
- Enter the estimated loss value for accounting purposes.
- Add notes about any salvage attempts, donations, or disposal arrangements.
- Save and approve the write-off, which removes the items from available stock.
- Arrange for physical disposal or salvage according to your disposal procedures.
- Track write-off trends monthly to identify inventory management improvements.
How to perform daily and month-end reconciliation
- Daily reconciliation (end of shift): Open Sync Center and confirm that pending sync queues are empty or minor.
- Count the cash drawer and compare physical cash to the system balance recorded by the cashier.
- Investigate any variance: check for duplicate entries, missing sales, or incorrect tender amounts.
- Manager signs off on the drawer reconciliation before the cashier leaves.
- Weekly reconciliation: Run a sales summary report by cashier and compare to payment batches.
- Verify all refunds are recorded and online payments match capture confirmations.
- Month-end reconciliation: Run reconciliation on all sales, refunds, and payment methods for the full month.
- Match supplier invoices received to purchase orders and received goods records.
- Verify accounts payable aging and follow up on any overdue items.
- Verify accounts receivable (customer credit) aging and follow up on slow payers.
- Close the month in your accounting system only after all reconciliation is complete.
How to set up and run a promotion or discount campaign
- Decide the promotion type: fixed discount, percentage off, bundle pricing, or tiered quantity pricing.
- Open Admin > Finance > Coupons and Discounts to set up the campaign.
- Create a coupon or promotion code and set the discount amount or percentage.
- Set the valid date range and any product or category restrictions.
- For limited campaigns, set usage limits: per-use limit, total-use limit, or both.
- Train cashiers how to apply the code during checkout (usually by entering code or scanning QR).
- Monitor redemption during the promotion period using promotion reports.
- After the promotion ends, review impact on revenue and profit margin.
- Archive the coupon for future reference when deciding whether to re-run.
How to manage product batches and maintain FEFO ordering
- Every received purchase should create a new batch record or update an existing batch if it's truly the same lot.
- When creating a batch, ensure the expiry date is entered correctly because FEFO depends on this.
- A batch with an earlier expiry date is always sold before a batch with a later expiry, all else equal.
- If multiple batches have the same expiry, the oldest by purchase or creation date sells first.
- Regularly deactivate or close finished batches once stock reaches zero to keep the batch list clean.
- Use Stock Operations > Stock Reports > Batch Expiry Calendar to spot upcoming expirations proactively.
- For any batch approaching expiry with remaining stock, plan a promotional sale or donation.
- Never mix old and new same-product stock in one batch unless the expiry dates are identical.
Common issues and the fastest place to look first
Use these checks before assuming there is data loss or a major bug. Most day-to-day problems land in a small set of areas: devices, sync, licensing, plugins, or batch state.
Hardware and document issues
- Printer not found: confirm the selected printer mode is supported on the platform and rerun discovery or manual target entry.
- Print test fails: connection details are wrong, printer is offline, or reconnect logic is pointed at the wrong device.
- Wrong receipt fields: review the template block visibility rather than editing the product or sale data first.
- Scanner input is messy: fix prefix and suffix trimming in scanner settings.
Inventory and stock issues
- Stock looks wrong: verify the correct active batch is being used and that expired or inactive batches are not misleading the operator.
- FEFO not working: check batch expiry dates are set correctly and no forced batch overrides are interfering.
- Product not appearing at checkout: ensure the product is marked active and is assigned to an accessible department and category.
- Batch expiry not triggering reorder: set minimum stock levels and use the reorder alerts report.
Purchase order and supplier issues
- Cannot receive completed purchase order: confirm the PO is in sent or partially received state, not draft or closed.
- Receiving quantity mismatch: if actual received quantity differs from PO, create a supplier case instead of forcing the receive.
- Supplier invoice not matching PO: check that line items, pricing, and tax match exactly before approving. Document any variance in supplier notes.
- Accounts payable aging looks wrong: verify payment dates are recorded for all paid invoices and no double-counted amounts.
Refund and exchange issues
- Refund amount seems incorrect: check the original sale price, applicable restocking fees, and any promotional discounts from the original sale.
- Exchange not updating stock: ensure the system correctly reduces stock from the returned batch and increases stock for the replacement.
- Refund outside window blocked: this may require manager approval. Check your refund policy settings and user permissions.
- Cannot refund non-refundable item: this is by design. Contact management if an exception is needed.
Damage and write-off issues
- Damage report not reducing stock: confirm the damage record is saved and approved, not just drafted.
- Write-off batch not creating: ensure you have the required permissions and the batch records exist for the items you're writing off.
- Supplier damage claim not visible: verify the damage record is correctly linked to the supplier and the claim status is set appropriately.
- Disposal/salvage tracking missing: add notes to the damage or write-off record to document where items ended up.
Data and sync issues
- Terminal seems out of date: open Sync Center and inspect pending outbox, retry queue, and unresolved issues.
- Backup is blocked: the sync queue is not clean, database validation failed, or unresolved damage/write-off records exist.
- Remote restore warning: stop and confirm whether the target should be erased or whether the device should switch to terminal mode.
- Reconciliation totals don't match Sync Center: wait for background sync to complete or manually push/pull to refresh remote data.
Reconciliation mismatches
- Cash drawer balance off: review each cashier's recorded sales and refunds in the report. Check for voided transactions or manual overrides.
- Sales total mismatch: compare POS sales to payment batches. Missing items usually indicate unrecorded offline sales or sync delays.
- Payment method sums don't match: verify that split payments and multi-tender transactions are recorded completely.
- Accounts payable total wrong: check no duplicate invoices were entered and all payment postings are recorded.
- Accounts receivable total wrong: verify all customer credit sales are accounted for and refunds/payments are allocated correctly.
Plugin and reporting issues
- Install rejected: check the package root structure, matching names, README, package.json, icons path, and schema version range.
- Same version already installed: decide whether force replace is justified.
- Generated report looks empty: review parameters, data source filters, and whether the underlying shop data exists in the chosen date range.
- Report shows incomplete data: confirm Sync Center is clean and all remote terminals have pushed recent data.
License and permissions issues
- Activation failed: verify the key, internet access, and device entitlement.
- Grace already used: you now need a valid key.
- Config missing: the build lacks the required license API configuration.
- User cannot access feature: verify the user's role and individual permission settings. Managers may have restricted access to certain functions.
Version markers, source references, and technical notes
Use this section when you need the exact current repo markers that this documentation was written against.
| Item | Current marker |
|---|---|
| App version | 1.0.0+1 |
| Documentation refresh date | 2026-04-14 |
| Required report plugin package format | .nxpack |
| Strict plugin package doc revision | v1.1 dated 2026-04-07 |
| Reference showcase package | all_fields_showcase.nxpack version 2.1.0 |
Consolidated source material
- Former user guide merged into this single index
- Former stock guide merged into this single index
- Former report plugin API and quick-start notes merged into this single index
- Current settings, setup, licensing, report plugin, backup, stock, cashier, and sync modules in the app code
Useful auto-fill sources for plugin authors
- departments
- suppliers
- customers
- categories
- subcategories
- units
- products
- salesStatus, paymentMethods, expenseTypes, incomeSources