Orbit Community Portal: Modern Customer Portal Theme for Odoo 19
A portal-only UI refresh for Odoo 19 Community that restyles the logged-in customer experience on /my/** routes. It delivers a modern dashboard shell with sidebar or horizontal navigation, a dynamic home dashboard, card-based list tables, record detail polish, dark mode, and configurable branding - through QWeb inheritance and frontend assets, without changing portal business logic.
At a Glance
- What it is: A modern UI theme for the Odoo 19 customer portal (logged-in experience).
- Where it works:
/my/**routes only - home dashboard, orders, invoices, tasks, timesheets, RFQs, account pages, and more. - Where it does not work: Public website, eCommerce shop, blog, and other marketing or CMS pages outside the portal.
- Depends on:
portal,base_setup, andauth_signup(Odoo 19 Community).
- Key features: Portal dashboard, vertical sidebar or horizontal navbar, card tables, dark mode, branding settings, account offcanvas, portal user invite, alerts dropdown.
- Self-contained assets: Portal pages load bundled SCSS/JS and Apache ECharts only - no external font or icon CDN required at runtime.
- Presentation only: Does not change portal security, document workflows, or installed app logic.
- Website note: Website theme colors and global frontend styling may conflict with portal appearance - test with your website theme enabled.
- License: OPL-1 | Version: 19.0.1.0.1
Overview
Why Teams Choose Orbit Portal
Standard Odoo portal pages work, but they feel dated and disconnected from your brand. Orbit Portal gives customers a cohesive, modern workspace on every /my page while your installed apps, security rules, and controllers stay unchanged.
- Branded customer experience: Configurable header/sidebar logo, footer copyright, and per-menu SVG icon overrides.
- Two layout modes: Collapsible vertical sidebar or compact horizontal top navigation - switchable from Settings.
- Actionable home dashboard: Server-rendered welcome metrics, stat cards with bundled ECharts sparklines, mini KPI tiles, and paginated recent activity.
- Account drawer on every page: Topbar account menu opens an offcanvas with standard Odoo contact details, sales contact, loyalty cards, and Edit information link.
- Consistent list & detail UX: Orbit card tables, Orbit pagination, search bars, breadcrumbs, record sidebars, and detail page styling across Sales, Project, Purchase, Timesheets, and more.
- Presentation layer only: Depends on
portal,base_setup, andauth_signup; no changes to portal access rules or document workflows.
01. Architecture
Technical Foundation
Built on Odoo portal QWeb templates, a dedicated portal asset bundle, and lightweight frontend JavaScript. No OWL app replacement - standard portal controllers and security remain in control.
QWeb Inheritance
Extends portal.frontend_layout, portal.portal_table, search bars, pagers, and record templates with Orbit markup.
Design Tokens
SCSS variables and Bootstrap overrides scoped under .o_orbit_portal; system UI fonts and Font Awesome icons; dark mode via data-bs-theme and localStorage.
Dashboard Controller
OrbitPortalDashboardMixin builds cards from installed apps server-side; activity pagination uses a lightweight JSON-RPC route.
Dynamic Portal Menu
Sidebar and horizontal menus are parsed from standard portal docs markup so new installed apps appear automatically.
Responsive Shell
Mobile sidebar drawer, collapsible vertical nav, and horizontal category dropdowns for tablet and phone portal users.
Settings Integration
Settings > Orbit Portal: layout mode, footer copyright, header logo, and menu icon override records.
02. Functional Matrix
Portal Capabilities
Portal Dashboard
Welcome card, KPI stat tiles, mini trend cards, bundled ECharts area/bar/radial charts, and paginated recent activity on /my/home (server-rendered).
Vertical Sidebar Layout
Collapsible sidebar with categorized portal links, alerts section, company branding, and mobile offcanvas drawer.
Horizontal Navbar Layout
Topbar with category dropdowns (Client, Service, Vendor, Common), alerts bell, dark-mode toggle, and account offcanvas menu.
Orbit Card Tables
Portal list pages use card-wrapped responsive tables with striped rows, hover states, and card-footer pagination matching the dashboard style.
Record Detail Pages
Styled order, invoice, task, purchase, and lead detail layouts with back navigation, record pager chevrons, and sidebar panels.
Portal Dark Mode
Per-browser dark mode toggle with boot script to prevent flash; chatter styling bundle included for portal discussions.
Logo & Menu Icons
Upload a portal header/sidebar logo and replace default menu pictograms with custom SVG icons per portal entry.
Portal User Invite
Let trusted customer contacts invite colleagues, review team access, and revoke or restore portal users - without waiting on your help desk. See the dedicated section below.
Portal Alerts Dropdown
Surfaces portal alert cards (quotations, overdue invoices, etc.) in the topbar with counts and quick links.
Team Access
Portal User Invite
Most B2B customers do not work alone. Accounts payable, project managers, buyers, and executives often need the same visibility into orders, invoices, and tasks - but adding each person traditionally means opening a ticket and waiting for an administrator.
Portal User Invite puts safe, self-service team management inside the customer portal itself. You choose which portal contacts may invite others; they handle day-to-day access for their organization while you stay in control.
Why this matters for your customers
- Faster onboarding: A customer admin invites a colleague in seconds instead of emailing your support team.
- Higher portal adoption: When the right people get access quickly, they actually use self-service for orders, invoices, and project updates.
- Less admin overhead: Your internal team spends less time creating portal users one by one.
- Clear accountability: Customer-side contacts manage their own roster; access stays within their company account.
- Confidence at offboarding: When someone leaves a customer organization, access can be revoked immediately from the portal.
What your customers get on the Invite Users page
Available from Common > Invite Users in the portal menu (for users you authorize). The page is designed for business users, not IT staff.
Send invitations by email
Enter a colleague's email address and send a portal sign-up invitation. The new user receives the same style of welcome email they would expect from Odoo, without leaving the portal.
One team roster
See everyone linked to the same company account in a single table: name, email, last login, and a clear status badge (Active, Pending, Revoked, or Internal).
Revoke access when needed
Remove portal access for team members who should no longer see company documents - useful when roles change or people leave the customer organization.
Re-invite & re-activate
Resend an invitation if someone missed the email, or bring back a previously revoked colleague with one click - no need to contact your support desk.
Permission you control
Only portal users you assign to the Invite Portal Users group see this menu and page. Everyone else continues with a normal portal experience.
Scoped to their organization
Inviters only manage people under the same company account. They cannot invite or view users from other customers - keeping multi-company portals safe by design.
For your internal team as well
Backend administrators can use the same grant, revoke, and re-invite workflows from Odoo settings when they need to assist a customer. The portal page simply moves routine team management to the people who know their organization best.
03. Visual Evidence
Screenshots & Highlights
Representative screenshots from Odoo 19 Community portal flows. Optional apps (Sales, Accounting, Project, etc.) extend dashboard widgets and menu entries when installed.
Portal Home Dashboard
- Welcome card with personalized metrics and progress bars on
/my/home. - Stat and mini cards driven by installed apps (Sales, Accounting, Project, Purchase, Timesheets).
- Recent activity table with modern pagination in the card footer.
Vertical Sidebar Layout
- Categorized portal menu with collapsible sidebar and custom icon overrides.
- Top utility bar with dark mode, alerts, and account offcanvas (contact details + Edit information).
- Content area with Orbit page title and back breadcrumb pattern.
Horizontal Navbar Layout
- Category dropdown navigation for Client, Service, Vendor, and Common portal sections.
- Same dashboard and list styling as vertical mode.
- Switch layout from Settings > Orbit Portal without code changes.
List Pages & Pagination
- Orders, invoices, tasks, timesheets, RFQs, and other
portal.portal_tablelists use card-wrapped tables. - Orbit pagination appears in the card footer only when multiple pages exist.
- Search bar and filter panel styled to match the shell.
Record Detail Views
- Back navigation, record title band, and prev/next record pager on detail routes.
- Order, invoice, purchase, and task layouts inherit Orbit record shell styling.
- Portal preview banners render inside the content area when viewing as internal user.
Dark Mode
- Toggle in the portal topbar; preference stored in browser localStorage.
- Dashboard charts, tables, forms, and chatter adapt to dark tokens.
Settings & Branding
- Settings > Orbit Portal: layout mode, footer copyright, header logo upload.
- Menu Icon Overrides backend action to map custom SVGs to portal sidebar entries.
Portal User Invite
- Invite form at the top: enter an email and send a portal sign-up invitation in one step.
- Team Members table shows avatars, last login, and status badges (Active, Pending, Revoked).
- Row actions let authorized users Revoke, Re-invite, or Re-activate colleagues without leaving the portal.
- Page appears under Common > Invite Users for portal contacts in the Invite Portal Users permission group.
Important - Read Before Purchase
What This Module Does and What It Does Not
Orbit Community Portal gives your logged-in customers a modern My Account area. It is not a full redesign of your public website. Please read the points below before you buy or install.
Only for the customer My Account area
The new look applies when customers sign in and use My Account - for example their dashboard, orders, invoices, projects, and profile pages. It does not change your public homepage, online shop, blog, or other pages that visitors browse before logging in.
Your website colors may still show through
If you use the Website app or another website theme, colors and fonts set there can sometimes appear on portal pages too. If something looks off, check your website theme settings first - they can affect how links and accents look inside My Account.
Other apps and themes can affect the look
Installing extra website themes, color packs, or heavily customized pages may change how My Account looks. After adding anything new to your website, open a few portal pages as a customer and confirm everything still looks right.
Not a full website redesign
This module does not rebuild your marketing pages, product catalog, or content blocks. It focuses on the signed-in customer experience. Keep your existing website theme for everything visitors see before they log in.
Quick checklist before go-live
- Log in as a customer and open your main My Account pages (dashboard, orders, invoices).
- Try both light and dark mode on a phone and a desktop.
- In Settings, open Orbit Portal to set your layout, logo, and footer text.
Operational Readiness
Install Orbit Community Portal on Odoo 19 Community, configure branding in Settings, and verify your key /my/* flows.
Portal Presentation Layer
Pure UI on /my/** routes. Portal controllers, access rights, and document logic remain standard Odoo. Requires auth_signup for invitation emails.
Works With Installed Portal Apps
Sales, Accounting, Project, Purchase, Timesheets, Subcontracting, and other portal-enabled modules inherit Orbit list and detail styling automatically.
Bundled Frontend Assets
Dedicated portal SCSS/JS bundle plus Apache ECharts for dashboard charts. No external CDN dependencies on customer portal pages.
Please log in to comment on this module