User flows
Flowcharts for Core ordering and Support & lookup.
Flowcharts for two journey groups of the web-ordering app: Core ordering (6 flows) and Support & lookup (3 flows). Each chart has a text version underneath. Click a “→ Flow” pill to jump to that flow.
Legend
Core ordering
From a POS deposit bill to a submitted order, and what happens afterwards.
How the screens connect
1 Triage deposit bills
Text version of this flow
- After sign-in you land on the Bills page, on the 'New' tab.
- Choose a status tab: New, In progress (opening order), All, CS handling, or Document history. Tab counts update from the server.
- Optionally narrow by TOG sub-tab: all bills, bills with made-to-order TOG items, or bills without.
- Optionally search by bill number, branch, member or product, then press Search (Clear resets).
- If nothing matches, the table shows only its headers and a small '0 bills' note — there is no empty-state message.
- Sort by column, change page size or paginate, then pick a bill → Flow 3.
The page re-pulls deposit bills from POS automatically every 15 minutes.
2 Pull bills from POS on demand
Text version of this flow
- On the Bills page click the 'pull deposit bills from POS' button.
- A dialog asks for an admin or supervisor username and password. Cancel closes it with no effect.
- On Confirm the server checks the login. A wrong login shows a red message inside the dialog (observed) and the user can retry.
- On success (from code) the dialog closes, the list and tab counts reload, and an alert reports how many bills were new and updated.
- If the server cannot be reached, the dialog shows a 'cannot contact server' message (from code).
Verified by submitting an invented username only; a real pull was never run.
3A Open an order and fill the order form
Text version of this flow
- 'Open order' asks the server for the draft. If it is already confirmed or held, you go straight to the Review page; otherwise the order form opens.
- Choose the eye(s) to order: right, left or both. Optionally pull the Rx from the POS exam.
- Fill frame SKU and type, lens item, glazing location, Rx values (SPH, CYL, AXIS, ADD, PD) and the per-line document choices for FS items. Helpers: check frame stock, lens finder, swap R/L.
- 'Save draft' stores the form and stays on the page.
- 'Save and validate' checks required Rx fields, AXIS range (0–180), formats and pending FS line documents. Failures list the problems; the draft is still saved but cannot be submitted.
- If the typed Rx differs from the POS exam, a dialog asks you to confirm the override; declining highlights the differing fields.
- When everything passes the draft becomes 'ready' and you move to Flow 3B.
Dashed outlines (†) are read from page code, not observed.
3B Review, confirm and submit to BC
Text version of this flow
- The Review page loads the draft, attached files, delivery preview, frame stock check and any CS ticket (all read-only).
- If stock is short, the item is a drill-frame job, or the bill is outside the automatic-order scope, the confirm button turns red and opens a CS ticket instead (Flow 5).
- Otherwise 'Confirm order' locks the order and immediately submits it to Business Central.
- Held: some TOG routes wait before sending — a countdown banner appears (Flow 4).
- Failed: a red banner says the order was confirmed but the BC submit failed; 'Submit to BC again' retries safely and reuses the existing SO.
- Success: a green banner shows the SO (and TO) numbers with links to BC; the order is now read-only and a cancel window opens.
- Special cases: only an SO without a TO is shown as 'incomplete' and offers the retry; documents created by CS stay in 'Open' status until released in BC.
Order status then continues in Flow 6.
4 Cancel an order or go back to edit
Text version of this flow
- Held (TOG hold timer running): nothing exists in BC or at the factory yet. 'Cancel (not sent)' asks for confirmation, cancels free of charge and returns to the order form. 'Back to edit' unlocks the order and restarts the timer after the next submit. Doing nothing lets the timer end and the server send the order.
- Sent and inside the cancel window (shown with the 'Request cancel' button and its deadline): the user confirms and gives a reason; the system opens a CS ticket and CS cancels the documents in BC / the TOG factory.
- Confirmed but no BC document yet: 'Back to edit (unlock)' confirms, unlocks, and returns to the order form.
- If an SO exists but the TO failed, editing is disabled ('document already in BC'); only the retry from Flow 3B is offered.
Once documents exist in BC, changes must be made in BC by CS — the page says so.
5 Raise a CS ticket
Text version of this flow
- 'Blocking issue' means: not enough stock, a drill-frame job, or a bill outside the automatic-order scope. The main button turns red and says to open a case for CS.
- Click it: a dialog shows the CS shared inbox (fixed), the subject (filled in automatically) and an optional message.
- Cancel closes the dialog. Send emails the order details to CS; if it fails a red message appears in the dialog and you can retry.
- On success the page shows the ticket's status (with a Resend option) and the bill appears under the 'CS handling' tab on the Bills page.
- CS then creates the SO/TO in BC. Documents created by CS start in 'Open' status and are not visible to the warehouse until someone releases them in BC.
6 Track submitted orders and confirm receipt
Text version of this flow
- The Orders page lists orders already sent to BC; status updates arrive automatically from BC, the warehouse system and POS.
- Filter by order number, POS bill, SO/TO or branch code and press Search. No match shows a single 'no orders match' row.
- Click a row to expand its grouped status timeline (and the TOG factory status, if any).
- For TOG orders without an API status, a control lets the user pick a status and add a note; it asks for confirmation before saving.
- When goods reach the branch, 'Received' (after a confirmation) closes the order immediately. If nobody presses it, the system closes the order when POS/BC confirm receipt.
Support & lookup
Lookups and clean-up tasks that support ordering.
How the screens connect
7 Check stock (frame or branch)
Text version of this flow
- Two independent checks sit on one page.
- Frame check: type a frame code, press 'Check stock'. The result is either 'N pcs @ location' or a red line saying there is none at that location (or only reserved stock), plus the other locations.
- Branch check: pick a branch (not shown for branch-role users), type at least 2 characters of a product code, name or barcode, press Search. Missing input shows a red hint; otherwise a results list appears.
The order form has its own 'Check frame stock' button that uses the same frame lookup.
8 Look up and edit a customer's Rx
Text version of this flow
- The page first checks which POS database it is connected to and shows it in a banner (the UAT build shows a test source).
- Search by member code, name, surname or mobile number; choose which Rx type to show (default: the lens-cutting values) and the page size.
- Results list each customer with right and left eye values. No match shows 'no customers match'.
- Edit the values; the row is marked dirty and its Save button enables.
- Save opens a confirmation that names the member, the Rx type being overwritten, the POS database and server. Cancel writes nothing; Confirm overwrites the values (and creates a new exam if none existed). Errors appear in red on the row.
Edits overwrite the selected Rx type only, per the page text.
9 Handle stuck or failed jobs
Text version of this flow
- Open the tracking page. Tabs: Issues, Open, All; filter by branch or search text. An XLSX export is available.
- Click a row to open the side drawer with the order's status history, send attempts, TOG status and CS ticket.
- If the order has an unresolved issue and your role is cs, admin or supervisor, a 'mark as checked' form appears with an optional note.
- After confirmation the system records who checked it and when; the row shows as checked and leaves the Issues tab.
- Marking as checked only closes the item on this page — it does not change the order itself.
Clicking a table row is a mouse-only action (no keyboard route) — noted in the audit.
Open questions
- Which of the roles (
admin,supervisor,user,read_only,cs) can run each flow is mostly unverified. Known from code: the POS pull needs admin or supervisor; “mark as checked” needs cs, admin or supervisor. - The stock page also checks for a
branchrole that is not in the user-management role list, so there may be a sixth role. - The order form (Flow 3A) and its dialogs were not opened on a live draft; confirm the field list and validation messages in UAT.