📍 Quick Navigation
📋 Orders — View, manage, and track all submitted orders
⏳ Pending Users — Approve new customer registrations
👥 All Users — Manage all portal customer accounts
💾 Saved Quotes — Customer-saved configurations (not yet submitted)
📊 Audit Log — History of all admin actions
⚙️ Settings — Pricing, margins, system configuration
What is TruSim Admin?
TruSim Admin is the back-office dashboard for the TruSim customer portal. Customers configure golf simulator screens, drapes, and gap fillers on the customer-facing configurator. When they submit an order or save a quote, it appears here. You manage the entire lifecycle: approve customers → review orders → link to Fishbowl → track production → pull actuals → ship.
📋 Order Lifecycle (Step by Step)
1. Customer submits order → Status: Pending Review
2. Admin reviews order → Check dims, fabric, attachment, customer info
3. Admin approves → Status: Approved → customer gets email notification
4. Production starts → Status: In Production → customer gets email
5. Admin links to Fishbowl MO/WO → enables actuals tracking (see below)
6. Admin maps to Sales Order line → locks in sell price for margin calc
7. Admin pulls actuals → actual material + labor costs from Fishbowl
8. Order ships → Status: Shipped → customer gets email with tracking
Each status change sends an automated email to the customer. Add production notes in the order drawer — they're included in the shipped/cancelled email.
📄 The Order Drawer (Click Any Order Row)
Clicking an order row opens the full detail drawer. Here's what each section does:
- Customer Info — Name, email, company, phone. For new customers: credit references and application data.
- Product Configuration — Width, height, fabric type, attachment method (velcro/grommets/loops), trim strips, edge finishing. This is exactly what the customer configured.
- SVG Preview — Visual snapshot of the screen layout captured at submit time.
- Status Dropdown — Change the order status. Each change emails the customer and logs to the audit trail.
- Production Notes — Internal notes for the production team. Included in status emails to the customer.
- 🔗 Fishbowl MO Link — Connect this order to a Fishbowl Manufacturing Order (see Fishbowl Mapping section below).
- 📌 SO Line Mapping — Pin this order to a specific Sales Order line item for accurate pricing (see below).
- 💰 Cost Estimate — Configurator's estimated material + labor breakdown. Shows estimated vs actual once actuals are pulled.
🔗 Fishbowl Mapping — How It Works
This is the engine that connects a TruSim order to real production data in Fishbowl. It has three parts: MO Link, WO Selection, and SO Line Mapping.
Step 1: Link to Manufacture Order (MO)
Click "🔗 Link to Fishbowl MO" on an unlinked order. You'll see a list of recent MOs from Fishbowl (last 90 days, closed/fulfilled). Each row shows:
- MO number (e.g.,
26/0312)
- Date finished
- Finished good part number + description
- Status and quantity completed
Click the MO row to expand and see its Work Orders.
Step 2: Pick the Work Order (WO)
Each MO can have one or more Work Orders. A WO represents the actual production run — it's where labor hours and material consumption are recorded. Each WO shows:
- WO number (e.g.,
26/0312:004)
- Part number being produced
- Quantity completed
Click a WO to link it. The system saves both the MO and WO to this order.
Why pick the right WO?
When an SO has multiple line items for the same part (e.g., 4 different screen sizes all using GIS15075/124), each gets its own WO in Fishbowl. Picking the correct WO ensures the actuals (materials, labor hours, costs) belong to this specific screen — not averaged across all four.
Step 3: Map to Sales Order Line
After linking MO + WO, a modal automatically opens to map this order to a specific Sales Order line item. This locks in the sell price for realized margin calculations.
How the system finds the right SO:
- Auto-match: The system walks from MO → parent SO in Fishbowl. If found AND there's a clear line match AND the customer name matches, you'll see a green "✓ Auto-matched" card. Click "Confirm & save" and you're done.
- Multiple lines: If the SO has multiple lines (same part, different descriptions), you'll see all lines listed. Each shows: part number, description (the custom screen specs), quantity, and price. Click the line that matches this specific screen.
- No SO found: If the system can't find a parent SO (different numbering, manual MO, etc.), you'll see a search for fulfilled SOs from the last 6 months. It defaults to this customer's SOs — check "Show all customers" if you need to look wider. Click an SO to see its lines, then pick the right one.
⚠️ Customer Mismatch Warning
If the customer name on the TruSim order doesn't match the customer on the Sales Order, you'll see an amber warning. This prevents accidentally mapping the wrong customer's SO to an order.
You can still save the mapping by clicking through the override confirmation — useful when customer names differ between systems (parent company vs. install location, spelling differences, etc.). Overrides are logged in the audit trail.
📌 The Mapping Badge
Once mapped, the drawer shows a green badge like:
📌 SO 26/0312 · Line 27935 · $663.33 × 1 · ✓ Acme Golf Club · "PREMIER SIMS CUSTOM ELITE..."
Click "Re-map" to change the mapping at any time. Click "Unlink" to remove the MO/WO/SO connection entirely.
⬇ Pull Actuals — Real Production Data
Once an order is linked to an MO/WO and the MO is closed in Fishbowl (status: Fulfilled, Closed, Closed Short), click "⬇ Pull Actuals" to fetch real production data.
What Gets Pulled
🧵 Materials: Every raw material consumed by this WO — part number, description, quantity used, cost. Pulled from Fishbowl moitem table.
👷 Labor: Every labor operation recorded on the WO — operation type (sewing, CNC, spreading, grommeting, packing), hours worked, cost. Pulled from Fishbowl woitem table.
💰 Sell Price: The actual price invoiced to the customer from the mapped SO line item. Used for realized margin calculation.
Estimate vs Actual Variance
After pulling, you'll see a variance breakdown:
- Materials — Estimated material cost vs. what Fishbowl actually recorded
- Labor — Estimated labor cost vs. actual labor hours × rate
- Total Cost — Combined variance
- Sell Price — From the mapped SO line (not the whole SO)
- Realized Margin —
(sell - actual cost) / sell × 100. Color-coded: green = at/above target, amber = close, red = below target.
MO Still Open?
If the MO isn't closed yet, you'll be prompted to force-pull. Force-pulled data is flagged and excluded from calibration models (since production isn't finished yet). Use this if you need a progress check mid-production.
💰 Cost Estimate Breakdown
At the bottom of each order drawer, you'll see the configurator's cost estimate. This is what the system predicted the order would cost when the customer submitted it.
- 🧵 Materials — Fabric yardage × cost/yd, grommets × cost/ea, velcro, webbing, etc. Each line shows part number, description, estimated quantity and cost.
- 👷 Labor (est.) — Estimated time per operation: spreading, CNC cutting, sewing, grommeting, packing. Each line shows Fishbowl labor part code, operation name, estimated minutes, and estimated cost at $25/hr.
- 🏭 Actual Labor (from Fishbowl WO) — After pulling actuals, this amber section shows what Fishbowl actually recorded: FB part numbers, hours, minutes, cost, and which WO the labor was on. This is the authoritative view.
- Estimate vs Actual table — Side-by-side comparison: estimated sell, actual sell, estimated cost, actual cost, estimated margin, realized margin. Color-coded variance percentages.
⚠️ Cost estimates are currently being calibrated. As more orders get actuals pulled, the estimates will improve over time. The production feedback loop uses realized data to refine the labor and material models.
💾 Saved Quotes
When a customer configures a screen, drape, or gap filler and clicks Save Quote (instead of Submit Order), it stores their configuration here. This is not an order — it's a saved draft.
- Customer — Full name + email resolved from the portal account.
- Tab — Which product type: Impact Screen, Sidewall Drape, or Gap Filler.
- Width / Height — The configured dimensions.
- Fabric — Fabric type selected (Triple Layer, Hi-Contrast, Single, Backer, Archer Net).
- Saved — When the customer last saved this configuration.
Use saved quotes for proactive follow-up — these are customers who configured but didn't order. Great for Chase to reach out.
⏳ Pending Users & 👥 All Users
Pending Users: New customers who registered through the TruSim portal but haven't been approved yet. They can see the configurator but can't submit orders until you approve them. Approving sends an automated welcome email with their password setup link.
All Users: Every registered TruSim portal customer. You can suspend/reactivate accounts, see their last login, and view their registration details.
📊 Audit Log
Every admin action is logged: status changes, MO links, SO mappings, customer mismatch overrides, approvals, suspensions. Filter by staff member, order number, or status. Use this to track who did what and when — especially useful for disputed orders or customer inquiries.
🎯 Common Workflows
New order comes in
- Open the order drawer → review specs, customer info
- Change status to Approved (customer gets email)
- Create SO + MO in Fishbowl
- Come back here, click "🔗 Link to Fishbowl MO" → pick MO → pick WO → map SO line
- Change status to In Production
Production finished — pull actuals
- Confirm MO is closed in Fishbowl
- Open the order drawer
- Click "⬇ Pull Actuals"
- Review the Estimate vs Actual variance table
- Check realized margin — is it at/above target?
Multi-line SO (4 screens, same part number)
- You'll have 4 TruSim order drawers, each for one screen
- Open each drawer → link to its specific MO → pick its specific WO
- The SO line picker shows all lines with the custom description (screen specs) so you can match the right one
- Each drawer ends up mapped to one WO + one SO line = accurate cost + price per screen
Follow up on saved quotes (Chase)
- Go to 💾 Saved Quotes tab
- Sort by date to see recent saves
- Note the customer name + what they configured
- Reach out: "Hey, I saw you were looking at a 120×96 triple layer screen — anything I can help with?"
📖 Glossary
- MO (Manufacture Order) — Fishbowl record that says "make this product." Contains the BOM (bill of materials) and links to one or more WOs.
- WO (Work Order) — The actual production run under an MO. Records labor hours and material consumption. One MO can have multiple WOs (one per screen in a multi-screen order).
- SO (Sales Order) — The customer's purchase order in Fishbowl. Has line items with prices. A fulfilled SO means goods have shipped and pricing is locked in.
- SO Line Item — One line on a Sales Order. For multi-screen orders, each screen is a separate line with its own description and price.
- Actuals — Real material + labor costs from Fishbowl, pulled after the MO is closed.
- Realized Margin —
(sell price - actual cost) / sell price. What you actually made on this order.
- Target Margin — The margin goal set by product type (70% for impact screens, 60% for drapes/gap fillers, 50% for archer nets).
- Variance — Difference between estimated and actual cost, shown as a percentage. Green (≤5%), amber (5-10%), red (>10%).
- Force Pull — Pulling actuals before the MO is closed. Data is flagged as incomplete and excluded from calibration.
🆘 Need Help?
Email nik@canwiltextiles.com with what you were trying to do and a screenshot. Most issues are quick fixes.