Menu
Staff-friendly product buttonsCurrent Order
Managers, Owners, and Power Users only. Backdated sales require authorization during review.
Low-stock sales are allowed, but the app will show a warning before saving.
Current Session
Expected cash vs actual cashDrawer Settings
Printer/cash drawer behaviorThis uses the browser print dialog. For best results, configure your thermal printer driver to open the cash drawer when a receipt prints.
Cash Sessions
History of drawer opening/closing| Session | Opened | Closed | Opening | Expected | Actual | Over/Short | Status | Action |
|---|
Sales Trend
Gross sales by dayPayment Mix
Where sales are coming fromExpense Categories
Spot budget leaks fastBest Sellers
Top products by salesTop Selling Sauces
Sauce choices customers preferSalary / Labor
Reserved for payroll moduleLabor cost will appear here
After we add time in/out, this area can show salary cost, labor % of sales, staff hours, event payroll, advances, and deductions.
Owner Insights
What needs attention nowBudget Leak Watch
Money or stock loss signalsTop Products
Sales, cost, profit, and margin| Product | Qty | Sales | Cost | Profit | Margin |
|---|
Costing & Control Issues
Missing costs, low margin, and variance| Issue | Detail | Impact |
|---|
Unpaid Orders
Collections to follow up| Date | Sale No | Location | Cashier | Amount | Notes |
|---|
Expense Log Summary
See where cash is going| Category | Count | Total | Share |
|---|
| Item | Type | Stock | Low At | Status | Action |
|---|
| Item | Opening | Stock In | Stock Out | POS Usage | Expected Closing | Actual Closing | Variance | Reason |
|---|
Locations
Recent Transfers
| Date | Transfer | Item | Qty | Location |
|---|
Event Closing Reports
| Date | Event | Closed By | Returned To | Action |
|---|
| Date | Location | Category | Amount | Ordered By | Paid By | Payment | Reimbursement | Notes | Action |
|---|
| Product | Category | Price | Status | Action |
|---|
| Sauce | Extra Price | Inventory Deduction | Status | Action |
|---|
| Date | Sale No. | Location | User | Items | Payment | Total | Cost | Gross Profit | Action |
|---|
| Date | Item | Change | Reason | Notes | Location | User | Reference |
|---|
Suppliers
Contacts and supplier notes| Supplier | Contact | Status | Notes | Action |
|---|
Price Watch
Latest supplier prices by item| Item | Supplier | Latest Cost | Date |
|---|
Purchases / Deliveries
Saving a purchase automatically creates stock-in movements| Date | Purchase No. | Supplier | Location | Items | Total | Payment | Ordered / Paid By | Action |
|---|
Quick Start
POS Sales
- Add products from the POS grid.
- Choose payment method: Cash, GCash, or Not Paid.
- Cash sales require amount received and show change.
- Not Paid sales require payment notes and customer details.
- Sales deduct recipe/inventory stock from the selected location.
- Custom sale date/time is restricted to Manager, Owner, Power User, or backdate_sale permission.
- Sales can save offline and sync later when online.
Sales History
- Use Sales History to review completed sales.
- Online badge means the sale exists in Supabase.
- Failed/Pending means the sale is saved locally and still needs sync.
- Use Sync Pending if internet dropped or Supabase session was unavailable.
- Refund/void actions should be done by authorised staff only.
Inventory
- Inventory List tracks items, stock, unit, type, cost, and low-stock level.
- Stock In adds inventory with reason/location.
- Stock Out deducts inventory and requires authorised reasons.
- Transfers move stock between locations without creating/destroying stock.
- Daily Inventory is used for physical count and variance checks.
- Low-stock warnings are allowed but should be reviewed daily.
Products, Recipes, and Sauces
- Products are POS menu items with category, price, status, emoji/image, and sauce settings.
- Recipes connect products to inventory deductions.
- Sauces/options can be linked to inventory items and quantities.
- Hiding a product/sauce removes it from daily use without deleting history.
- Power User setup changes auto-sync online when connected.
- Other approved devices auto-load shared setup updates.
Import Guide
- Use Better Inventory, Products, and Recipes templates from Settings.
- Import order: Inventory → Products → Recipes.
- Inventory type is case-insensitive: Packaging, packaging, and PACKAGING all work.
- Product, inventory, and location matching is case-insensitive.
- Preview imports before applying.
- After import, setup changes auto-sync online for Power User when connected.
Locations / Events
- Every location requires a unique sale prefix.
- Sale numbers use location prefix, for example MAIN-000001 or BAZ1-000001.
- Use locations for Main Store, events, storage, and in-transit stock.
- Event devices should be approved as Event or POS devices.
- Stock transfers should be used before and after events.
Staff, Attendance, and Pay
- Staff use PIN login.
- Permissions control visible pages and allowed actions.
- Attendance can be restricted to approved attendance/store/POS devices.
- Staff Pay tracks attendance, adjustments, cash advances, bonuses, and payroll checks.
- Managers/owners should review overtime and unusual attendance records.
Device Access
- Only approved devices can use the app.
- New device opens Device Authorization screen and requests approval.
- Owner/Power User approves devices in Admin → Device Access.
- Device types: Owner, POS, Store, Event, Attendance.
- Staff should not time in/out from personal devices unless the device is approved for attendance.
- Device approval is separate from Supabase online session.
Online Sync
- Sales sync online automatically when Supabase session is connected.
- Offline sales stay local and sync later.
- Shared setup sync updates products, inventory, recipes, sauces, and locations across approved devices.
- Sync Pending pushes unsynced sales/actions.
- Sync Shared Setup refreshes setup data manually.
- Supabase cleanup SQL is used for controlled online test-data clearing.
Backup, Reset, and Cleanup
- Export Full Backup File before resets/imports.
- Selective Reset/Test Cleanup is Power User only.
- Clear Products + Inventory Setup clears local products, inventory, recipes, and sauces before real import.
- Online test-data cleanup should be done carefully using the included Supabase SQL file.
- Do not clear online setup after real sales are already active unless you understand the impact.
Troubleshooting
- If device is blocked, request approval and ask owner to approve in Device Access.
- If Online says not logged in, Supabase session is not connected yet.
- If a sale is pending, use Sync Pending.
- If co-owner does not see products, use Sync Shared Setup or wait for auto-refresh.
- If mobile layout looks cramped, use landscape/tablet where possible while we continue polish.
- If import fails, check column names, numbers, and inventory type values.
Version
Current Official App Version
v1.2
Apollo POS
POS • Inventory • Staff Management
Created by Erwin Pogi
Core Capabilities
Change Log
Added Admin → Help / Manual with operating guide for POS, inventory, imports, devices, sync, backup, and troubleshooting.
Added device approval, shared online setup sync, mobile polish, import improvements, app info/change log, login security fixes, and setup cleanup tools.
Established Apollo POS MVP with POS, inventory, products, recipes, staff access, reporting, backups, and Supabase online foundation.
Permission Alignment Notes
New features should always be checked against permissions before release.
- Device Access: Power User only.
- App Info / Change Log: Owner, Manager, and Power User access.
- Setup push/sync actions: Power User only unless specifically allowed.
- Custom sale date/time: Manager, Owner, Power User, or backdate_sale permission.
- Cleanup/reset tools: Power User only.
| Device | Code | Type | Status | Last Seen | Action |
|---|
| Name | Role | Assigned Location | Status | Permissions | Action |
|---|
Payroll Warnings
Rate, OT, and missing time-out checksCurrently Timed In
Open attendance records without time out| Staff | Location | Time In | Hours Running | Action |
|---|
Cash Advances
Automatically deducted within the selected date range| Date | Staff | Amount | Deduction | Authorized By | Notes | Action |
|---|
Bonuses / Allowances
Automatically added within the selected date range| Date | Staff | Type | Amount | Addition | Authorized By | Notes | Action |
|---|
Payroll Summary
Selected date range| Staff / Rate | Days | Total Hours | Regular Paid Hours | OT Approved | OT Pending | Gross Pay | Cash Advance | Bonus | Net Pay |
|---|
OT for Approval
Beyond 9 hours| Date | Staff | OT Hours | Action |
|---|
Time Records
Time in, time out, break, and approvals| Date | Staff | Location | Time In | Time Out | Total | Regular | OT | Pay | Action |
|---|
Connection Status
Checks the new clean Supabase projectNext Online Migration Step
After connection is confirmedIssues Found
Prioritize red items firstPre-Online Testing Checklist
Use this before migrationSelective Reset
Use this before real operation or after testing. Choose exactly what to reset. Requires typing RESET.
Clears local products, inventory, recipes, sauces, and pending product/inventory setup data before real import.
Important
Online Supabase test rows should be cleaned carefully from Supabase or with a future online cleanup tool.
| Date | User | Action | Detail | Entity |
|---|
Branding
Temporary only while there is no login yet. Later this will become real user/access tracking.
The login banner appears on the full login page after logout. If blank, the app uses the black/orange default banner.
Backup / Restore
Export All Data downloads a full JSON backup plus readable CSV files for reports/spreadsheets. Full Backup JSON is still the safest restore file.
CSV exports are for viewing in Excel/Google Sheets. Templates help you format imports. Full Backup JSON is the safest restore file.
Future Location Support
Current default location:
Main StoreSales and stock movements now save location data. Later we can add Bazaar/Event locations and stock transfers.
Danger Zone
Power User only. Choose exactly what test data to reset. Requires typing RESET.
Power User only. Restores the starter template and replaces current local data.