The customer's Purchase Order is the doc they send US — a separate artifact, often a PDF attachment on the quote. What lives in our system is the Sales Order we create in response. Labeling the SO list as "Purchase Orders" in the customer portal was a wrong-side mapping. Reverts and renames in this commit: - Sidebar item label: "Purchase Orders" → "Sales Orders" (key stays odoo_orders; URL still /my/orders). _FP_SIDEBAR_LAYOUT. - Dashboard KPI tile: "Active POs" → "Active Sales Orders". Link hint: "View POs →" → "View orders →". Link target updated to the current /my/orders (the legacy /my/purchase_orders still redirects but we point at the canonical URL now). - Dashboard panel: "Recent Purchase Orders" → "Recent Sales Orders". Empty state: "No purchase orders yet." → "No sales orders yet." View-all link target updated to /my/orders. - Dashboard docs entries strip: "Purchase Orders" docs entry title → "Sales Orders"; URL → /my/orders. - Removed the three Odoo template rename inherits from fp_sale_order_portal.xml (sale.portal_my_home_menu_sale, sale.portal_my_orders, sale.sale_order_portal_content). With those gone the stock templates emit Odoo's native "Sales Order(s)" and "Your Orders" wording on the list page header, breadcrumb, and detail page <h2> — which is now the correct terminology. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Fusion Plating — Customer Portal
Part of the Fusion Plating product family by Nexa Systems Inc.
Customer-facing portal that extends fusion_plating with a self-service area
inside Odoo's standard portal layout. Customers can:
- Submit Requests for Quote (RFQ) with drawings, target dates, and notes
- Track production jobs through Received → In Progress → QC → Ready → Shipped → Complete
- Download Certificates of Conformance (CoC) and packing lists
- Reference shipment tracking numbers and invoice references
Models
| Model | Purpose |
|---|---|
fusion.plating.quote.request |
Customer-submitted RFQ |
fusion.plating.portal.job |
Lightweight portal-facing job summary |
res.partner (extended) |
Adds portal-enabled flag and counts |
Routes
| Route | Purpose |
|---|---|
/my/quote_requests |
List quote requests |
/my/quote_requests/<id> |
RFQ detail |
/my/quote_requests/new |
New RFQ form |
/my/quote_requests/submit |
RFQ form submission |
/my/jobs |
List jobs |
/my/jobs/<id> |
Job detail |
/my/jobs/<id>/coc |
Download CoC PDF |
Conventions
- New
res.partnerfields prefixedx_fc_*. - All portal pages extend
portal.portal_layout. - SCSS theme-aware: uses Bootstrap CSS variables only, no hex values.
- Routes are
type='http'(not the deprecatedtype='json').
License
OPL-1 (Odoo Proprietary License v1.0). Copyright 2026 Nexa Systems Inc.