Features
Everything the system does, in plain terms
Written from what the software actually does today — including the parts it does not do yet, which are called out where they matter.
Checkout
The POS terminal
Designed for a counter with a queue at it: scanner-first, keyboard-driven, and forgiving when something goes wrong mid-sale.
- Hardware barcode scanners supported directly — the scan lands in the search box and the Enter key adds the item, with protection against the same scan registering twice.
- Type-ahead product search that waits for you to stop typing instead of firing on every keystroke.
- Wholesale mode: one toggle re-prices the entire cart to your wholesale prices.
- Quantity stepper capped at the stock actually on hand, with a clear Insufficient Stock prompt rather than a silent failure.
- Order-level peso discount and an optional customer name — walk-in sales need neither.
- Cash tendering with ₱20 / ₱50 / ₱100 / ₱200 / ₱500 / ₱1000 quick-add buttons, an Exact button, and change calculated as you type.
- Five recorded payment methods: cash, card, bank transfer, cheque and credit.
- F9 completes the sale, so a trained cashier never has to reach for the mouse.
- The cart is saved to the device on every keystroke — a refresh, a crash or a power cut leaves the in-progress sale exactly where it was.
- A mobile layout with a sticky checkout bar and a full-screen payment sheet, for selling from a tablet or phone.
Resilience
Offline-first and self-healing sync
This is the part most point-of-sale software gets wrong. A dropped connection should not stop you selling, and catching up should not be your job.
- Installs like an app on Windows, macOS, Android and iOS — no store, no installer, just Add to Home Screen.
- Products, categories, stock, sales, expenses and the current cart are all held on the device, scoped per business and per store so nothing bleeds between branches.
- Sync is event-driven: on launch, when the connection returns, when you switch back to the tab, after every change, and on demand. No fixed polling interval to wait out.
- Failed uploads back off progressively instead of hammering a network that is already struggling.
- Catch-up downloads arrive in pages with a deliberate overlap window, and use the server's clock rather than the device's, so a terminal with a wrong date cannot miss records.
- Every locally created record carries a unique id, making uploads safe to retry — the same sale can never be counted twice.
- When two devices change the same record, the later write wins and the rejected version is kept in a conflict log for you to inspect.
- Deletions propagate properly: a product removed on one terminal disappears on the others instead of coming back on the next sync.
- An offline sale that would take stock negative is recorded anyway and flagged for review with the reason, so you never lose a sale to a stock disagreement.
- A sync queue page lists everything still pending in plain language, with status, last error, and retry or discard actions.
Catalogue
Products and the master catalogue
Motor parts catalogues are large, messy and full of near-duplicates. Getting yours in should not take a month.
- Parts carry SKU, barcode, category, manufacturer, brand, supplier, unit of measure and compatible vehicle models.
- Three price points per part — cost, retail and wholesale — plus a product image.
- Stock is tracked per store, and each store sets its own reorder point for a part.
- Per-store availability: restrict a part to specific branches, or leave it open to all of them.
- Bundle products: define a kit from its component parts, and selling the kit draws down the components automatically.
- A shared master catalogue of parts, curated centrally, that any business can import from with its own cost, retail and wholesale prices.
- Bulk import from CSV, XLSX or XLS with a three-step wizard: upload, map columns with the mapping guessed for you and a sample row previewed, then a summary of what was created, updated and rejected.
- Descriptive SKUs generated automatically during import, reading specs like oil viscosity, volume, weight and engine displacement out of the product name.
- Deactivate instead of delete: a part disappears from the till while its sales history stays intact. Permanent deletion is blocked outright where history exists.
Stockroom
Stock control with an audit trail
Every movement is a record, not just a new number in a box. When the count is wrong you can see how it got that way.
- Stock in, stock out and adjustments, each logged with the quantity before and after the change.
- Seven reasons on every movement — purchase, sale, damaged, lost, reconciliation, return or manual — so shrinkage is visible rather than absorbed.
- Unit cost and total cost captured on receipts, with a reference number tying the movement back to a purchase order or sale.
- Adjustments set an exact counted quantity, which is what a physical count actually produces.
- Cost-price history: every change to what a part costs you, with the old price, the new price, the difference and the percentage change.
- Batch shelf-label printing — pick parts and quantities and get an A4 sheet of 50 × 30 mm labels with name, SKU, barcode and price.
Scale
Multiple stores, multiple businesses
Branch separation is enforced in the data model, not by asking staff to be careful.
- A business owns its stores; each store owns its stock, staff, sales and expenses.
- SKUs, barcodes and sale numbers are unique within a business, so two businesses on the platform never collide.
- One dashboard, all branches: in all-stores mode the charts plot a separate line per store so you can see which branch is carrying the month.
- Enter Store puts an owner behind a specific counter to check something or cover a shift, with a clear amber indicator showing they are not in their own account.
- Deactivating a store cascades to its staff accounts and notifies each affected person.
- Moving a manager between branches is written to an audit log with the old and new store, the old and new role, who made the change and why.
- Per-store settings for receipt printing, including which printer to use.
Insight
Reports, exports and the dashboard
Fourteen reports that answer real questions, and a link you can paste into a message.
- Sales: daily sales, weekly sales, monthly revenue and payment-method breakdown.
- Inventory: stock levels, low stock, stock movement and inventory valuation.
- Products: top selling and products by category.
- Expenses: monthly expenses, expenses by category, expenses by vendor and expense transactions.
- Paging and filters are written into the URL, so a shared report link opens on the same page and survives a refresh. Your filter choices are remembered per report.
- Professional PDF generation runs in the background with a progress indicator, and falls back to generating in-line if the background worker is not running.
- CSV export of up to 10,000 rows, summary block included.
- Larger exports — sales, products and stock as CSV, Excel or PDF — run as background jobs with live progress and a notification when the file is ready. Old files are cleaned up automatically.
- A dashboard of six clickable figures — today's sales, month revenue, inventory value, active parts, low stock, out of stock — each deep-linking into the filtered page behind it.
Hardware
Barcodes, labels and receipts
The physical output a parts counter actually needs.
- Generate barcodes for your own parts: proper EAN-13 with a valid check digit, Code 128, or your own prefix and running number.
- SKUs generated to a consistent pattern, per business.
- Barcode lookup by scan, from the device's local copy first so it works offline.
- Single or batch shelf labels as print-ready PDFs, in 2 × 1 in and 3 × 2 in sizes from the server, or A4 sheets from the browser.
- 80 mm thermal receipts sized for standard receipt printers, rendered on the device so they print with no connection.
- An editable receipt template per store — put your own store name, header and footer on it — with a preview using sample data before you commit.
- Optional auto-print after each sale, per store, plus a manual reprint button. With Chrome's kiosk-printing flag it becomes genuinely one-touch.
Money out
Expense tracking
Revenue on its own does not tell you whether the branch made money.
- Log expenses with amount, date, vendor, receipt number, description and notes.
- Your own expense categories, each with a colour so they read at a glance.
- Seven payment methods including GCash and Maya alongside cash, bank transfer, credit card, cheque and other.
- At-a-glance totals for today, this month, last month and all time.
- Filter by category, payment method, vendor and date range, and search across title, description, vendor and receipt number.
- Expense trends plotted on the main dashboard next to revenue, plus four dedicated expense reports.
Control
Roles, permissions and accountability
Six role levels, enforced on the server rather than by hiding buttons in the interface.
- Super Admin, Admin, Store Admin, Store Operator, Inventory Staff and Cashier — each seeing only the screens their job needs.
- Permissions are checked on the server for every request, so a hidden menu item is not the only thing standing between a cashier and your cost prices.
- Store-scoped staff are pinned to their branch at the data layer and cannot read another branch's records.
- Cashiers land directly in the POS terminal with no navigation to anywhere else.
- Deleting products, adjusting stock and removing transactions are separately controlled permissions, not bundled into one admin flag.
- Create staff accounts from the store screen with a generated username and a one-time password shown once, and reset a password when someone is locked out.
- Support access is explicit: an administrator has to deliberately step into a business or store, and the interface shows a persistent amber marker while they are there.
Alerts
Low stock alerts
The reorder point is only useful if something acts on it.
- Each store sets its own minimum level per part, and anything at or below it is flagged.
- Low stock and out of stock appear as clickable figures on the dashboard, with a list of the parts concerned.
- A daily check every morning at 8am raises low-stock and out-of-stock alerts.
- Those alerts are emailed to administrators, and out-of-stock alerts can additionally go out by SMS.
- Note: alerts are delivered by email and SMS today. The in-app notification centre is built on the server but does not yet have a screen in the app.
Want to see any of this against your own data?
Send us a sample of your product list and we will load it into a demo store for you.