Metro Moto
Complete user manual · Version 1.3 · Updated August 2026 · All roles covered
Introduction
Metro Moto is a web-based shop management system for motorcycle dealerships and repair centers. It covers four main areas of daily operation:
Point of Sale
Sell parts and accessories over the counter with a fast, searchable cart.
Services
Create and track repair and maintenance work orders from intake to payment.
Service Packages
Build reusable bundles of labor + parts (e.g. "Change oil + filter") and apply them to work orders in one click.
Inventory
Manage your parts catalog, stock levels, pricing, and supplier links.
Reports
Monitor revenue, mechanic productivity, and inventory health over any date range.
The system supports multiple branches and a fine-grained role system so each team member sees only what they need to do their job.
Roles & permissions
Every user in Metro Moto is assigned one of the following roles. What you see in the sidebar and what actions you can perform depends on your role.
| Role | Who it's for | Dashboard | POS | Services | Inventory | Reports | Admin |
|---|---|---|---|---|---|---|---|
| Owner | Shop owner — full access | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Admin | Operations manager | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Manager | Floor / branch manager | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Cashier | Counter staff | ✓ | ✓ | view only | view only | — | — |
| Mechanic | Workshop technician | ✓ | — | own jobs | — | — | — |
| Staff | General shop staff | ✓ | — | — | view only | — | — |
Owners and Admins can customize what each role can do from Settings → Role permissions. The table above shows the default configuration.
Logging in
Standard login
- Open your shop's Metro Moto URL in a web browser.
- Enter your email address and password, then click Log in.
- If your account has two-factor authentication (2FA) enabled, you will be asked to enter a code from your authenticator app.
- You are taken to the Dashboard after successful login.
Forgotten password
- On the login page, click Forgot your password?
- Enter your email address and click Email password reset link.
- Open the email you receive and click the reset link (valid for 60 minutes).
- Enter and confirm your new password, then click Reset password.
Logging out
Click your name or avatar at the bottom of the sidebar (or top-right on mobile), then select Log out.
Always log out when using a shared POS terminal or computer. Sessions remain active until explicitly logged out or the browser is closed.
Dashboard
The Dashboard gives you a live summary of what is happening in your shop right now. It is the first page you see after logging in.
Date range filter
The summary cards, sales chart, and performance panels reflect the selected date range. Use the Today, Week, or Month shortcuts, or open the displayed date range to choose custom From and To dates and click Apply range.
KPI cards
| Card | What it shows |
|---|---|
| Net sales | Paid service revenue plus POS sales in the selected range, after mechanic commissions and sourced-item cash returns. |
| Service revenue | Revenue from completed services in the range, with the number completed. |
| POS sales | Number of POS transactions and total revenue from over-the-counter sales. |
| Expenses | Approved expenses in the range. This card appears only for users allowed to view expenses. |
Net sales chart
The main chart plots net sales over the selected period and shows the daily average. Hover over the chart for exact dated amounts.
Customer motorcycles
The doughnut chart summarizes active customer motorcycles. Toggle between Make and Make & model to see the largest group and percentage breakdown; smaller groups are combined as Other.
Services status panel
A live count of current work-orders by status — not filtered by date. Use this to see at a glance how many bikes are still in the shop:
- In progress — jobs currently being worked on.
- Awaiting — jobs received but not yet started (pending parts or assignment).
- Done today — jobs completed today.
Recent activity
A merged feed of the latest services and POS sales, ordered most-recent first. Each row shows the activity, channel, status, and amount.
Mechanic performance
A ranked list of all mechanics by revenue generated in the selected range, with a proportional bar and job count.
Low stock alerts
The low-stock panel shows items currently at or below their minimum level and links to Inventory. It is not affected by the dashboard date range.
Point of Sale
The POS screen lets cashiers and managers sell parts and accessories over the counter. The layout has a search panel on the left and a cart on the right.
Required role: Cashier, Manager, Admin, or Owner.
Step 1 — Find an item
- Click in the large search box (it is focused automatically when the page loads).
- Type any part of the item's name, SKU, part number, or compatible motorcycle model. Results appear instantly below — no need to press Enter.
- Each result row shows a thumbnail, name, SKU, stock quantity, and selling price.
The search box also works as a barcode scanner input. Point a USB barcode scanner at an item — it types the code and presses Enter automatically. On an exact barcode or SKU match, the item is added straight to the cart (or its quantity is incremented if already there), a green flash confirms the addition, and focus returns to the search box so you can scan the next item immediately. If no match is found, a "Scan not found" dialog shows the scanned code.
Step 2 — View item details (optional)
Click the item name to open a details modal showing brand, category, stock, compatibility, and description. Click Add to Cart directly from the modal, or close it and use the Add button on the list row.
Click the thumbnail to open a full-screen image carousel for items that have photos.
Step 3 — Build the cart
- Click the Add button on any search result to add it to the cart.
- Use the + and − buttons in the cart to adjust quantity. You cannot add more than the available stock.
- Click the trash icon to remove a line from the cart.
- To start over, click the Clear button at the top-right.
If an item has a minimum selling price set in inventory, the cart will show a warning if the line's unit price drops below it. The sale can still proceed, but the warning flags it for a supervisor to review.
Step 4 — Add customer details (optional)
Click Customer details to expand the customer section. Fill in the customer's name, phone, email, and any notes (motorcycle model, plate, etc.). This is optional for walk-in sales but recommended for record-keeping.
Step 5 — Apply a discount
Enter a peso amount in the Discount field in the totals area. The total updates immediately.
Step 6 — Choose payment method and complete the sale
| Method | What to enter |
|---|---|
| Cash | Enter the Tendered amount (what the customer hands you). The change due is shown automatically. |
| GCash | Enter the GCash reference number from the customer's payment confirmation. |
| Card | No additional input needed — just select Card and the checkout button becomes active. |
| Bank transfer | Enter the bank transfer reference number. |
The green Complete Sale button is disabled until all requirements are met. A hint message above the button explains what is still needed. When ready, click Complete Sale — the sale is recorded and stock is deducted automatically.
A green success banner appears at the top of the page for 6 seconds after a successful sale, confirming the sale number. The cart is automatically cleared and ready for the next transaction.
Sales / Invoices
The Sales / Invoices page, indented below Point of Sale in the sidebar, is the searchable history of completed POS transactions. Use it to retrieve an invoice after checkout instead of searching through the activity feed.
Finding a sale
Search by invoice number, customer, payment reference, SKU, or item name, then narrow the list by payment method and date range. Select a row to expand its items or open the full sale detail.
Sale detail
The detail page shows the sale number and date, cashier and customer information, every item and quantity, subtotal, discount, final total, and payment details. Inventory links let authorized users open the related item record. Historical invoices remain available even when an item is later deactivated.
Services
Services are repair and maintenance work orders. A work order tracks everything from intake to completion — the motorcycle, customer, assigned mechanic, parts used, labor cost, and payment.
View services: Cashier, Manager, Admin, Owner. Create & manage: Manager, Admin, Owner. Update own job status: Mechanic.
Service statuses
Every service moves through these statuses:
Pending → received, not yet started Ongoing → being worked on Completed → finished Cancelled → will not proceed
Creating a new service
- Go to Services in the sidebar, then click New service.
- Customer & motorcycle: Type the customer's name, mobile number, or plate number in the search box. Select them from the dropdown — plate-number matches show the plate in a highlighted badge with the motorcycle details, and selecting one auto-fills both the customer and motorcycle fields. If they have motorcycles on file, pick the correct one. If not, expand Register a new motorcycle and fill in the make, model, year, and plate number.
- Assign a mechanic from the dropdown (optional but recommended).
- Fill in the Service title (e.g. "Full tune-up"), Description, Date received, and Estimated completion date.
- Enter the Odometer reading in kilometers (optional).
- Enter the Labor cost for the job.
- Click Create service. You are taken to the service detail page.
Adding parts, custom tasks, and labor
- On the service detail page, find the Inventory items used section.
- Click Add item, search by name or SKU, and select the part. You can also use a barcode scanner — scan a barcode in the search field and the item is added automatically on an exact match.
- Set the quantity and unit price. The subtotal is calculated automatically, and stock is deducted immediately.
- Need to bill something that isn't a stocked part (e.g. a specialty task or outsourced work)? Click Add custom task instead, enter a description and price, and choose its commission effect — None, Add, or Deduct — controlling whether it affects the assigned mechanic's commission.
- Repeat for all parts and tasks. The Grand total (labor + custom tasks + inventory items + any applied packages − discount) updates in real time in the Pricing panel.
Editing service details, discount & warranty
The service's own edit form covers the customer/motorcycle, mechanic, status, dates, labor cost, discount, warranty period (in days), and internal notes. Warranty period is measured from the completion date — the resulting expiry date and a live Within Warranty / Warranty Expired / No Warranty Set badge show in the At a glance panel.
These are money-sensitive fields — if you change either one, you must pick a reason (e.g. Price adjustment, Wrong input, Customer discount, Warranty adjustment, or Other with a note). The reason is stamped onto the activity log entry as a critical update so it's easy to audit later — see Activity log.
Updating service status
On the service detail page, use the Status dropdown to move the work order through the workflow. Mechanics assigned to a job can update the status of their own jobs. Managers and above can change any job's status.
Recording a payment
- On the service detail page, scroll to the Payment section.
- Enter the cash tendered and click Record. If the amount exceeds the remaining balance, the change to give is calculated and shown instantly; if it's less, a partial-payment note shows the balance that will remain. The server always clamps the recorded payment to the outstanding balance, so it never goes negative.
- The payment status updates to Partial or Paid depending on the balance, and a green "Fully paid" confirmation appears once the balance reaches zero.
Applying a service package
If you have predefined service packages set up (see the next section), you can apply one to a work order in a single click. On the service detail page, click Apply package, search for the package by name, and confirm. The package is billed as its own “Packages applied” line on the work order (labor + parts for an itemized package, or the flat price for a fixed-price one) rather than being merged into the service's own labor cost. Its parts are still added to the items table for stock tracking (stock is reserved and deducted when the service is completed or fully paid), but they aren't charged a second time. A labelled block describing the package is appended to the service's description so the history is preserved even if the package itself is changed later.
Marking a service complete
- On the service detail page, click Mark complete.
- Confirm in the dialog. Completing a service deducts any pending inventory, locks the work-order from further edits (except by owners, admins, and managers), and stamps the completion date.
- If a mechanic was assigned with a commission rate, the commission is recorded automatically — visible later under Mechanics → Commissions.
Inspection photos
On the service detail page, click Inspection Photos to open the photo dialog. Take a photo with your phone's camera or upload existing images — no details are needed at upload time. Open any photo to page through them in a slider (arrow keys or on-screen arrows) and add or edit a short note for it (e.g. "Worn brake pad — recommend replacement"). Photos can be deleted from the slider as well.
Every photo attached to a work order is visible to that customer in the customer portal, giving them clear, photographic proof of what was inspected and why a repair is recommended.
Linked back jobs
If a return visit was ever opened against this work order, the At a glance panel lists every linked back job with its status, so you can see the full history of a job — including any warranty return — from the original service page.
Deleting a service
Managers, admins, and owners can delete a service from its detail page (trash icon, top right). Deleting restores any stock that had been deducted for its inventory items, so your stock counts stay accurate.
Service list filters
The services index page lets you search (service number, customer, or plate) and filter by status, mechanic, payment status, and date range to quickly find the jobs you need.
Mechanics assigned the View assigned services only permission can only see their own jobs — other work orders are hidden from them.
Back jobs & warranty
A back job is a return visit — the customer brings a motorcycle back after a completed service because the same problem recurred or something wasn't right. The Back Jobs module (sidebar → Back Jobs, indented under Services) tracks the complaint, the inspection, the warranty decision, any parts and labor, and the payment — all linked back to the original work order.
View & manage: Owner, Admin, Manager, Staff. Approve a warranty-covered back job: Owner, Admin, Manager only.
A back job can only be opened for a service that has reached Completed status. You select the original work order when creating it, and the customer + motorcycle are carried across automatically.
Warranty decision
Every back job carries a warranty decision that controls what the customer is charged:
| Decision | What it means |
|---|---|
| Pending inspection | Default on a new back job — the cause hasn't been assessed yet. |
| Approved (warranty) | The shop accepts responsibility. Labor is forced to ₱0 automatically; parts may still be charged if some aren't covered. |
| Rejected (chargeable) | Not a warranty issue — the customer pays for labor and parts. A rejection reason is required on the edit form. |
| Partially covered | A mix — some labor/parts covered, the rest billed. Coverage notes (what's covered vs. chargeable) are required on the edit form to explain the split. |
Statuses
A back job moves through: Reported → Inspection needed → Pending approval → Approved (warranty) / Rejected (chargeable) → In progress → Completed → Closed.
Creating a back job
- Go to Back Jobs in the sidebar and click New back job.
- Select the original (completed) work order. The customer and motorcycle fill in from it.
- Record the customer complaint — what went wrong on the return visit.
- Optionally set the date returned (defaults to today), reassign the mechanic, and add inspection findings / root cause as you diagnose.
- Click Create. A back-job number is generated (e.g.
BKJ-20260613-0001).
Adding parts and labor
- On the back-job detail page, use Add item to attach inventory parts — search by name or SKU, set quantity and unit price. Stock is deducted immediately, exactly like a service.
- Need to bill something that isn't a stocked part (e.g. a specialty repair task or an outsourced job)? Add a custom task line instead — enter a description and a price directly, with no inventory deduction.
- Set the labor charge. If the decision is Approved (warranty), labor is held at ₱0.
- The total charge (labor + parts + custom tasks) updates as you go.
Each item and custom task line also carries a commission effect — None (doesn't touch the mechanic's commission), Add (adds to it), or Deduct (subtracts from it).
Adding or removing an item or custom task always prompts for a reason. Changing the labor charge or parts charge on the edit form additionally requires picking one (e.g. Price adjustment, Warranty adjustment, Manager approved, Other) — these are money-sensitive fields, so every change is stamped as a critical update in the Activity log.
Manager approval
A back job whose decision is Approved (warranty) or Partially covered must be approved by a manager (or Admin/Owner) before it can be Closed. The approval stamps who signed off and when, and is shown on the detail page. Staff can log and work back jobs but cannot approve them.
Mechanic commission
Unlike a normal service, a back job only generates a mechanic commission when the warranty decision is Rejected (chargeable) — a warranty-covered repair doesn't cost the shop a commission on top of the free labor. When it applies, the commission uses the mechanic's snapshotted commission rate and shows as Pending until the back job is completed and fully paid, then Earned — the same eligibility rule used for regular service commissions.
Recording payment
For chargeable or partially-covered jobs, enter the cash tendered in the Charges & payment panel and click Record — the same change-calculation and partial-payment preview used on services applies here. The payment status derives automatically — Unpaid, Partial, or Paid — from how much has been paid against the total charge.
Status history
The detail page's Status history panel lists every recorded change to the back job (who made it, when, and what fields changed) — a quick audit trail without needing to open the full Activity log.
List & filters
The Back Jobs index shows summary cards (total, approved, rejected, partially covered) and lets you search by back-job number, original service number, or customer, and filter by status, warranty decision, mechanic, and date range.
Deleting a back job restores any stock its parts had deducted, so your inventory counts stay correct.
Service Packages
Service packages are reusable bundles of labor + inventory items that you can apply to a service work order in one click — perfect for recurring jobs like Change oil, Tune-up, or Brake service. Building them once saves you from re-entering the same lines on every job, and it keeps your prices and parts consistent across the shop.
View packages: any role with the View packages permission. Create & manage: Owner, Admin, Manager (any role with Manage packages).
Pricing types
Each package has one of two pricing types — chosen when you create it:
- Itemized — the total is labor + each item's unit price × quantity. Use this when parts prices vary or when the customer sees a breakdown. Adding, removing, or repricing items updates the package total automatically.
- Fixed price — the labor charge is the entire price. Items can still be attached to document what the customer gets, but they don't change what you charge. Use this for flat-rate jobs like "Oil change — ₱800 flat, includes whatever oil/filter we have in stock."
Browsing packages — tiles & list
The Service Packages page has two layouts; use the toggle in the filter row to switch.
- Tiles (default) — a visual grid with up to 6 tiles per row. Each tile shows the package name, status, pricing type, labor / parts / total, and the uploaded image on the lower half. Click a tile to open the package.
- List — the traditional table view with name, category, labor, parts, total, items count, and status as columns. Click a row to open the package.
The view choice survives filter changes, "Clear filters", and pagination — pick once and the page remembers it.
Creating a package
- Go to Service Packages in the sidebar, then click New Package.
- Enter a Package name (e.g. "Change oil + filter"), an optional Description, and an optional Category (used for grouping/filtering, e.g. "Oil service").
- Pick a Pricing type — Itemized or Fixed price (see above).
- Enter the Labor charge in pesos.
- Optionally upload a Tile image (JPG, PNG, or WebP — up to 4 MB). This image fills the lower half of the package's tile and helps staff recognize the package at a glance.
- Leave Active checked so the package shows up in the service "Apply package" picker.
- Click Create Package. You're taken to the detail page where you can add parts.
Adding parts to a package
- On the package detail page, click Add Item in the Included Parts / Items section.
- Search the inventory by name or SKU and pick the part.
- Set the quantity and unit price (defaults to the item's selling price). The subtotal updates automatically.
- Click Save. The line appears in the items table; the package total recalculates if the package is itemized.
- Repeat for every part the package should include.
You can edit or remove lines at any time from the same table. Removing a package's items doesn't affect any service work orders the package was previously applied to — the items on those services are independent copies.
Editing a package
The package detail page also has an edit form at the top. From there you can update the name, description, category, pricing type, labor charge, and Active flag — and replace or remove the tile image (tick Remove current image on save to clear it).
Applying a package to a service
This is where packages pay off in everyday work. On any service work-order detail page, click Apply package, search for the package, and confirm. The system will:
- Bill the package as its own “Packages applied” line on the work order — not folded into the service's own labor cost. For an itemized package that line is labor + parts; for a fixed-price package it's the flat price (its parts are listed for reference but never charged on top).
- Add every part in the package to the service's items table at the snapshot prices so stock is tracked. Those parts are tied to the package line, so they are not double-counted in the service's own item subtotal. Stock is deferred — actually deducted when the service is completed or fully paid.
- Append a labelled block to the service description: package name, the package's own description, and the price breakdown (labor / parts / total for itemized; just total for fixed-price). Multiple applications stack with a
---separator. - Record a usage entry so the package shows up on the usage report (see below).
The service stays fully editable afterwards — the package contributes its line, then you can tweak quantities, prices, or labor on the specific job without touching the package definition. Removing an applied package takes its labor and parts back off the bill.
Package usage report
From the Service Packages page, click Reports to see how often each package has been applied within a date range, broken down into labor revenue, parts revenue, and grand total. Useful for identifying which packages are paying off and which aren't being used.
Deactivate (uncheck Active) instead of deleting a package when you want to retire it but keep its usage history intact for reports.
Appointments
The Appointments module (sidebar → Appointments, calendar icon) lets customers reserve service slots in advance and staff manage the schedule. Each booking captures a customer + motorcycle + service type for a specific date and time.
Booking statuses
| Status | Meaning |
|---|---|
| Pending | Just created, awaiting staff confirmation. |
| Confirmed | Staff acknowledged the slot. The customer is expected to show up. |
| Rescheduled | The date/time was changed after confirmation. Automatically set when staff edit the time on a confirmed booking. |
| Cancelled | Terminal. Optional reason captured for the audit trail. |
| Completed | Terminal. The work was done — typically set after the service was performed. |
| No-show | Terminal. Customer did not arrive at the scheduled time. |
Creating a booking
- Open the Appointments page and click New booking.
- Pick the customer. The motorcycle dropdown narrows to that customer's bikes.
- Pick a service package from your catalog, or type a free-text service type (e.g. "Tire change").
- Set the date and time.
- Optionally pre-assign a mechanic.
- Capture the customer concern (symptoms / notes from the customer) and any internal staff notes.
- Click Create booking. A booking number is generated (e.g.
BKG-20260604-0001).
Calendar view
From the Appointments page, click Calendar to switch from the table view to a calendar. Three modes:
- Day — vertical list of every booking for one day, sorted by time.
- Week — 7-column grid with one column per day. Each cell shows time, customer, plate, service, and mechanic.
- Month — full calendar grid. Each day shows up to three bookings and "+N more" if there are extras.
Use Prev / Today / Next in the toolbar to navigate. Bookings are colour-coded by status; click any booking to open its detail page.
Confirming, cancelling, completing
On a booking's detail page, the Actions panel shows the available transitions:
- Confirm — flips status to Confirmed and stamps who confirmed it.
- Mark completed — terminal; records when and by whom.
- Mark no-show — terminal; for customers who didn't arrive.
- Cancel booking — terminal; optional reason field gets saved.
Editing the date or time of a Confirmed booking automatically moves it back to Rescheduled so the customer can be informed.
View appointments permission is required to see the list and calendar; Manage appointments is required to create, edit, or change status.
Service queue
The Queue page (sidebar → Queue, list icon) is the live shop-floor board. Three swimlanes sit side by side — one per queue type — and each card walks through the workflow until it's complete.
Queue types
| Queue | Used for |
|---|---|
| Walk-in | Customer showed up without an appointment. |
| Appointment | Customer kept a scheduled booking. Pre-fills the customer, motorcycle, and (if set) mechanic from the booking. |
| Priority | VIP, urgent, or escalated jobs that should jump the line. |
Workflow statuses
Every card walks through the same five-step workflow:
- Waiting — in the queue, hasn't been picked up yet.
- For inspection — a mechanic is diagnosing.
- In progress — work is actively being done. The first time a card hits this status, a started timestamp is recorded.
- Ready for release — work is done; waiting for the customer to pick up and pay.
- Completed — the customer left with the bike. Records a completion timestamp.
Adding to the queue
- Click Add to queue.
- Pick the queue type:
- Walk-in or Priority — pick the customer + motorcycle directly.
- Appointment — pick from today's confirmed bookings; the form auto-fills customer / motorcycle / mechanic.
- Optionally assign a mechanic and add notes.
- Click Add. The card lands in the Waiting status of the chosen queue.
Moving cards through the workflow
- Use the status dropdown on each card to flip it forward (or backward) along the workflow.
- Use the queue dropdown to move a card between queues (e.g. escalate a Walk-in to Priority).
- Click the ✕ button to remove a card from the board entirely (e.g. customer changed their mind).
The board records both started_at (first time the card hit "In progress") and completed_at. These power future reports on average bay time per job.
View queue permission is required to see the board; Manage queue is required to add cards, change status, or remove cards.
Inventory
The inventory module is your parts and accessories catalog. It controls what items appear in POS search results, what parts can be added to service work orders, and which items trigger low-stock alerts.
View inventory: Cashier, Staff, Manager, Admin, Owner. Create & edit items: Manager, Admin, Owner.
Adding a new item
- Go to Inventory in the sidebar, then click Add item.
- Fill in the name and optional part number. The SKU is optional — leave it blank and the system auto-generates one from the brand and name (e.g.
MOTUL-7100-20W50). If you type your own SKU it's kept as-is. Either way it must be unique within your organization. - Optionally enter a barcode (used by the Scan items workflow) and a location (e.g. "Shelf A3, Bin 12") to find the part on the floor. Like the SKU, a barcode must be unique within your organization.
- Select a category and brand. Create these first under Catalog → Categories and Catalog → Brands if needed.
- Set the unit of measure (pcs, set, liter, etc.).
- Enter cost price, selling price, and optionally a minimum selling price (the floor below which the POS shows a warning).
- Set the current stock quantity and a minimum stock level for low-stock alerts.
- Optionally, fill in compatible model, compatible year, and a description — these help cashiers identify the right part in POS search.
- Click Save. The item is now available in POS search and can be added to service jobs.
Uploading item images
On the item edit page, scroll to the Images section and upload one or more photos. The first image is set as the thumbnail shown in POS search results. You can change the primary image by clicking Set as primary next to any photo. Images can be clicked in the POS to open a full-screen carousel.
Duplicating an item
To create a new item based on an existing one, click the Duplicate button (copy icon) on any item row in the inventory list or tile view. The "Add item" form opens pre-filled with the source item's details (name, part number, category, brand, supplier, description, etc.). Fields that must be unique — SKU, barcode — are cleared, and pricing and stock are reset to zero so you can fill in the correct values for the new item.
Editing and deactivating items
Click any item on the inventory list to open its edit form. To stop an item from appearing in POS or service forms without deleting it, uncheck Active. Inactive items remain in historical records but cannot be added to new sales or services.
Stock levels
Stock is automatically deducted when an item is sold via POS or added to a service work order (or back job). You can also adjust quantity directly on the edit form for quick corrections.
For deliveries, returns, and write-offs, the cleaner way is a stock movement via the Scan items tool (below): every stock-in / stock-out records a reason and a before/after snapshot so you keep an audit trail of why the count changed. Stock-in reasons are received, return, and correction; stock-out reasons are sold, used, damaged, lost, correction, and other.
When an item's quantity falls to or below its minimum stock value, it appears in the Dashboard low-stock panel and in the Reports → Low stock section. Set realistic minimums so you have enough lead time to reorder.
Filtering, searching, and sorting the inventory list
Use the search bar and category / brand filters at the top of the inventory page to quickly find items. Multi-word searches match item details; prefix an unwanted word with a minus sign (for example, oil -gear) to exclude matching items. The list shows current stock, selling price, and status at a glance.
Column headers are clickable to sort the list — click once for ascending, again for descending. The active sort column shows an arrow indicator; other columns show a faint sort icon on hover. The default sort is by item name ascending.
Physical inventory count sheet
Click Download Count Sheet to export the currently filtered inventory list as a CSV. It includes item identity, location, unit, system quantity, and a blank Actual Count column for a physical stocktake. Apply search, category, or brand filters before downloading if you only want part of the catalog.
Barcode scanning (Scan items)
Click Scan items in the sidebar to open the scan modal from any page. Point your device camera at a product barcode — or type a barcode / SKU and press Enter. The modal has three modes:
- Lookup — finds the item and shows its stock on hand, location, and prices, with an Open item button to jump to its edit page. Available to anyone who can view inventory.
- Stock In — add received/returned stock. Enter the quantity received, pick a reason, and add an optional note. Requires the manage inventory permission.
- Stock Out — remove stock for items used, sold, damaged, or lost. Same quantity + reason + note. Requires manage inventory.
If a scanned code isn't in inventory, the modal offers to Create new item (pre-filling the barcode) — except in Stock Out mode, where you can't remove stock for an unknown product.
Stock forecast
From the Inventory page, open the Stock forecast view to see which items are predicted to run out, based on recent sales + service usage. Each row shows on-hand quantity, average daily usage, estimated days left, the predicted run-out date, and a suggested reorder quantity. Items are graded:
| Status | Meaning |
|---|---|
| Critical | Predicted to run out within the days-of-cover threshold (or already at/below minimum stock). |
| Warning | Running low soon — getting close to the threshold. |
| OK | Well stocked for the foreseeable period. |
| No usage | No recent demand, so no run-out can be predicted. |
The threshold (days of cover) comes from your organization default, but any item can override it via the Forecast days of cover field on its edit form — overridden rows are flagged. The number of items currently forecast as low also appears as a red badge on the Inventory sidebar item.
Stock-In
Stock-In, indented below Inventory, records a supplier delivery as one traceable document with multiple item lines. Use it for purchase receipts; use the Scan items modal for a quick single-item correction or return.
View: users who can view inventory. Create, edit, confirm, and delete drafts: users who can manage inventory.
Recording a delivery
- Open Inventory → Stock-In and click New Stock-In.
- Enter the delivery date, optional supplier, supplier reference or invoice number, and notes. Duplicate supplier/reference combinations are flagged.
- Search for items, add each delivered line, and enter quantity and purchase cost. Review the calculated average cost and choose whether to keep, use the suggested, or set a custom selling price. If a product is missing, authorized users can create a basic inventory item without leaving the form.
- Choose Save as Draft, review the saved document, then confirm it when the delivery is final.
Drafts do not change stock. Confirmation posts every line to inventory, updates weighted average and latest purchase costs, and records the stock movements used by financial reporting. Confirmed documents are read-only; only drafts can be edited or deleted.
Stock Adjustments
Use Inventory → Stock Adjustments for a traceable correction to one item's balance. Choose Stock In or Stock Out, select the item, enter the quantity, and choose Damaged, Lost, or Correction as the reason. You may also add a reference number and notes.
Save as Draft records the document without changing inventory. Record Adjustment, or confirming a saved draft, posts the movement and records the balance before and after. Confirmed adjustments are read-only.
Return Items
Use Inventory → Return Items to record one or more items returned by a customer or sent back to a supplier. Select the return type and matching customer or supplier, add an optional reference and reason, then add each item with its quantity and refund amount.
For each line, choose whether it should be restocked. A confirmed customer return adds restocked items to inventory; a confirmed supplier return removes its items from inventory. Drafts do not change stock, and confirmed returns are read-only.
Customers
The Customers module stores your customer contact information and their registered motorcycles. Customer records are used when creating service work orders and can be attached to POS sales for tracking purposes.
View customers: Cashier, Mechanic, Manager, Admin, Owner. Add & edit: Cashier, Manager, Admin, Owner.
Adding a new customer
- Go to Customers in the sidebar, then click Add customer.
- Fill in the customer's name and optionally their mobile number, email, and address. The mobile field is optional — not every customer wants to share a number.
- Click Save customer.
Registering a motorcycle for a customer
- Open the customer's profile page (click their name in the customer list).
- Click Add motorcycle.
- Enter the make (e.g. Honda), model (e.g. CBR 150), year, and plate number.
- Click Save motorcycle.
A customer can have multiple motorcycles. When creating a service, you choose which motorcycle is being brought in.
Transferring motorcycle ownership
When a customer sells a bike to someone else, you can transfer it without losing history:
- Open the original owner's customer profile and find the motorcycle in the Motorcycles table.
- Click the transfer button (arrows icon) next to the active motorcycle.
- In the modal, search for and select the new owner (must be a customer in the same branch).
- Click Transfer bike. The original record is marked "Transferred" and a fresh copy is created under the new owner.
The original owner's service history stays linked to the retired record — nothing is lost. The motorcycles table shows transferred bikes with a Transferred badge and a link to the new owner.
Customer profile
The customer profile page shows all their registered motorcycles (including transferred ones) and their full service history — every work order ever created for that customer, with dates, status, and amounts paid.
Mechanic commissions
The Commissions page (sidebar → Commissions, banknotes icon) is a per-mechanic earnings ledger. Each row represents one service the mechanic was assigned to with a commission rate — the row is created automatically when the service is created, and its eligibility state changes as the service progresses.
How commissions are generated
When you assign a mechanic to a service and that mechanic has a commission rate configured on their profile, a commission row is recorded for the service. You don't need to do anything manually — the ledger fills itself. The commission is calculated on the job's labor (including the labor portion of any applied packages); parts are excluded.
If a branch has a minimum daily commission, the daily reconciliation compares each mechanic's eligible job commission with that guarantee. When the job total is lower, a daily adjustment tops it up to the configured minimum. The report links each total to its contributing services and back jobs so the amount can be audited.
The commission rate is locked in when the mechanic is assigned to the service. Updating a mechanic's rate later applies only to new services — it never rewrites the commission on jobs they were already assigned to.
Eligibility statuses
| Status | Meaning |
|---|---|
| Pending | Service is still in progress or not fully paid. The commission is projected but not yet owed. |
| Earned | Service is completed and fully paid. The commission is now owed to the mechanic and can be marked paid. |
You can only mark earned rows as paid. A service must reach Completed status and have a zero outstanding balance before its commission becomes earned.
Summary totals
The page header shows totals for the active filter set: total count, pending amount, earned amount, paid amount, and unpaid amount. These respect every filter you apply, so you can quickly answer "how much do I owe Mike for last month?" by filtering by mechanic + date range.
Filters
- Mechanic — narrow to one person.
- Date range (from / to) — filters by service date.
- Eligibility — Pending or Earned only.
- Commission status — Paid or Unpaid.
Marking commissions paid
- Find the earned, unpaid row(s).
- Click Mark paid on a single row to pay just that one, or click Mark all paid at the top to pay every unpaid + earned row matching the current filters.
- The system stamps the row with the current timestamp and records who marked it paid.
Filter by mechanic + date range, then click Mark all paid. This is the fastest way to close out a payroll period for one mechanic.
Expenses
The Expenses module (sidebar → Expenses, banknotes icon) lets you track business outflows — rent, utilities, parts purchases, supplies, and anything else the shop spends money on. Expenses go through an approval workflow so managers can review costs before they count in financial reports.
View: Cashier, Mechanic, Staff, Manager, Admin, Owner. Create & edit: Mechanic, Staff, Manager, Admin, Owner. Approve / reject: Manager, Admin, Owner.
Expense statuses
| Status | Meaning |
|---|---|
| Draft | Just created, not yet submitted for review. |
| Pending | Submitted and waiting for approval. |
| Approved | Accepted — counts toward financial reports and Profit & Loss. |
| Rejected | Declined by a manager. A rejection reason is recorded. |
| Cancelled | Withdrawn by the submitter or an admin. |
Recording an expense
- Go to Expenses in the sidebar and click New expense.
- Select an expense category (e.g. Utilities, Rent, Office Supplies). Categories are managed under Catalog → Expense Categories.
- Fill in the title, amount, date, payment method (cash, GCash, bank transfer, card, cheque, or other), and optional reference/OR number.
- Optionally link a supplier, a related work order, and add a description or notes.
- Upload one or more receipt images (up to 5 MB each) if you have them — click any receipt thumbnail afterward to view it full-size.
- Click Save. The modal returns you to the current filtered list after saving. The expense is created in Draft status.
Users with the approve expenses permission see an Approve immediately checkbox on the create form — tick it to skip the pending step and record an already-approved expense.
Approving or rejecting
On the expense detail page, managers (or anyone with the approve expenses permission) see Approve and Reject buttons. Rejecting requires a reason. Only approved expenses count in financial reports.
Due dates, accruals, and payments
An approved expense can be tracked before it is fully paid. Set a due date and record one or more payments from the detail page; the page shows paid and outstanding amounts and identifies unpaid, partially paid, paid, and overdue obligations. If a payment was entered incorrectly, an authorized user can reverse it without deleting the expense history. Expense obligations and payments are scoped to the active branch.
List & filters
The Expenses index shows summary metrics and a filterable table. Filter by one or more categories, status, payment method, person who incurred it, supplier, and date range. Click Export CSV to download the filtered list.
Sourced items
Sourced items (sidebar → Sourced Items, indented under Expenses) track parts purchased from external suppliers for a customer's service job — e.g. a mechanic buys a specific part from another shop because you don't have it in stock. The module records the cost, markup, and links everything back to the work order.
View: Cashier, Mechanic, Staff, Manager, Admin, Owner. Create & manage: Mechanic, Staff, Manager, Admin, Owner. Approve: Manager, Admin, Owner. Sell below cost: Owner, Admin only.
Lifecycle
A sourced item moves through these stages:
Draft / Pending → Approved → Charged (added to work order) → optionally Stocked (surplus added to inventory). It can also be Cancelled at any point, which reverses any created line items and expenses.
Recording a sourced item
- Go to Sourced Items in the sidebar and click New sourced item.
- Select the customer and optionally link a work order.
- Enter the item name, quantity, unit cost (what you paid), and selling price (what the customer pays).
- Fill in the source shop name, optional known supplier, purchased by, and payment method.
- Upload a receipt if available.
- Click Save.
The form shows a live-computed panel with total cost, profit, and margin % as you type.
Saving a selling price below cost requires the sell sourced item below cost permission (Owner and Admin only by default). This prevents accidental losses on sourced parts.
After approval
Once a sourced item is approved, the detail page shows additional actions:
- Charge — adds the item as a line on the linked work order and auto-creates a cost expense.
- Cancel — reverses the service line item and expense.
- Stock — add surplus quantity to an existing inventory item.
- Stock as new item — create a brand-new inventory item from the sourced part.
List & filters
The index page shows summary cards and a filterable table. Filter by status, customer, mechanic, purchaser, supplier, linked service, and date range.
Purchase Orders
A purchase order (PO) is a formal order you place with a supplier for a batch of items from that supplier's catalog. POs are built from the supplier's existing item catalog (see Catalog setup → Suppliers), so make sure the supplier's items are populated before you start.
Create, edit, and manage purchase orders: users with the manage inventory permission (typically Manager, Admin, Owner). View only: anyone with view inventory.
Creating a purchase order
- Go to Catalog → Purchase Orders in the sidebar (below Suppliers) and click Create PO.
- Choose a supplier from the dropdown — each option shows whether that supplier is Global or Internal so you can tell apart suppliers that share the same name.
- The supplier's item catalog loads on the left. Use the search box to filter by description or model, tick the items you want (or use the header checkbox to select all visible items), enter a quantity for each, and click Add Selected Items to PO — or add items one at a time with each row's own Add Item button.
- Selected items move to the Selected Items to PO table on the right, where you can adjust quantities or remove a line. The Grand Total updates as you go.
- Click Save as Draft to keep working on it later, or Submit Purchase Order to finalize it.
Every supplier item can define a minimum order quantity. If you try to add a quantity below an item's MOQ, the app blocks it and tells you the minimum required.
Purchase order statuses
| Status | What it means |
|---|---|
| Draft | Saved but not yet sent — still fully editable, including changing the supplier (this clears the current item selection) or deleting it outright. |
| Submitted | Finalized and sent to the supplier. No longer editable — only Mark Received or Cancel PO are available. |
| Received | The order has arrived. This does not automatically adjust inventory stock — use the Inventory scan-in tool separately when the stock physically arrives. |
| Cancelled | The order will not be fulfilled. |
Editing or deleting a draft
Open a Draft PO from the list (click Edit) to change its supplier, items, or quantities — the same builder screen is reused for editing. A Draft PO can also be deleted entirely, from either the list (trash icon on its row) or the edit screen itself (Delete Draft) — this is only available while it's still a Draft.
List & filters
The Purchase Orders index shows every PO with its number, supplier, status, total, and submission date. Search by PO number and filter by supplier or status. Rows show Edit for Draft POs or Open (read-only detail view) for everything else.
Reports
The main Reports page brings together revenue, profitability, outstanding service balances, inventory usage, mechanic performance, and warranty activity for the active branch.
Required permission: View reports. The reports shown always follow the active branch and your assigned permissions.
Using the date filter
Set the From and To dates and click Apply range. Most figures use the selected period. Outstanding receivables and Low stock are current snapshots, while pending service revenue is limited to in-progress jobs created in the selected range.
Period totals
The four summary cards show:
- Total revenue — gross paid services plus POS sales, and net revenue after mechanic commissions and sourced-item costs.
- Net profit — revenue remaining after inventory cost, sourced-item cost, and approved operating expenses, with profit margin. This card appears only when you can view Profit & Loss.
- Outstanding — receivables from completed but unpaid services, plus projected revenue from pending or ongoing services in the range.
- Top mechanic — the mechanic with the highest completed-job revenue for the period.
Revenue breakdown
- Service Revenue shows gross billed value, net revenue, jobs created, and jobs completed. Net deducts mechanic commissions and sourced-item acquisition costs.
- Item Revenue splits inventory-item sales between paid services and POS and separately shows sourced-item acquisition cost.
- Total labor splits earned commissionable labor between the shop share and mechanic commissions, including earned minimum-daily adjustments.
Services by mechanic
Each mechanic row shows services assigned, completed jobs, completed value, and final commission. The final commission includes eligible job commissions and any earned minimum-daily adjustment.
Top inventory items used
This table combines inventory items used in paid services and sold through POS. It shows channel mix, units, and revenue. Click an item to expand the underlying service and POS transactions, or use View full report to open Sold Items.
Low stock alert
A snapshot (independent of the date filter) of inventory items currently at or below their minimum stock level. This section always shows the current state so you can identify items that need to be reordered immediately.
Back jobs & warranty
The warranty section summarizes total, approved, rejected, and partial back jobs plus recorded back-job cost. Its mechanic table shows each mechanic's back jobs, warranty approvals, rejection rate, cost, and average resolution time.
Sold Items
The Sold Items report combines inventory consumed through service jobs and POS sales for the selected period. It shows total units, revenue, channel mix, the top item by revenue, and a ranked item list.
Use the date range, item search, and All / Service / POS channel chips to focus the report. Sort by item, quantity, or revenue. Select an item row to expand its transaction breakdown, then follow a linked service or sale number to inspect the source record.
Profit & Loss
The Profit & Loss page (sidebar → Profit & Loss, indented under Reports) gives you a date-range-filterable financial statement that ties together your revenue and costs in one view.
Required permission: View Profit & Loss. This sensitive financial statement is restricted to Owners by default.
The P&L formula
The page shows each component as a row — Gross Sales, minus Mechanic Commissions, Inventory Cost, Sourced Item Cost, and Operating Expenses — with the final Net Profit at the bottom. A separate card highlights the sourced-item profit contribution so you can see how much markup you're earning on externally sourced parts.
Expense reports
A companion Expense Reports page can use Accrual basis (approved expenses by incurred date) or Cash basis (approved payments by payment date). It shows accounts-payable aging, sourced-item count/cost/revenue/profit, and expense totals by category, payment method, staff or mechanic, and day. Users with Profit & Loss access can move between the two pages.
AI Insights
AI Insights summarizes scheduled analysis for the active branch. It is available to users who can view reports and is decision support, not an automatic change to inventory or accounting records.
- Activity Digest — a daily operational summary with critical flags.
- Expense & Purchase Order Anomalies — nightly flags for unusual records, with a confidence label.
- Reorder Suggestions — nightly item quantities and urgency based on stock and recent use.
- Demand Forecast — a weekly forecast showing expected demand and trend.
Insights appear after their scheduled jobs have run. “No insight yet” does not indicate an error on a new installation or branch with insufficient history.
Team & users
Required role: Admin or Owner.
Inviting a new team member
- Go to Organization → Team in the sidebar.
- Click Add user.
- Enter the new member's name, email, and a temporary password.
- Select their role from the dropdown.
- Optionally assign them to a specific branch. Branch-specific users only see data for their branch; org-level users (no branch assigned) see all branches.
- Click Save. The user can now log in with the provided credentials and should change their password under My account → Security.
Editing or deactivating a user
Click the edit icon next to any user on the Team page to change their name, role, or branch assignment. To remove access, delete the user. Their historical records (sales, services) are preserved.
Customizing role permissions
- Go to Settings → Role permissions.
- Select a role (Admin, Manager, Cashier, Mechanic, or Staff) using the tabs at the top.
- Check or uncheck permissions in each module group.
- Click Save permissions. Changes take effect immediately for all users with that role.
The Owner role always has full access and cannot be restricted. This prevents the shop owner from being accidentally locked out.
Branches
Required role: Admin or Owner.
If your business operates from more than one location, you can create separate branches. Each branch has its own sales, service, and inventory records.
Creating a branch
- Go to Settings → Branches.
- Click Add branch and enter the branch name and address.
- Click Save.
Switching branches
Users with org-level access (no fixed branch) see a branch switcher dropdown at the top of the sidebar. Click it and select a branch to view that branch's data. The active branch name is shown in the dropdown button.
Staff assigned to a specific branch always see their branch's data — they do not have a branch switcher.
Catalog setup
Before adding inventory items you should set up your brands, categories, and suppliers. These are found under the Catalog section in the sidebar (visible to Managers, Admins, and Owners).
Categories
Categories group your inventory items (e.g. Engine parts, Filters, Brakes, Electrical). Go to Catalog → Categories, click Add category, enter a name, and save.
Brands
Brands represent manufacturers (e.g. Honda, Yamaha, NGK, Motul). Go to Catalog → Brands, click Add brand, and save.
Suppliers
Suppliers are the companies you purchase inventory from. Go to Catalog → Suppliers, click Add supplier, and fill in the name, contact person, contact number, email, address, notes, and an optional logo.
| Type | What it means |
|---|---|
| Internal | Created by your organization's own staff (Manager/Admin/Owner). Only your organization can see and manage it. |
| Global | Created by a super admin and shared across every organization on the platform. Your organization can order from a global supplier's catalog, but cannot edit the supplier record itself. |
Each supplier keeps its own item catalog — the list of parts/products it sells, with price, SRP, unit, minimum order quantity (MOQ), and an optional brand. The brand field lets the same supplier carry the same part/model under more than one manufacturer (e.g. a "Brake Pad" for "Mio" sold under both "Yamaha" and an aftermarket brand) without the two conflicting. Staff can populate a supplier's catalog in either of two ways:
- Go to Catalog → Supplier Items (below Suppliers in the sidebar), select the supplier, and click Download Excel Template — the file is pre-filled with the supplier's name and ID so it always matches back to the right catalog. Fill in each row's Model/Variant, Description, Brand, Unit, MOQ, Price, and SRP.
- Upload the completed file back on the same page. New rows are created, existing rows (matched by description, model, and brand together) are updated with the new price/SRP, and invalid rows are skipped with an error explaining why.
This staff-side import is only available for Internal suppliers — a Global supplier manages its own catalog through the separate Supplier Portal login instead.
Mechanics
Mechanics are the technicians assigned to service work orders. Go to Catalog → Mechanics, click Add mechanic, and enter their name and contact number.
Set up your categories, brands, and mechanics before adding inventory items and services — the forms reference these lists and they cannot be left blank.
Supplier Portal
The Supplier Portal is a completely separate, self-service login (at /supplier/login) that lets a Global supplier manage their own item catalog and view their own purchase orders — without ever logging into the main Metro Moto app or seeing any of your organization's other data.
Only Global suppliers can have portal accounts. Granting portal access: Super Admin only.
Granting a supplier portal access
- As a super admin, go to Catalog → Suppliers.
- On a Global supplier's row, click the users icon button to open its portal-user list.
- Click Add user, enter a name, email, and password for the supplier's contact person, and save.
- Share the login URL and credentials with the supplier. They log in at
/supplier/login— separate from the staff login page. - A portal user can be edited (including resetting the password) or deactivated at any time from the same list.
What the supplier sees
After logging in, the supplier lands on a dashboard summarizing their total, active, and inactive items, and their total, pending, and completed purchase orders. From there they can:
- Manage their item catalog — add, edit, or deactivate items (description, model/variant, brand, unit, MOQ, price, SRP) directly, one at a time.
- Bulk import their catalog — download the same Excel template used on the staff side, fill it in, and upload it back. This is the fastest way for a supplier to publish or update their full price list.
- View their purchase orders — a read-only list of every PO your organization (or any organization) has placed with them, with status and totals. Suppliers cannot create, edit, or cancel POs themselves.
Because a Global supplier's catalog is shared across every organization on the platform, updates the supplier makes through their portal are immediately visible to every organization building a purchase order from that supplier.
Expense categories
Required permission: Manage expense categories (Owner, Admin, Manager by default).
Expense categories classify what your shop spends money on — e.g. "Utilities", "Rent", "Office Supplies", "Vehicle Maintenance". Each category also has an expense type: Operating Expense, Inventory Purchase, Capital Expenditure, or Non-operating Expense. Only approved expenses in categories classified as Operating Expense are included in the Profit & Loss operating-expense total.
Go to Catalog → Expense Categories to manage them. The page supports inline create, edit, and delete. Each category has a name, optional description, expense type, sort order (controls display sequence), and an active toggle.
Some categories (like "Sourced Items") are created automatically by the system and cannot be deactivated or deleted. Categories that already have expenses linked to them cannot be deleted — deactivate them instead to hide them from the dropdown.
Organization settings
Required role: Owner (full access) or Admin (most settings).
Go to Settings → Organization to update your shop's details.
Business information
Update your organization's name and other business details. This information may appear on printed receipts and reports.
Logo
Upload your shop's logo by clicking Upload logo on the Organization settings page. To remove it, click Remove logo. Supported formats: PNG, JPG, SVG.
Subscription plan
Owners can view and change their subscription plan under Organization settings. The current plan and trial status (if applicable) are shown at the top of the page.
New organizations start with a 30-day free trial. A banner at the top of every page shows how many days remain. Click Upgrade → to switch to a paid plan before the trial expires.
Billing
The Billing page (sidebar → Billing, credit-card icon) is where owners purchase, renew, and submit proof of payment for their subscription. Payments are submitted off-platform (GCash, bank transfer, or cash) and activated by a Metro Moto super admin after review.
Only users with the Manage organization settings permission (typically Owners) can see this page.
What's on the page
- Current plan card — your plan name, billing cycle, status (Trialing / Active / Past due / Cancelled), and renewal date.
- Available plans — every active plan you can purchase or renew with. Pick one to start a payment submission.
- Payment history — your last 20 submissions with status (Pending / Approved / Rejected) and any reviewer notes.
Submitting a payment
- Pick the plan and billing cycle (monthly or yearly) you want to pay for.
- Pay off-platform using the payment instructions shown (GCash number, bank account, etc.).
- Fill out the submission form: payment method, reference number (GCash ref / bank transaction ID), amount, date paid, and optional notes.
- Upload your proof of payment (screenshot or receipt).
- Click Submit payment.
Your submission lands in the super admin's review queue with status Pending. Once approved, your plan is activated and the renewal date is extended. If rejected, you'll see the reviewer's note explaining why.
Submitting payment doesn't auto-activate your plan — a super admin must approve it first. Allow some time for review, especially outside business hours.
Plan limits
Your plan caps how much your organization can do. Limits are organization-wide (shared across all branches), and a blank limit means unlimited. Two caps are actively enforced:
- Users — once you reach your plan's user count, inviting another team member is blocked with an “upgrade your plan” message until you remove a user or move to a bigger plan.
- Transactions — POS sales plus service work-orders, counted over a rolling 30-day window. When you reach the cap, both completing a sale and creating a service are blocked until older transactions age past 30 days (capacity returns gradually — there is no fixed monthly reset date) or you upgrade.
The Point of Sale and New Service pages show a heads-up banner when you're close to (amber) or have reached (red) the transaction cap, so cashiers know before they start a sale or job. Your current users / branches / transactions usage is summarized on the subscription view.
Both POS sales and service work-orders count toward the transaction cap — not just sales — and the 30-day window is a rolling one, not a calendar month.
Activity log
The Activity log page (sidebar → Activity log, clock icon) is a paginated audit feed of every meaningful action taken in your organization — record created, updated, deleted, restored, plus authentication events like logins and logouts.
Only users with the View activity log permission can see this page.
What gets logged
- Create / update / delete / restore on tracked models (customers, services, inventory items, users, branches, etc.).
- Login and logout events.
- The causer (which user did it), the subject (which record was affected), and the timestamp.
Branch scoping
Rows are automatically scoped to your current organization and the branch you're viewing. Switching branches changes which entries you see. Org-wide events that aren't tied to a branch — like login / logout — stay visible in every branch's feed so the audit trail stays complete.
Critical updates
Some edits are flagged as critical updates — changes to money- or stock-sensitive fields (labor cost, discount, charges, stock quantity, parts/packages added or removed) made through an edit form. These always require the person making the change to pick a reason (e.g. Price adjustment, Stock correction, Damaged item, Warranty adjustment, Manager approved, or Other with a note). Critical rows are highlighted in red in the feed and carry their reason so you can quickly spot and investigate sensitive changes.
Filters
- User — show only actions by one person.
- Subject type — narrow to one kind of record (e.g. only Service changes). The dropdown only lists types that actually appear in the current feed.
- Event — created / updated / deleted / restored.
- Critical updates only — show just the flagged, reason-required changes described above.
- Inventory-sensitive / Financial-sensitive — narrow critical updates further to those touching stock quantities, or those touching money (prices, charges, discounts).
- Date range (from / to).
If a customer's phone number looks wrong or a service status is unexpected, filter by subject type and date range to find the exact edit and the user behind it.
Activity entries are retained for 90 days by default and older entries are removed by the scheduled cleanup job. The deployment administrator can change the retention period.
My account
Every user can manage their own profile and security settings. Click your name or avatar in the sidebar and select Settings.
Profile
Update your display name and email address. If you change your email, a verification link will be sent to the new address before it takes effect.
Password
Go to Settings → Security to change your password. Enter your current password, then enter and confirm a new one.
Two-factor authentication (2FA)
- Go to Settings → Security.
- Click Enable two-factor authentication.
- Scan the QR code with an authenticator app (Google Authenticator, Authy, etc.).
- Enter the 6-digit code shown in your app to confirm setup.
- Save your recovery codes in a safe place — they can be used to log in if you lose access to your authenticator app.
Passkeys
Metro Moto supports passkeys (biometric / hardware key login) as an alternative to passwords. Go to Settings → Security → Passkeys to register your device.
Appearance
Switch between Light, Dark, and System (follows your device) color modes from Settings → Appearance.
Deleting your account
Users can delete their own account from Settings → Profile → Delete account. This action is permanent. Your transaction history is preserved in the system for record-keeping.
Quick reference — keyboard shortcuts & tips
| Tip | Detail |
|---|---|
| POS search focus | The search box is auto-focused when the POS page loads — start typing immediately without clicking. |
| ESC key in POS | Closes any open modal (item detail or image carousel). Also clears the search box if no modal is open. |
| Arrow keys in lightbox | ← and → navigate between images in the item photo carousel. |
| Low stock badge | The amber "Low stock" KPI card on the dashboard links directly to the inventory list filtered for low-stock items. |
| Branch switcher | Changing branch in the sidebar immediately scopes all data on the current page to that branch — no page reload needed. |
| Date range memory | The Dashboard and Reports pages remember the date range you applied in the URL — bookmark a filtered URL to reopen the same view later. |
| Dark mode | Toggle dark mode under Settings → Appearance. The setting is per-user and saved to your account. |
For support or questions, contact your system administrator.