- 首页
- Apps
- SaaS Tools
- Portal & Website Theme Builder
示意预览A build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website
— navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required.
ECOSIRE scopes, builds, installs and supports it for you.
什么是 Portal & Website Theme Builder?
A build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website — navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required. ECOSIRE scopes, builds, installs and supports it for you. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
核心功能
按需定制,全程代劳
无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。
- 1
您下单
以一次性构建价格开始。我们在启动时与您共同确定范围。
- 2
我们构建与安装
ECOSIRE 在您的 ERPNext 上构建、配置并安装。
- 3
上线 + 支持
约一个工作周内上线,并包含两周上线支持。我们交付的代码中的缺陷免费修复。
技术规格
- ERPNext 兼容性
- —
- 许可证
- 许可证需要确认
- Python 要求
- Python 3.10+
- 数据库
- MariaDB 10.6+
关于此产品
Out of the box, the Frappe/ERPNext portal and website look unmistakably like Frappe: the default navbar, the stock login screen, generic card layouts, and a footer that says "Powered by Frappe." For a business that puts customers, vendors, or members in front of that portal — to view invoices, raise support tickets, submit RFQs, or track orders — the un-branded experience quietly erodes trust. ERPNext natively gives you a website settings page, a splash logo, and a brand color, but the moment you want a custom navbar structure, branded login and signup pages, restyled portal cards, or per-role theming, you fall off the edge of what the UI can do and into hand-editing website_theme, overriding portal templates, and maintaining fragile CSS that breaks on the next bench update.
We build a proper Frappe app — its own module, installed with bench get-app and bench install-app — that turns all of this into structured configuration. At its core is a Portal Theme Settings single DocType (plus child tables for menu items, CSS injection blocks, and per-role overrides) that your admins edit like any other ERPNext form. On save, a hooks.py doc_events handler validates the theme and regenerates the compiled CSS/bundle, so the branded navbar, footer, card styles, and login/signup pages render immediately without a developer touching a template. We wire the theme into Frappe's website rendering through website_context, app_include_css, and portal_menu_items hooks so it applies consistently across www pages, the /app desk portal surfaces, and the logged-in customer portal — not just one of them.
Technically, the app exposes controlled extension points instead of a blank CSS box: named injection slots (global head, portal-only, login-only, print) so custom CSS lands in the right scope and survives upgrades; a whitelisted REST method (frappe.whitelist()) that returns the active theme as JSON for any headless or mobile front-end you run against the Frappe REST API; and a nightly scheduler_events job that can rebuild assets and warm caches. Branding assets (logo, favicon, OG image, web fonts) are stored as File records and referenced by field, so there are no hard-coded paths. Everything respects Frappe permissions and role profiles — you decide which roles may edit the theme, and per-role overrides let a "Vendor" portal look different from a "Customer" portal. Responsive breakpoints and mobile navbar behavior are part of the theme model, so the branded experience holds up on phones, not just desktop.
Because this is build-to-order, we start from your actual brand and portal, not a template gallery. After a short scoping call we confirm exactly which surfaces you need themed (portal, website, login, specific DocType web views), your brand tokens, and any v15/v16 target. We build against a copy of your requirements, ship installable source you own, and hand over a git repository — not a black box. Typical delivery is one working week from confirmed scope, and we install it, run UAT on a staging bench with a rollback plan, and stay on for a post-go-live support window.
你得到什么
- Installable Frappe app source code for your version (installed via `bench get-app` / `bench install-app`), targeting Frappe/ERPNext v15 or v16
- Installation and configuration on your bench, including `Portal Theme Settings` populated with your brand tokens and assets
- Technical documentation: DocType schema, hooks, injection slots, whitelisted method contract and upgrade notes
- User guide plus a live training session for the admins who will maintain the theme
- UAT on a staging bench with a signed-off test plan and a documented rollback procedure
- Post-go-live support window for defect fixes and configuration help
- Git repository handover with full commit history and README so you own and can extend the code
- Site backup and pre-install checklist so the change is reversible on production
这是给谁的
Businesses running a branded customer portal
Companies whose customers log into ERPNext to see invoices, orders and tickets, and who need the portal, login and website to look like their brand — not stock Frappe — without a permanent front-end developer.
Vendor / supplier portal operators
Procurement-heavy organizations exposing an RFQ and supplier portal who want per-role theming so the vendor experience is distinct, professional and on-brand across navbar, cards and login.
ERPNext partners and implementers
Consultants delivering ERPNext to end clients who need a reusable, upgrade-safe theming layer they can configure per client instead of hand-editing `website_theme` and portal templates on every project.
Marketing and brand owners in ERPNext shops
Non-technical brand stewards who need to control logos, colors, fonts, footer content and login copy from an ERPNext form governed by permissions, without filing a ticket for every tweak.
Portal & Website Theme Builder 如何比较
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | ERPNext 原生 |
|---|---|---|---|---|
| Portal navbar & footer branding | Configured from a DocType, applied via hooks across portal and website | Possible but hand-coded per template each time | Often only global logo/color, limited navbar control | Logo and brand color only; fixed structure |
| Branded login / signup pages | Fully themed while keeping native auth flow intact | Requires overriding auth templates by hand | Rarely covered; usually website pages only | Stock Frappe login screen |
| Custom CSS management | Named, scoped injection slots that survive upgrades | Ad-hoc CSS prone to breaking on bench update | Single CSS box, unscoped | Edit `website_theme` CSS field manually |
| Per-role portal theming | Role-profile-based overrides (Vendor vs Customer) | Custom conditional logic to build and maintain | Typically one theme for all roles | Not supported |
| Upgrade safety (v15/v16) | Isolated app, documented upgrade notes, hooks not core edits | Depends on discipline; core edits risk being overwritten | Varies by vendor; may lag new versions | Safe but minimal capability |
| Headless / REST access to theme | Whitelisted method returns theme as JSON | Would need to be built separately | Usually none | None |
| Ownership & handover | Full source + git repo; you own and can extend it | You own it but built from scratch at higher cost | Licensed binary, limited or no source | N/A — it's core |
| Support & delivery model | Build-to-order, UAT, rollback, post-go-live support window | Depends on your team or contractor availability | Generic vendor support, no bespoke fit | Community/self-serve |
关于Portal & Website Theme Builder的常见问题
Is this an existing app I can download and install today?
No. This is build-to-order. ECOSIRE builds the app against your actual brand, portal surfaces and Frappe version, then installs it on your bench. There is no instant download — you receive installable source code and a git repository as part of the handover.
How long does delivery take?
Typical delivery is one working week from confirmed scope. The timeline starts once we've agreed on which surfaces to theme (portal, website, login, specific web views), your brand tokens and your target version. A short scoping call kicks it off; complex per-role or multi-brand requirements sit at the longer end of that range.
Will it survive `bench update` and future upgrades?
Yes — that's the point of building it as a proper Frappe app. Instead of hand-editing core templates and `website_theme`, we use `hooks.py`, scoped CSS injection slots and File-backed assets, so your branding is isolated from core and re-applies cleanly after `bench update` and `bench migrate`. We document upgrade notes for v15 and v16.
How do you handle support and updates after go-live?
Every build includes a post-go-live support window for defect fixes and configuration help. Because you receive the git repository and full source, your own team can also extend it. Beyond the included window, ECOSIRE offers ongoing support and enhancement engagements.
Does it work with a headless or mobile front-end?
Yes. The app exposes a whitelisted method (`frappe.whitelist()`) that returns the active theme as JSON over the Frappe REST API, so a custom mobile app or headless front-end can consume the same brand tokens the server-rendered portal uses.
Can different roles see differently themed portals?
Yes. Per-role overrides use Frappe role profiles, so a Vendor portal and a Customer portal can differ in navbar, cards and login while sharing one installed app. You control which roles may edit the theme through standard ERPNext permissions.
Do you modify ERPNext core or our data?
No core files are patched and no business data is changed. The theme lives in its own module with its own DocTypes and File records. We install on a staging bench first, run UAT, and keep a rollback plan and site backup before touching production.
相关模块

Power BI Connector for ERPNext
A secure, governed way to feed ERPNext data into Microsoft Power BI through a curated read-only semantic model. ECOSIRE builds, installs, and supports it for your instance after a scoping call — this is a build-to-order engagement, not an instant download.
Portal & Website Theme Builder
A build-to-order Frappe app that lets your team re-skin the entire ERPNext customer/vendor portal and website — navbar, footer, cards, login, signup and CMS pages — from a single settings DocType, no front-end code required. ECOSIRE scopes, builds, installs and supports it for you.
- `Portal Theme Settings` single DocType with child tables for navbar items, footer columns, CSS injection blocks and per-role overrides, so branding is configuration, not code
- `hooks.py` `doc_events` handler on save/validate that recompiles the theme bundle and clears the website cache automatically
- Custom portal navbar and footer driven by `portal_menu_items` and `website_context` hooks — links, dropdowns, logo, CTA button
- Branded login, signup, forgot-password and email-verification pages via overridden Frappe web templates, keeping native auth flow intact


