A complete guide for new users — covering the web app and Android APK.
Open stock-forge.co.uk in any modern browser. Click Sign in, enter your company ID, username, and password, then click Sign In.
If you have forgotten your password, click Forgot password? on the login screen. You will receive a reset link by email.
Download the latest Stock Forge APK from the link provided by your admin. On your Android device, open the downloaded file and tap Install. You may need to allow installation from unknown sources in your device settings (Settings → Security → Install unknown apps).
Once installed, open Stock Forge, enter the same company ID, username, and password you use on the web. Your data is shared in real time between the web and the app.
When a new company account is first activated, the admin is walked through a short setup wizard:
You can re-run the wizard at any time from Settings → Re-run onboarding wizard.
Every user in Stock Forge has one of four roles. Roles control which tabs and actions are visible. Admins assign roles when creating or editing users.
| Role | What they can do |
|---|---|
| Admin | Full access — stock, reservations, cuts, suppliers, purchase orders, customers, quotations, sales orders, settings, user management, audit log, automation. |
| Office | Stock viewing, creating and releasing reservations, searching, purchase orders, customers (full CRUD), quotations (full CRUD), sales orders (full CRUD). |
| Workshop | Recording cuts, viewing stock, sending collect requests, scanning QR/barcodes on the APK, sales order picking & dispatch. |
| Forklift | Stock viewing, off-cuts, search, locations, and workshop map (when enabled). No sales, reorder, or admin access. Also available on the Android APK for collect-request actioning. |
The Stock tab is the central inventory view. It is split into four sub-tabs: Beams, Channels, Angles, and Sheet. Each sub-tab shows all full-length items in that category.
Click Add item (or the + button on the APK). Fill in the size, quantity, location, and any notes. For beams, channels, and angles, size is entered as a standard designation (e.g. 152 UB 30). For sheet, enter length × width × thickness in millimetres.
When you save a new item, it appears immediately in the relevant sub-tab and is visible to all users in real time.
Tap or click any row to open the item detail panel. From there you can edit the quantity, location, notes, or size. To remove an item entirely, use the Delete option in the item menu. All edits are recorded in the audit log.
Each stock item can be assigned a location (e.g. Rack A3, Bay 2). Locations are managed in the Locations tab. Each location has a unique QR code that you can print as an A4 label and attach to the physical rack or bay.
Scanning a location QR code on the APK shows everything currently stored there and lets you reassign items to a different location in bulk.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
To quickly populate your inventory with existing stock, use the Import Stock button in the Stock tab (Admin only). This lets you upload a CSV or Excel file with multiple items at once.
How to import:
Auto-create locations: If you check the "Auto-create missing locations" option, any location names in your file that don't already exist will be created automatically.
Reservations let Office and Admin users hold stock against a specific job or customer before it is physically cut or dispatched. Reserved stock is visually flagged in the inventory so Workshop users know not to use it for other jobs.
From the Stock tab, open an item and click Reserve. Enter the quantity, job reference, customer name, and any notes. The reservation expires automatically after 7 days unless released or fulfilled.
Use the Search tab to find all items matching a size or description. From the search results you can select multiple items and reserve them all in one action — useful when a job requires several different sections.
Open the reserved item and click Release. The stock returns to available status. You can also release your own reservations from the user menu → My reservations.
Workshop users open an item (or scan its QR code on the APK) and tap Record cut. Enter the length cut and the quantity. If the item had a reservation, the reservation is automatically cleared when the cut is saved.
The cut is logged in the Cuts tab with the user's name, date, and item details.
After a cut, if there is a remainder that is worth keeping, Stock Forge creates an off-cut entry automatically. Off-cuts appear in the Off-Cuts tab. If the remainder is below the scrap threshold (set in Settings), it is flagged as scrap and shown with a warning indicator.
Off-cuts can be reserved, cut further, or manually marked as scrapped. Scrapped items are removed from active stock but remain in the audit log.
The Cuts tab shows a history of all cuts with per-user and per-day breakdowns. Admins can filter by date range, user, or category, and export the full history as a CSV.
The Search tab (web and APK) lets you search across all categories by size, description, or location. Results show availability, reservation status, and location at a glance.
Tap the scan icon in the top bar of the APK. Point the camera at a barcode or QR code on a stock item or location label. Stock Forge will:
From the scan result you can record a cut, create a reservation, or reassign the item to a different location — all without navigating through menus.
Admins manage suppliers from Settings → Suppliers. Each supplier has a name, contact email, and can be set as the default supplier for one or more material categories. You can also set per-item supplier overrides if a specific section always comes from a particular supplier.
The Reorder tab shows all items that are at or below their low-stock threshold. Select the items you want to reorder, adjust quantities, and click Generate PO. Stock Forge produces a purchase order that can be downloaded as CSV or PDF.
From the PO view, click Send by email. The PO is sent as a PDF attachment to the supplier's email address. A copy is saved in the PO history with a "sent" status.
Admins can enable Auto-ordering in Settings. When enabled, Stock Forge monitors stock levels and raises purchase orders automatically when items drop below their reorder threshold. The automation engine runs every minute in the background — no external scheduler or setup is required. Two modes are available:
Safety caps (maximum lines per order, maximum POs per day, cool-down period) prevent runaway ordering. Per-supplier opt-in means you can enable auto-ordering for some suppliers and not others.
Collect Requests are a workflow between the workshop and the forklift driver. The workshop identifies stock that needs to be moved or collected, and the forklift driver actions the request using the APK.
On the APK, open the item you need collected and tap Request collect. Add any notes (e.g. destination bay, urgency). The request is sent instantly to the forklift driver's inbox.
Forklift users see a Collect Requests tab on the APK showing all pending requests. Each request shows the item, location, and any notes from the workshop. Tap a request to view the full details.
Once the forklift driver has collected the item, they tap Mark as collectedon the request. The status updates in real time — the workshop user sees the change immediately on their own device.
Every action in Stock Forge — reservations, releases, edits, deletes, cuts, POs, user changes — is recorded in the Audit Log with the user's name, timestamp, and source (web or phone).
Admins access the audit log from the user menu → Audit log. Filter by date range, user, action type, or item. Each entry shows a before/after diff so you can see exactly what changed.
The audit log, cuts tracker, and purchase order history all have an Export CSVbutton. The exported file can be opened in Excel or any spreadsheet application.
Not ready to sign up? The Try the demo button on the home page opens a pre-populated demo workspace with sample stock, reservations, and purchase orders. You can explore all features without creating an account.
The demo workspace resets periodically so any changes you make will not persist. To get a permanent account, click Sign up on the home page and follow the sign-up process — your account will be activated once payment is arranged.
Admins go to Settings → Users and click Add user. Enter the new user's display name, username, and role. A temporary password is set — the user can change it after their first sign-in, or use Forgot password? on the login screen.
Admins can reset any user's password from Settings → Users → Reset password. Users can also reset their own password by clicking Forgot password? on the login screen — a reset link is sent to the email address on their account.
In Settings → Scrap rules, set the minimum lengths below which an off-cut is automatically flagged as scrap:
In Settings → Low-stock alerts, set the quantity at which each category triggers an alert banner. This applies to full-length items only — off-cuts are not counted against the threshold.
In Settings → Email, admins can configure a custom from-name and reply-to address for outgoing purchase order emails. If left blank, Stock Forge uses the default sender address.
The audit log now archives entries older than 90 days every night at 03:30 UTC. Archived entries are compressed into NDJSON files stored in the same secure cloud storage as your backups, keyed by company and quarter (e.g. audit_2026-Q1.ndjson.gz). This keeps the live audit log fast and lean while preserving a full historical record.
Super Admins can view and download archive files from Super Admin → Audit Archive. The tab lists every archive run (status, duration, documents archived) and provides signed download links for each quarterly file per company.
In the regular Audit Log tab, if you set the date filter earlier than 90 days ago, a banner will appear prompting you to download the relevant archive from the Super Admin panel.
The top of the main dashboard now shows a Low Stock widget for Admin, Manager, and Office roles. It lists every item currently at or below its reorder threshold, grouped by storage location, so you can see at a glance what needs ordering.
Each row shows the item name, current quantity, reorder threshold, and the default supplier (if configured). If all stock is above thresholds the widget shows a green confirmation message instead.
Click the Reorder button on any row to jump straight to the Reorder tab with that item pre-filled in a new purchase order draft. The widget updates in real time via the existing Firestore listener — no page refresh needed.
Each supplier's detail view now includes a Price History section. Every time a purchase order is marked as received, the unit price for each line item is recorded in a supplier_price_history subcollection. This builds an automatic price audit trail without any extra data entry.
Open Settings → Suppliers, find a supplier, and click the chart icon (↗) on their row to expand the Price History panel. The panel shows a stats table (min / avg / max / last price and a 90-day trend arrow) and an area chart of price over time, one line per item.
A rising arrow (↑) means the average price over the last 90 days is more than 2 % higher than the previous 90 days. A falling arrow (↓) means it has dropped by more than 2 %. A flat arrow (→) means prices have been stable.
To seed price history from your existing closed POs, run the backfill script once from the server console: node server/auditArchive/backfillPriceHistory.mjs. The script is idempotent — running it multiple times will not create duplicate entries.
Stock Forge now ships in four subscription tiers — Starter (£149/mo, up to 3 users), Standard (£349/mo, up to 10 users), Pro (£799/mo, up to 50 users) and Enterprise (custom pricing, unlimited users). Each tier unlocks a different feature set: Starter covers the core stock + reservations + POs workflow on the web; Standard adds the Android APK, barcode scanning, off-cut tracking, multi-location and the standard automation pack; Pro layers on advanced automation, REST API access, audit archive export and priority support; Enterprise adds SSO, white-label, on-premise deployment and a dedicated success manager. The full side-by-side comparison lives at /pricing.
Admins can see their current plan in Settings → Your subscription — it shows the monthly cost, the current user count vs the seat cap, and which features are included. The top navigation bar always carries a small grey "Plan" pill next to the company name as a quick reminder. Super Admins can change a customer's tier or grant individual feature flags off-tier from Super Admin → Subscriptions; every change is audit-logged. Existing companies were auto-migrated to the Standard tier on first server boot, and pricing is display-only — invoicing is still handled offline so no payment integration is required.
The Off-Cuts tab now supports bundling multiple compatible off-cuts into a single bundle record. This is useful when several short remnants of the same material are stored together and you want to track them as one logical group without physically joining them.
Tick the checkboxes on two or more off-cuts that share the same material, grade, and profile. A Combine button appears in the toolbar. Click it to open the Combine modal, which shows a manifest of the selected pieces and their individual lengths. Optionally enter a bundle label (e.g. "Job 1042 remnants"), then click Combine N pieces. A new bundle record is created and the originals are hidden from the main list (preserved in the bundle manifest).
Bundle rows are marked with an orange BUNDLE badge. Click the chevron (▶) on the left of the row to expand the manifest and see the individual piece lengths.
Click the Uncombine link next to the BUNDLE badge to open the Uncombine modal. Confirm, and the bundle is deleted while all original off-cut entries are restored to the list with their original lengths.
offcut.combined and offcut.uncombined, including the source IDs and lengths.Material traceability lets you record the full origin of every piece of steel in your inventory — heat number, cast number, mill, specification, country of origin, and an attached mill certificate PDF. This is essential for structural, automotive, and pressure applications where full traceability to the original cast is a contractual or regulatory requirement.
In the Super Admin portal, open the Subscriptions tab. Each company row has a Traceability toggle. Flip it on to activate heat number tracking and cert upload for that company. Flipping it off hides all traceability UI for that company without deleting any stored data.
When traceability is enabled, the Add / Edit Stock dialog shows a collapsible Material Traceability section. You can record:
When a stock item or off-cut has a heat number recorded, a small orange HEAT: [number] badge appears on its row. A dot (•) inside the badge means a mill certificate PDF is attached. Clicking the badge opens the Traceability Panel, which shows all traceability fields and a download link for the certificate.
When you cut a beam or off-cut, the resulting off-cut automatically inherits the parent’s heat number, cast number, mill, specification, and certificate URL. This means traceability follows the steel through every transformation — you never lose the chain of custody, even after multiple cuts.
In the Search tab, a Heat number field appears when traceability is enabled. Enter a partial or full heat number to find any stock item or off-cut that matches. The search is case-insensitive and matches substrings, so searching for 0042 will find H-2026-0042.
When generating a purchase order in the Reorder tab, a Request mill certificate from supplier checkbox appears (when traceability is enabled). Tick it to include a prominent notice in the PO PDF and email body asking the supplier to provide the mill certificate with delivery.
When you mark the PO as received, a dialog prompts you to upload the certificate PDF at that point. You can skip this step if the cert arrives separately.
The downloadable CSV template includes columns for all traceability fields: heat_number, cast_number, mill,spec, and country_of_origin. These columns are optional — leave them blank if you don’t have the data. When traceability is disabled for a company, these columns are silently ignored during import so existing import files continue to work.
Company admins can require a heat number on every new stock item. In Settings, a Material Traceability card appears (only when traceability is enabled). Toggle Require heat number on new stock to on. The Add Stock form will then reject submissions that have no heat number entered.
Heat number recording and the traceability panel are available on Standard tier and above (when enabled by Super Admin). Mill certificate PDF upload and storage require Pro tier or a manual feature override granted by Super Admin.
The Customers tab lets you maintain a central directory of all your business customers. Store contact details, billing and delivery addresses, payment terms, credit limits, and notes for each customer.
Click Add customer in the Customers tab. Fill in the customer name, contact name and email, phone number, billing address, delivery address, VAT number (if applicable), default payment terms (e.g. Net 30), credit limit, and any internal notes. Click Save to add the customer to your directory.
Click any customer row to edit their details. To archive a customer (hide them from the active list without deleting), click the Archive button. Archived customers can be restored from the Archived filter.
Office and Admin roles can create, edit, and archive customers. Workshop and Forklift roles cannot access the Customers tab.
Quotations let you create formal price proposals for customers. Each quote includes line items (stock items, off-cuts, or custom to-order items), unit prices, discounts, and automatic VAT calculation. Quotes flow through a status lifecycle: Draft → Sent → Accepted → Converted to Sales Order.
In the Quotations tab, click Create quote. Select a customer, then add line items by picking stock items or off-cuts from your inventory, or entering a free-text to-order item. Set the quantity and unit price for each line (prices auto-suggest from recent supplier costs plus a margin). Add a discount if needed, and any internal notes. The totals (subtotal, VAT, total) auto-calculate.
Each quote has an auto-generated quote number (Q-YYYY-NNNN), date, and valid-until date (default +30 days). You can add a customer reference and your internal reference. The quote header also includes your company logo and details.
Quotes start in Draft status. Click Send to email the quote to the customer and move it to Sent. Once the customer accepts, click Mark accepted. From there, you can click Convert to Sales Order to create a sales order and start picking and dispatch. Quotes can also be marked as Rejected or Expired.
Click the PDF button to download a formatted quote PDF with your company branding. Click Email to send the quote directly to the customer's email address (the email address from the customer record is used).
Office and Admin roles can create, edit, and send quotations. Workshop and Forklift roles cannot access the Quotations tab.
Quotations are available on Standard tier and above. Customer-facing sales invoice PDFs with company branding are a Pro+ feature.
Sales Orders are the fulfillment stage after a quote is accepted. They track picking, dispatch, proof of delivery (POD), and invoicing. Each sales order has a status flow: Confirmed → Picked → Dispatched → Invoiced → Paid.
From the Quotations tab, open an accepted quote and click Convert to Sales Order. A sales order is created with the same line items and customer. The sales order number is auto-generated (SO-YYYY-NNNN).
In the Sales Orders tab, click a confirmed sales order to open the picking screen. Each line item shows the stock location and quantity needed. Workshop staff can mark items as picked. Once all items are picked, click Dispatch to generate a delivery note PDF, capture proof of delivery (POD) signature or photo, and decrement the stock from your inventory.
When dispatching, a delivery note PDF is generated with your company details, customer address, line items, and a signature/POD capture area. The delivery note is emailed to the customer and can be downloaded for printing or mobile capture.
Once a sales order is dispatched, click Create Invoice to generate a sales invoice PDF (Pro+ feature with company branding) and email it to the customer. Mark the invoice as Paid once payment is received.
Office and Admin roles can create, edit, and invoice sales orders. Workshop role can pick and dispatch sales orders (limited view). Forklift role cannot access sales orders.
Sales Orders are available on Standard tier and above. Delivery notes and invoices with company branding are a Pro+ feature. Sales reports (conversion rate, top customers, monthly trend) are also Pro+.
The Workshop Map tab gives a visual overview of your entire workshop or warehouse. It is a Pro+ feature and must be enabled by a Super Admin for your company before the tab appears.
The layout editor lets you drag and drop bays, racks,aisles, and gates onto a grid canvas. Each tile can be labelled (e.g. “Bay A”, “Rack 3”). The layout is saved per company and is visible to all users with access to the Workshop Map tab.
To edit the layout, click Edit Layout. Drag tiles from the palette on the left onto the canvas, reposition them by dragging, and click Save Layoutwhen done. All layout changes are recorded in the audit log.
Each location tile is automatically coloured based on how full it is relative to its configured capacity:
Click any location tile to open a side drawer showing all stock items currently stored there. Each item has a quick link to its full stock record. You can also use the Search bar at the top of the Workshop Map to find a specific heat number or serial number — the matching location will be highlighted on the map.
For tall racking locations, click the 3D View button on the location tile to open an interactive three-dimensional view of the rack. Each beam/bay level is coloured by occupancy using the same heatmap scale. Rotate and zoom with your mouse or touch gestures.
Click Print Map to open a print-optimised view of the current workshop layout. This is suitable for laminating and posting in the workshop office or on a warehouse wall.
Admin and Office roles can edit the layout. Workshop and Forklift roles can view the map and open location drawers but cannot edit the layout.
Workshop Map is a Pro+ feature. It must also be enabled per-company by a Super Admin via Super Admin → Subscriptions → Workshop Map toggle.
The Device Ingestion feature allows weighbridges, cutting machines, and other serial or network-connected equipment to send readings directly into Stock Forge. It is a Pro+ feature and must be enabled by a Super Admin.
Go to Settings → Devices (visible to Admins only). Click Add Device, give it a name and slug (e.g. WB-01 for Weighbridge 1), and choose a device type. Stock Forge generates a device ID and a 64-character secret key. Copy both — the secret is only shown once. If you lose it, click Regenerate Key.
Devices send readings to:
POST /api/devices/ingest
Each request must include three headers:
X-Device-Id — the device slug (e.g. WB-01).X-Company-Id — your Firestore company ID.X-Device-Signature — HMAC-SHA256 hex of the JSON body using the device secret as the key.The JSON body may contain any combination of: weightKg, lengthMm,thicknessMm, serialOrHeat, machineId,ts (Unix ms timestamp), and raw (original raw string).
Mapping rules define what action Stock Forge takes when a reading arrives. Go to Settings → Devices → Mapping Rules and click Add Rule. Each rule specifies:
machineId = SAW-02).tag_stock_weight — update the weight field on the matching stock item.tag_stock_heat — tag the matching stock item with the heat/serial number.log_cut — record a cut event with the given length.update_po_received — increment the received quantity on a purchase order line.log_only — store the reading without taking any further action.Before connecting real hardware, use the Test Console in the Devices screen to send a simulated reading and see which rule (if any) would be triggered and what action would be taken. No data is written during a test — it is a dry-run preview.
For equipment that only supports RS-232 serial output (older weighbridges, legacy cutting machines), download the Device Bridge utility from Settings → Devices → Download Bridge. It is a small Python script that reads lines from a serial port and forwards them to the ingest endpoint with the correct HMAC signature.
Requirements: Python 3.8+, pip install pyserial requests. Copy config.example.json to config.json, fill in your endpoint, company ID, device ID, and secret, then run:
python3 devicebridge.py
The bridge supports five line parsers (weight_kg, length_mm,heat_number, csv, json) and can be run as a systemd service on Linux for 24/7 operation.
Only Admin users can access the Devices screen, register devices, manage mapping rules, and view the readings feed. Device Ingestion is not visible to Office, Workshop, or Forklift roles.
Device Ingestion is a Pro+ feature. It must also be enabled per-company by a Super Admin via Super Admin → Subscriptions → Devices toggle.