User Guide
Operational guide for the Watch Inventory Management System — follow along while you work.
| Timezone | Asia/Kuala_Lumpur (MYT, GMT+8) |
| Currency | MYR (Malaysian Ringgit) |
| Date Format | DD/MM/YYYY |
| Time Format | 24-hour (e.g., 14:30) |
Table of Contents
- Getting Started
- System Setup (Admin)
- Supply & QR Codes
- Receiving Watches
- Receiving Accessories
- Quality Control
- Dispatching to a Customer
- Dispatching for Internal Use
- Creating & Managing Orders
- Processing Returns
- Managing Repairs
- Working with Accessories (Linking, Unlinking)
- Browsing Watch Inventory
- Browsing Accessory Inventory
- Viewing Item Profiles
- Managing Customers
- Reports
- Dashboard
- Global Search & Alerts
- Glossary
1. Getting Started
First-Time Login
- Open the system URL in your browser.
- Enter your Email and Password.
- Click Sign In.
- System redirects to the Dashboard.
What can go wrong
Forgot Password
- Click "Forgot Password?" on the login page.
- Enter your registered email address.
- Click "Send Reset Link".
- Check your email inbox for a reset link and follow the instructions.
Session Timeout
Navigation
The sidebar on the left contains all navigation links. What you see depends on your role:
| Role | Sidebar Sections Visible |
|---|---|
| Admin | Everything, including Configuration. |
| Operator | Everything except Configuration. |
| Technician | Dashboard (view only), Watch List (view only), Repairs, and Logout. |
- Sidebar toggle — Click the collapse/expand button. Your preference persists across sessions.
- Mobile — Tap the hamburger menu icon to open. Swipe left to close.
- Global search bar — At the top of the sidebar. Searches across watches, accessories, invoices, and QR codes.
- Alert bell (Admin/Operator only) — Shows overdue repairs and low-stock warnings with an unread badge count.
2. System Setup (Admin Only) Admin
Step 1: Add Models
Configuration > Models & Variants tab.
- Click "+ Add Model".
- Enter Name (e.g., "Forrest Walnut Brown") and Code (short code used in QR codes, e.g., "FWB").
- Click Save.
Step 2: Add Variants per Model
- Open the Models & Variants tab. Each model is listed as its own card — there is no model dropdown.
- On the card for the model you want, click its Variant button (the one with the + icon).
- Enter Name (e.g., "Midnight Blue"), Code (e.g., "02"), and Default Price (MYR).
- Click Save.
Step 3: Add Categories (for Accessories)
Configuration > Categories tab.
- Click "+ Add Category".
- Enter Name, Code.
- Optionally select a Parent category to create a hierarchy (e.g., "Leather Strap" under "Straps").
- Variant options are not part of this form. After saving, the category is listed with a "Variants: ON" / "Variants: OFF" button — click it to turn variants on for that category (e.g., straps come in different colours).
- There is no Reorder Point on this form. You set it per item when receiving a bulk, quantity-tracked accessory (Section 5), and you can change it later from the Accessories page.
- Click Save.
Step 4: Add Couriers
Configuration > Couriers tab.
- Click "+ Add Courier".
- Enter Name and Default Price (MYR).
- Click Save.
Step 5: Add Payment Providers
Configuration > Providers tab.
- Click "+ Add Provider".
- Enter Name (e.g., "Stripe", "PayPal").
- Click Save.
Step 6: Add Payment Methods
Configuration > Payment Methods tab.
- Click "+ Add Payment Method".
- Enter Name (e.g., "Credit Card", "Bank Transfer").
- Select Fee Type:
• MDR — Percentage fee (e.g., 1.5%). System auto-calculates gateway fees on each payment. MDR value must be between 0 and 100.
• Flat Rate — Fixed fee per transaction (e.g., RM 1.00). Must be ≥ 0.
• None — No fee applied.
- Select Provider (from Step 5).
- Click Save.
Step 7: Add Technicians
Configuration > Technicians tab.
- Click "+ Add Technician".
- Enter Name.
- Choose type:
• Registered — Creates a login account for the technician. They can log in and see their repairs. Enter email (required).
• Unregistered — Record-only. Used for external technicians who do not need system access.
- Click Save.
Step 8: Add Users
Configuration > Users tab.
- Click "+ Add User".
- Enter Name, Email, a Password (minimum 6 characters), and select Role (Admin / Operator / Technician).
- Click Save — the system creates the sign-in account using the password you typed. Nothing is emailed. Hand the password to the person yourself and tell them to change it from Reset Password.
Reset password: Click Reset next to a user → confirmation dialog → system sends a password reset email to the user.
Audit Log Tab
View all system changes. Filter by Entity Type, Action, User, Date Range. Export to CSV. Click any row to see field-level changes (old → new values).
Adding a Subcategory
A category can be nested under another. You can do this in two ways:
- While creating a category, pick a Parent Category; or
- On an existing category's row, click Subcategory — the form opens titled "Add Subcategory to [parent name]" and the parent is already set.
On success you see "Subcategory added". Nesting is what lets Type and Category cascade when receiving an accessory (Section 5).
3. Supply & QR Codes
Factory Orders (Supply Tab)
Sidebar > Supply & QR opens on the Supply tab. For each watch variant it shows how many pre-ordered watches customers are waiting for, how many are free in stock or awaiting QC, how many are on order from the factory and when the next batch is due, and whether there are enough unused QR labels to receive what is coming. The figures are the same as the dashboard's Pre-Orders vs Stock card.
- When you order from the factory, click Add Factory Order Admin.
- Select the Model and the Ordered On date, and add a Note such as the factory PO number.
- Type a quantity for each variant ordered. If the factory ships in lots, click + Add batch and give each batch its own Due date (leave it blank if the factory has not given one).
- Click Save. Each variant in each batch becomes its own line under Factory Orders.
Nothing is ticked off by hand: watches received on the Receive page on or after the ordered-on date count as arrived, filling each variant's earliest-due batch first. If a shipment comes short, edit the line and lower the quantity. Use Change date when the factory moves a whole batch, and delete a line only if it was entered by mistake.
For Watches
Sidebar > Supply & QR > Watch QR tab.
- Select Model (required).
- Select Variant (required) — options filter based on the selected model.
- Model Code and Variant Code auto-fill (read-only). If these are blank, codes have not been set.
- Enter Start Number and End Number for the range.
- Format Preview shows the pattern (e.g., FWB_02_001).
- Click Generate QR Codes.
Download PDF Labels
Click the download button on a batch to create a PDF with QR code labels (35 per page in a 5x7 grid). File: qr-labels-[batchid].pdf.
Editing a Batch
You can change the range of an existing batch, but you cannot remove codes that are already assigned to watches.
Deleting a Batch
For Accessories
Supply & QR > Accessory QR tab. Same flow: select Type > Category > optional Variant. Format uses 4-digit padding (e.g., TYPE_CATG_0001).
Printing the Labels
After a batch is generated, click Download Labels on that batch. The system builds an A4 PDF of the QR labels in your browser and downloads it — nothing is sent to a printer directly, so print the PDF yourself.
Deleting a Batch
A batch can be removed while its codes are still unused. Codes that have already been given to a watch or an accessory are protected: the system refuses with "Cannot remove codes that are already assigned to watches" (or "… to items"), and tells you how many are in use.
Changing a Batch's Range
Edit Batch Range lets you widen or narrow a batch after it was generated. The form shows the Current Range and how many Used Codes it already contains, then takes a New Start Number and New End Number. Extending a range mints the extra codes; narrowing it removes only codes that are still unused, and the same guard as deletion protects anything already assigned.
4. Receiving Watches
Sidebar > Receive > Watch tab.
Normal Flow (Single Watch)
- Select Model (required).
- Select Variant (required) — filters by the selected model.
- Date Received (required) — defaults to today. Cannot be a future date.
- Select QR Code (required) — dropdown shows available (unused) codes for this model/variant.
- If the dropdown is empty, no QR codes exist. Go to Supply & QR first (Section 3).
- Click the refresh button to reload the list. System shows: "QR code list refreshed".
- Select QC Status: PENDING (default), PASS, or REJECT.
- Enter Remarks (optional unless QC = REJECT).
- Click Save Watch.
Bulk Receive (Multiple Watches)
- Fill in Model, Variant, Date Received as above.
- Check the Bulk Entry checkbox.
- Range selectors appear: select From and To QR codes.
- Preview shows count: "X items will be created (START to END)".
- If Start > End, a red warning appears.
- Select QC Status (applies to all items in the range).
- Click Save Watch.
Quick Scan Mode (Rapid Intake)
- Click the Quick Scan Mode button.
- A modal opens with a camera feed and statistics (Success / Skipped / Failed counts).
- Select QC Status (default PASS) — you can change this anytime during scanning.
- Scan QR codes continuously:
- Code found & available → auto-receives the watch. Green checkmark; success count increases.
- Code already assigned → "Already received" (grey; skipped count increases).
- Code not found → "Not found in system" (red; failed count increases).
- Close the modal when done.
Editing an Existing Watch
Scan or search a QR code that is already assigned → opens in edit mode.
- Title changes to "Edit Watch".
- Locked fields (read-only): Model, Variant, QR Code, Date Received.
- Editable fields: QC Status, Remarks.
- A Repair & Return History card appears below with:
- "+ Send to Repair" — opens a repair form (Technician required, Start Date defaults to today, Target End Date auto-calculates 14 working days, Problem optional).
- "Process Customer Return" — switches to Return tab with QR pre-filled.
Tab Switch Warning
• Confirm → Changes are discarded, tab switches.
• Cancel → You stay on the current tab.
5. Receiving Accessories
Sidebar > Receive > Accessory tab.
Single Item (QR-Tracked)
- Select Type (required) — top-level category.
- Select Category (required) — filters by Type.
- Select Variant — only appears if the category supports variants.
- Date Received (required).
- Select QR Code (required) — from available codes for this category.
- Optional fields: Name, SKU, Location, Selling Price, Description.
- "Item arrived broken/damaged" checkbox — auto-sets QC to REJECT and status to Broken.
- Click Receive Item.
What can go wrong
Range Entry (Multiple QR-Tracked Items)
- Select the "Add multiple items using range (QR tracked)" radio button.
- Fill Type, Category, Variant, Date Received as above.
- Select From and To QR codes from the dropdowns.
- Fill optional fields (Name, SKU, Location, Selling Price) — these apply to all items in the range.
- Click Receive Item.
Bulk Quantity Entry
- Select the "Add bulk item (quantity tracked)" radio button.
- Fill Type, Category.
- Enter Quantity Received and Unit (default "pcs").
- Optionally set a Reorder Point — the system triggers low-stock alerts when stock falls to this level.
- Fill Name, SKU, Location.
- Click Receive Item.
Quick Search
Scan or enter a QR code in the search bar at the top of the tab:
• Found & valid → Auto-fills Type/Category/Variant. Message: "QR [code] - Type/Category/Variant pre-selected."
• Found but already assigned → Opens in edit mode to modify the existing item.
• Not found → "QR code not found. Make sure it was generated in Supply & QR > Accessory QR."
6. Quality Control
QC Status Rules
| Status | Meaning | Rules |
|---|---|---|
| PENDING | Awaiting inspection | Default for newly received items. |
| PASS | Approved for sale/dispatch | Required before dispatching. |
| REJECT | Failed inspection | Remarks are required. Cannot dispatch. |
Where to Perform QC
During Stock-In (Receive page)
Set QC Status when receiving a watch or accessory. Choose PENDING (default), PASS, or REJECT.
From Watch List (Bulk QC)
- Sidebar > Watch List > All Items tab.
- Select items via checkboxes.
- Click the bulk action dropdown > Bulk Edit QC Status.
- Select new QC Status (PASS or REJECT).
- If REJECT: enter Remarks (required).
- Confirm.
From Item Profile
- Open any item's profile (click on a QR code in any list).
- Click the Update QC button.
- Select PASS or REJECT, add Remarks if REJECT.
- Save.
7. Dispatching to a Customer
Sidebar > Dispatch.
Step 1: Find Item
Select an item from the dropdown or scan its QR code. The system validates the item immediately:
Step 2: Add More Items (Optional)
Click "+ Add Another Item" to add additional watches/accessories to the same dispatch. A running Order Total (MYR) is shown.
Step 3: Select Dispatch Reason
The Dispatch Details form appears. Select Dispatch Reason: "Customer Delivery / Sale".
Step 4: Date and Time
Auto-filled with today's date and current time. Adjust if dispatching for a different date/time.
Step 5: Order Information
Enter the Invoice Number manually, or type a WooCommerce invoice (FW + digits) and click Fetch Order.
• Success → "Order data loaded from WooCommerce" — auto-fills customer, address, prices, courier, payment method, tracking.
• Format wrong → "Enter an invoice number first (e.g. FW383908)".
• Not found → API error message displayed.
• Payment method not matched → "Payment method '[code]' not matched — pick one on the new payment row." Select manually.
• Courier not matched → "Courier '[name]' not matched — please select manually."
• Duplicate → "Invoice number '[no]' already exists."
Step 6: Customer Details
Fill in: Name (required), Phone, Email, Billing Address, Shipping Address.
Step 7: Payments
Click "+ Add Payment" for each payment tranche.
- Fill: Remark, Amount (MYR), Shipping, Provider, Method. Mark one row as Primary.
- "Auto-balance last row" — fills the remaining amount automatically.
Step 8: Shipping
Select Delivery Method (required).
• Self-pickup courier → Tracking number field is hidden.
• Regular courier → Tracking Number (required) and Delivery Cost (MYR, internal cost to courier) are shown.
Step 9: Additional Charges (Optional)
Click "+ Add Charge" for extras (e.g., engraving, gift wrapping). Enter description and amount.
Step 10: Process Dispatch
- Click Process Dispatch.
- Confirmation modal shows a summary: items, customer, payments, courier. Review carefully.
- Click Confirm.
What happens behind the scenes
- Watch status changes to "Shipped".
- Linked accessories are automatically dispatched with the watch (cascade).
- Order record created with all payment/charge/shipping details.
- Ownership history record created for the customer.
- All changes are audit-logged.
Orders with Pre-Order Items
An order can be built with pre-order placeholders for watches that have not arrived yet. Such an order cannot be shipped in stages — every placeholder must be swapped for a real, QR-coded watch before any of it can be dispatched.
- Load the draft order on the Dispatch page. A yellow banner lists what is still a placeholder: "Pre-Order Items (N): [model] [variant]. Replace with real items in the order before dispatch."
- In Items in this Dispatch, click Replace on each pre-order row and pick the real watch that arrived. The banner updates as you go and disappears with the last one.
- Fill in shipping details and click Process Dispatch. The order status becomes "Shipped" (displayed as "Completed").
Return Shipment Detection
Concurrency Protection
8. Dispatching for Internal Use
Follow the same dispatch flow as Section 7, but in Step 3, select a different Dispatch Reason:
| Reason | Item Status Becomes |
|---|---|
| Photoshoot | Out - Photoshoot |
| Marketing / Promotion | Out - Marketing |
| Exhibition / Display | Out - Exhibition |
| Loan / Borrowing | Out - Loan |
| Gift | Out - Gift |
| Other | Out - Other |
Gift Dispatch
Choosing Gift replaces the customer fields with a short gift form:
- Recipient Name — required. Leaving it blank stops the dispatch with "Recipient Name is required".
- Relationship — optional: Staff, Influencer, Business Partner, VIP Customer, Other.
- Contact Number — optional.
- Occasion — optional free text, e.g. Birthday, Appreciation, Collaboration.
The watch's status becomes Out - Gift. No customer record is created and no order is raised — a gift is not a sale, so it never appears in Sales Analytics.
repair_external.Instead of customer and payment fields, the form shows:
- Assigned To (Staff Name, required).
- Department/Team.
- Contact Number.
- Location/Venue.
- Purpose/Event Name.
- Expected Return Date — important for tracking when items should come back.
Click Process Dispatch → confirmation → success.
Bringing an Internally Dispatched Item Back
A watch sent out for a photoshoot, exhibition, loan, gift or marketing use comes back through the Watch List, not the Receive page:
- Sidebar > Watch List > Dispatches tab.
- Find the dispatch and open it.
- Enter the Return Date and any Return Remarks.
- Click Confirm Return.
The dispatch is marked returned and the watch goes back to In Warehouse, ready to sell or dispatch again.
9. Creating & Managing Orders
Sidebar > Orders.
Viewing Orders
- Filter by Status (All / Pending / Completed / Returned), Date Range.
- Click Apply. Click Clear to reset.
- Click any order row → Order Details modal with full information.
Creating a Draft Order
- Click "+ Create Order".
- Add items (watches, accessories, or pre-order placeholders).
- Each added item is immediately Reserved in the system.
- Fill customer details, payments, charges.
- Click Save → draft created in "Pending" status.
Editing an Order
- Click Edit on any Pending or Completed order.
- You can modify customer, payments, charges, add or remove items.
- Removing an item releases it back to available stock (confirmation required).
Completing a Draft (Dispatching)
From the Orders page or via the Dispatch page with a draft order ID.
• If the order has only available items → All items are dispatched. Order becomes "Shipped".
• If the order still holds any pre-order line → System blocks dispatch. Replace every placeholder on the Dispatch page first (see Section 7 — Orders with Pre-Order Items), then dispatch the whole order at once.
Fill shipping details, finalize payments, and confirm to dispatch.
Deleting a Draft
• Confirm → Draft deleted, all reserved items return to their previous status.
• Cancel → No change.
Order Statuses
| DB Status | Displayed As | Meaning |
|---|---|---|
| Pending | Draft (Pending) | Draft order created but not yet dispatched. Items are reserved. |
| Partially Shipped | Partially Shipped | Not a real status. The database permits only Pending, Shipped and Returned, so no order has ever held this value. The filter option and the "Ship Remaining" button are leftovers of a dropped design and match nothing. |
| Shipped | Completed | All items dispatched to customer. The UI displays both "Shipped" and "Completed" as "Completed". |
| Returned | Returned | All items returned. Order is locked and cannot be edited. |
Deleting a Draft Order
Open a Pending order and click Delete Draft. You are asked to confirm, because the items on the draft are currently Reserved and deleting it releases them: each watch returns to In Warehouse and each accessory to In Stock, free to sell to somebody else.
10. Processing Returns
Sidebar > Receive > Return tab.
Step 1: Select Return Type
• Customer Return — Watch returning from a customer order. Must currently be in "Shipped" status.
• Internal Return — Watch returning from internal use (photoshoot, loan, exhibition, etc.). Cannot be "In Warehouse" already.
Step 2: Scan QR Code
Scan or enter the watch QR code. System shows an item summary: Model, Variant, QR Code, Status, QC Status, Customer, Order/Invoice.
Step 3: Choose Return Action
Option A — Send to Repair
The item needs servicing before it can go back into stock or be re-shipped.
Option B — Return to Warehouse
The item is fine and goes straight back into available stock.
Option C — Replace Watch
The customer receives a replacement; the returned item is either scrapped (Broken) or returned to warehouse (Good condition).
Option A: Send to Repair
- Select Technician (required).
- Start Date defaults to today.
- Target End Date auto-calculates (start + 14 working days).
- Enter Problem Description (required).
- Click Process Return.
Option B: Return to Warehouse
Simple return, no repair needed. Click Process Return.
Option C: Replace Watch
- Select Replacement Watch from the dropdown (required). Only watches of the same model AND the same variant, with QC PASS and In Warehouse status, are shown (the watch being replaced is itself excluded). If the dropdown looks empty, a different variant of the same model will not appear — that is the variant filter, not a missing watch.
- Choose condition of the returned watch:
• Broken → Returned watch status → "Broken", QC → "REJECT". Replacement → "Shipped" to customer. Minimal dispatch record created.
• Good condition → Returned watch status → "In Warehouse", QC → "PASS". Replacement → "Shipped". Full dispatch details required: Delivery Method (required), Shipping Address, Tracking Number, Delivery Cost, Dispatch Date.
- Click Process Return.
Optional: Return Reason
Describe why the customer returned the item. This is recorded for reporting purposes.
11. Managing Repairs
Sidebar > Repairs.
Active Repairs Tab
Shows all current repairs as cards. Each card displays: item info, technician, dates, problem, status badge. Overdue repairs show a red "OVERDUE 3d"-style badge (the number is days past the target end date). Filter by Technician.
Starting a Repair
Repairs can be started from the Receive page (during a return) or from an Item Profile. The form requires:
- Technician (required).
- Start Date (defaults to today).
- Target End Date (auto-calculates: start + 14 working days).
- Problem Description.
Updating a Repair
Click Update on a repair card. Change technician, target date, problem, or remarks.
Completing a Repair
- Click "Complete Repair" on a card.
- Modal shows repair information.
- Enter Fix Description (required).
- Enter End Date (required, defaults to today).
- Select QC Status: PASS or REJECT.
• PASS → Item returns to "In Warehouse". Accessories fulfilled for the repair were already linked to the watch when they were issued.
• REJECT → The repair is closed either way. The item returns to "In Warehouse" but is tagged QC REJECT, which blocks it from being dispatched. Must enter Rejection Reason (required). The watch does not stay in the technician's queue — to work on it again, raise a new repair from the Watch List.
Requesting Accessories for Repair
- On a repair card, click "Request Accessory".
- Select Type → Category → Variant → Item from cascading dropdowns.
- Enter Quantity (min 1; for individual items, locked to 1).
- Optional Remarks.
- Click Submit.
Fulfilling Requests Admin Operator
Pending Requests tab shows all accessory requests from technicians.
• Fulfill — If stock is sufficient → "Request fulfilled - item linked to watch." If insufficient → "Insufficient stock. Available: X" (button disabled). If the watch already carries that accessory (its packaging, for instance) → "This watch already carries …" and nothing is issued: unlink the old one on the watch's page first (reason Broken if the part is being replaced).
• Reject — Enter optional rejection reason → "Request rejected."
Unlinking a Fulfilled Item
If the wrong item was linked, click Unlink on the request.
- Select reason: "Wrong Item - Return to Stock", "Not Needed - Return to Stock", or "Broken/Damaged - Remove from Stock".
- Enter optional notes.
- Confirm.
Completed Tab
Every completed repair. The default is All Time, so nothing is hidden from you. Narrow it with the preset buttons — Today, Last 7 Days, Last 30 Days, This Month, This Year, All Time — or type an exact Completed From / Completed To range. Filter further by Technician and QC Status (PASS, REJECT, PENDING). Reset puts everything back to All Time. Export to CSV/Excel/PDF; the export follows whatever you have filtered.
Report Tab
Two tables. Summary by Model gives total repairs, QC rejected, completed and in progress per model. Breakdown by Variant gives repairs and QC rejected per model and variant. Export to CSV.
Filter with the same preset buttons plus Started From / Started To, Technician and Status. A line under the filters reads "N of M repairs match these filters", so a partial figure is never silent.
Status Board
Visual overview: technician cards showing current workload. Overdue items are highlighted for quick identification.
12. Working with Accessories (Linking, Unlinking)
Linking an Accessory to a Watch
From the Accessories page (Linked or Not Linked tab), or from a watch's Item Profile.
- Click "Link to Watch" on an accessory.
- Search/select a watch — only watches with QC PASS, In Warehouse or Ready for Delivery, and compatible model are shown.
- Confirm.
Unlinking an Accessory
- Click Unlink on a linked accessory.
- Select reason:
• Wrong Item → Accessory returns to available stock.
• Not Needed → Accessory returns to available stock.
• Broken → An individually-tracked accessory is marked Broken and removed from available stock. A quantity-tracked one is simply consumed: its stock count stays down and nothing is credited back, because the unit left the count when it was linked.
- Confirm.
Automatic Cascade Behaviour
• When a watch is dispatched, all linked accessories are automatically dispatched with it.
• When a watch returns, linked accessories cascade back to "Reserved" status.
• When a replacement watch is assigned during a return, accessories transfer to the replacement watch.
Linking One Accessory to a Range of Watches
A bulk (quantity-tracked) accessory can be attached to many watches in one pass — useful when a whole intake needs the same strap or box.
- Start the link as above, then set Link Mode to Range of Watches instead of Single Watch.
- Choose From Watch and To Watch. Every watch between them, in QR-code order, is included.
- Set Quantity per Watch. The form shows how many units are available, and the total taken is quantity multiplied by the number of watches in the range.
- Confirm.
13. Browsing Watch Inventory
Sidebar > Watch List.
All Items Tab
Filters: Model, Variant, Status, QC Status, Date Range, Search (QR/Phone/Invoice). Click Apply to filter, Clear to reset.
Bulk Actions
Select items via checkboxes, then use the bulk action dropdown:
| Action | What It Does | Confirmation |
|---|---|---|
| Bulk Reset to Warehouse | Resets selected items to "In Warehouse" status. | "Reset X watch(es) to 'In Warehouse'?" Auto-returns active stockout records. |
| Bulk Edit QC | Changes QC status for all selected items. | Select PASS/REJECT. Remarks required if REJECT. |
| Bulk Delete | Permanently deletes selected watches. | Warning shown. Blocked if item has active relationships, stockouts, pending orders, or repairs. Frees QR codes for reuse. Irreversible. |
| Bulk Set Location | Sets storage location for all selected items. | "Set location to '[location]' for X watch(es)?" |
Individual Actions
- Mark Broken — Click on any item → "Mark this watch as Broken?" → status changes, removed from available stock.
- View Profile — Opens the Item Profile page (Section 15).
Export
CSV and Excel buttons export data with current filters applied.
Other Tabs
| Tab | Shows |
|---|---|
| Received | Recently stocked-in watches by date range. |
| Dispatches | Items sent out with dispatch reason, status (Out/Returned), expected return date. Badge shows active count. |
| Returned | Items received back with return details. |
14. Browsing Accessory Inventory
Sidebar > Accessories.
All Items Tab
Filters: Type, Category, Variant, Status, Tracking Type (Individual/Quantity), Search, Date Range.
Tabs
| Tab | Shows |
|---|---|
| Received | Recently received accessories. |
| Dispatches | Dispatched accessories. |
| Linked | Accessories currently linked to watches. Shows which watch each is attached to. |
| Not Linked | Available accessories not attached to any watch. Can be linked from here. |
Bulk actions and export work the same as Watch List (Section 13).
Send to Repair from List
Select an accessory and use the "Send to Repair" action. Technician (required) and Problem (required) must be provided.
Printing Accessory Labels
Every row has a Print Label action for a single item. To do several at once, tick the items and use Print Labels in the bulk bar — the count in the button is how many are selected.
Bulk Actions
Ticking items reveals a bulk bar. From it you can:
- Bulk Set In Stock — return the selected accessories to In Stock in one step.
- Apply to Selected — set a shared Category or Location across the selection.
- Print Labels — as above.
- Delete Selected — remove them permanently.
- Clear Selection — untick everything.
Copying a QR Code
Copy QR Code puts the code on your clipboard, so you can paste it into the Dispatch or Receive search instead of retyping it. You will see "copied to clipboard" when it works.
15. Viewing Item Profiles
Click any QR code or item name in any list → opens the Item Profile page.
Watch Profile Tabs
| Tab | Content |
|---|---|
| Overview | Model, Variant, Status, QC Status, Date Received, Location, Customer, QR Code. |
| Timeline | Chronological history of all events (stock-in, QC, dispatch, repair, return). Empty → "No timeline entries." |
| Repairs | All repair records for this watch. Empty → "No repairs." A repair still In Progress carries an Open in Repairs button that takes you straight to it on the Repairs page (Section 11), already filtered to that one repair. |
| Linked Items | Accessories attached to this watch. Can link/unlink from here. |
| Orders & Dispatches | Every order this watch has been part of. |
Accessory Profile Tabs
| Tab | Content |
|---|---|
| Overview | Name, SKU, Category, Type, Status, Tracking Type, Quantity, Location. |
| Timeline | All events for this item. |
| Linked Watches | Watches this accessory is linked to. |
| Transaction History | Stock in/out, adjustments, returns, transfers. |
Quick Actions from Profile
Depending on the item's current state, the following actions are available:
- Edit Item — Modify editable fields.
- Send to Repair — Opens repair form.
- Mark as Broken — Changes status to Broken.
- Change Status — Update item status.
- Update QC — Change QC status.
Recording an Owner by Hand Admin
Ownership is normally written for you when a watch is dispatched to a customer. An Admin can also record one directly — for a sale made before the system existed, or to correct a mistake:
- Open the watch's profile and go to Ownership History.
- Click Add New Owner. The button is only shown to Admins.
- Type the Name. Matching customers are suggested as you type — pick one to reuse their record instead of creating a duplicate.
- Fill Phone, Email and Shipping Address if this is a new customer.
- Set the Acquired Date (defaults to today) and choose an Acquisition Method: Purchased from Store, Purchased from Previous Owner, Gift, Warranty Replacement, or Other.
- Optionally attach the Order this ownership came from.
- Save.
An existing entry can be corrected too: an Admin sees an edit action on each row of Ownership History, which reopens the same fields — Name, Phone, Email, Shipping Address, Acquired Date and Acquisition Method — as Edit Ownership Record. Operators and Technicians see the history but cannot add or change it.
16. Managing Customers
Sidebar > Customers.
Adding a Customer
- Click "+ Add Customer".
- Enter Name (required), Phone, Email (validated format), Address.
- Click Save.
Editing a Customer
Click the edit action on a customer row → modify fields → Save.
Deleting a Customer
Click the delete action → a confirmation naming what you are deleting, e.g. "Are you sure you want to delete this category?"
Invoice Badges
Each customer row shows invoice badges for their orders. Click a badge → navigates to the order details for that invoice.
17. Reports
Sales Analytics
Sidebar > Sales Analytics.
Filters: Date range presets (All Time, This Month, Last 7/30 Days, This Year, Custom), Item Type, Model, Variant, Group By (Day/Week/Month/Year).
Charts:
- Model Breakdown (donut)
- Variant Breakdown (donut)
- Period Sales (bar/line)
- Payment Method (donut)
- Net Received vs Fees (bar)
Delivery Report
Sidebar > Delivery Report.
Filters: Date presets, Item Type, Model, Courier, Status.
Charts: Delivery Method split, Courier Performance, Delivery Cost ranges, Cost vs Fees.
Monthly table: Click "Details" for item-level breakdown. Download CSV per month.
Movements table: All dispatched items with status, tracking, replacements. Broken items highlighted in red. Returned items show return badge and reason.
Ownership History
Sidebar > Ownership History.
Filters: Date range, Customer, Acquisition Method, Model, "Show current owners only" checkbox.
Table columns: QR Code (linked to profile), Model, Variant, Customer, Date From/To, Acquisition Method, Status (Current/Previous Owner).
Export to CSV.
18. Dashboard
Sidebar > Dashboard (landing page after login).
Always-Live KPI Cards
Four cards at the top, updated in real time:
| Card | Shows | Note |
|---|---|---|
| Total Stock | Watches + Accessories count | Admin/Operator only |
| On-Hand | In Warehouse + Reserved | All roles |
| Pending QC | Items awaiting QC | Yellow highlight if > 10 |
| In Repair | Items being serviced | All roles |
Inventory Health (Live — Not Date-Filtered)
- Watch Status Breakdown — Stacked bar chart.
- Inline KPIs — In Warehouse, Reserved, Watches Broken, Accessories Broken.
- QC Readiness — Donut chart (Pending/Pass/Reject).
- Accessories by Category — Bar chart.
Period Activity (Date-Filtered)
Date filter presets: All Time, Today, This Week, This Month, Last 30 Days, This Year, Custom. All sections below update when you change the filter.
Pipeline Funnel
Received → QC Passed → Dispatched → Returned with counts and conversion percentages.
Stock-In
- Items Received by Model (bar)
- Received Over Time (line)
- QC Outcome (donut)
Dispatch
- Delivery Method split (Courier vs Self-Collect)
- By Courier (bar)
- Pending Orders count (highlighted if > 0)
Repair (Live)
- Status bar (Completed / In Progress / Overdue)
- By Technician (bar)
- Top 5 Overdue Repairs with days overdue
Returns
- Return Rate %
- QC Status bar (Pending / Passed / Rejected)
- By Model (bar)
- Return Rate Trend (weekly)
Recent Activity
Last 10 audit log entries showing user, action, entity, and timestamp.
19. Global Search & Alerts
Global Search
- Type a search term and press Enter.
- The system searches across: watches (QR, model, variant, remarks), accessories (name, SKU, QR), invoices (invoice#, tracking#, WooCommerce ID), QR codes.
- Flexible matching: "FWB01001" matches "FWB_01_001".
- Results appear in a modal grouped by type.
- Click a result → navigates to item profile or order.
Keyboard Navigation
| Key | Action |
|---|---|
| Arrow Up / Down | Navigate through results |
| Enter | Open selected result |
| Esc | Close the search modal |
Alert Centre Admin Operator
Bell icon in the sidebar header. Badge shows unread count.
Alert Types
| Alert | Severity | Condition |
|---|---|---|
| Overdue Repairs | Critical | More than 7 days overdue |
| Overdue Repairs | Warning | 3–7 days overdue |
| Overdue Repairs | Info | Less than 3 days overdue |
| Out of Stock | Critical | Quantity-tracked item has 0 stock |
| Low Stock | Warning | Quantity at or below reorder point |
Managing Alerts
- Click an alert to mark it as read.
- Dismiss individual alerts or use "Mark all read".
- Alerts auto-resolve when the underlying issue is fixed (repair completed, stock replenished).
Toast Notifications
Brief messages in the bottom-right corner of the screen:
| Type | Colour | Duration | Usage |
|---|---|---|---|
| Success | Green | 5s | Operation completed successfully |
| Error | Red | 8s | Operation failed — longer display for reading |
| Warning | Orange | 5s | Potential issue or caution |
| Info | Blue | 5s | General information |
20. Glossary
| Term | Definition |
|---|---|
| QR Code | Unique identifier assigned to each watch or individual accessory, in the format MODEL_VARIANT_NUMBER (e.g., FWB_02_001). |
| QC Status | Quality Control status: PENDING (awaiting inspection), PASS (approved for dispatch), REJECT (failed — requires remarks, cannot dispatch). |
| In Warehouse | Watch status. Watch is in stock and available for dispatch or linking. (Note: accessories use "In Stock" instead of "In Warehouse".) |
| In Stock | Accessory status. Accessory is in stock and available for dispatch or linking. Equivalent of "In Warehouse" for watches. |
| Reserved | Item is set aside — linked to an order or attached to a watch — but not yet dispatched. |
| Ready for Delivery | Item has been prepared for shipment but not yet dispatched. |
| Shipped | Item has been dispatched to a customer or external location. |
| Dispatched | Same as Shipped — item sent out of the warehouse. |
| In Repair | Item is currently being serviced by a technician. |
| Broken | Item is damaged or defective. Removed from available stock. |
| Out - [Reason] | Item dispatched for internal use: Out - Photoshoot, Out - Marketing, Out - Exhibition, Out - Loan, Out - Gift, Out - Other. |
| Overdue | A repair that has passed its target end date without being completed. |
| Invoice Number | Order reference number. WooCommerce invoices use the format FW + digits (e.g., FW383908). |
| MDR | Merchant Discount Rate — percentage fee charged by the payment provider for processing a transaction. |
| Delivery Cost | The actual cost paid to the courier (internal cost, not customer-facing). |
| Shipping Price | The shipping amount charged to the customer. |
| Gateway Fee | Fee charged by the payment gateway/provider for processing the payment. Calculated automatically based on MDR or flat rate. |
| Reorder Point | Quantity threshold below which a low-stock alert is triggered for quantity-tracked accessories. |
| Tracking Type | How an inventory item is tracked: "Individual" (each has a QR code) or "Quantity" (tracked by count, no QR codes). |
| Provider | Payment service provider (e.g., Stripe, PayPal, bank). |
| Linked Items | Accessories attached to or included with a watch. They dispatch and return together automatically. |
| Ownership History | Chain-of-custody record showing every customer who owned a watch, with dates and acquisition method. |
| Return Shipment | Dispatching a watch that was previously returned. The system detects it and shows a blue banner with the previous customer's details. It goes back on the same order — the return leg is recorded on that watch's own order line and the original order is left untouched. No second order is created. |
| Cascade | Automatic propagation of status changes. For example, dispatching a watch automatically dispatches its linked accessories. |
| Pre-order | A placeholder item in a draft order, representing a watch or accessory that has not yet been assigned a specific QR code. Every pre-order line must be replaced with a real, QR-coded item before the order can be dispatched. |
| Split Shipment | Dispatching an order in stages. Not supported: an order ships once, in full, and every pre-order line must be replaced with a real item first (Section 7). |
| Partially Shipped | A status the system cannot write — the database permits only Pending, Shipped and Returned. Filters and buttons that still mention it are leftovers and match nothing. |
| Working Days | Business days (excluding weekends). Used for calculating repair target end dates (default: 14 working days from start). |