Dynamic Portal Fields (No-Code Customization)
by Vraja Technologies http://www.vrajatechnologies.com$ 56.47
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Purchase (purchase) • Sales (sale_management) • eCommerce (website_sale) • Discuss (mail) • Website (website) |
| Lines of code | 588 |
| Technical Name |
portal_dynamic_fields |
| License | OPL-1 |
| Website | http://www.vrajatechnologies.com |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Purchase (purchase) • Sales (sale_management) • eCommerce (website_sale) • Discuss (mail) • Website (website) |
| Lines of code | 588 |
| Technical Name |
portal_dynamic_fields |
| License | OPL-1 |
| Website | http://www.vrajatechnologies.com |
| Versions | 18.0 19.0 |
Enterprise
Community
Odoo.sh
Dynamic Portal Fields (No-Code Customization)
The Dynamic Portal Fields module for Odoo empowers backend administrators to configure and display any existing model field directly on the customer portal — without writing a single line of custom code. Instead of a rigid, fixed-column portal, businesses can tailor what customers see across their Sales Orders, Purchase Orders, Invoices, and Contact (My Account) pages by simply selecting fields from a unified backend configuration menu.
The module extends Odoo's native portal with dynamic columns in list views, additional information panels in detail views, and fully editable dynamic fields on the My Account form. Field types are handled intelligently: relational fields render as searchable dropdowns, many2many fields display as multi-select tag pickers, boolean fields render as Yes/No selects, and all standard text, number, and date types use the appropriate HTML inputs.
Changes take effect instantly without requiring server restarts, enabling businesses to quickly adapt portal visibility based on their needs. This improves transparency, enhances user experience, and reduces dependency on custom development.
We specialize in delivering advanced Odoo solutions across multiple domains. Our expertise includes:
EDI & SWIFT/ACH Payment Integrations
End-to-end EDI automation, including X12, EDIFACT, XML standards, & financial integrations such as SWIFT, ACH, & Fedwire.
eCommerce Integrations
Seamless integration with leading eCommerce platforms to sync products, orders, inventory, and customer data in real time.
Shipping Integrations
Robust shipping connectors for global couriers, offering automated label generation, tracking, and rate computation.
Most Useful Apps for your ERP
A wide range of highly-rated Odoo modules designed to enhance automation, improve productivity, & simplify business operations.
Unified Backend Configuration:
A single dedicated menu — Portal Configuration — lets admins configure dynamic fields for all supported models from one place. No scattered settings, no module restarts needed.
List & Detail View View Control:
Each field can be toggled independently for the portal list view (table columns) and the portal detail page. This gives full control over what customers see at a glance versus in full record detail.
Variant-Aware Field Display:
Every configured model — Sale Orders, Purchase Orders, Invoices, and Contacts — gets its own isolated field configuration. Fields are always fetched and rendered in context of the correct record.
Multi-Model Support:
Supports four core Odoo models out of the box: Sale Orders (including Quotations), Purchase Orders (including RFQs), Invoices (Journal Entries), and Contacts (res.partner).
Contact / My Account Editable Fields:
Dynamic fields configured for res.partner are rendered as live editable form inputs on the portal My Account page — with full support for Char, Integer, Float, Boolean, Date, Datetime, Selection, Many2one, and Many2many field types.
Smart Field Rendering:
Automatically renders fields based on type (dropdowns, multi-select, date pickers, etc.) in my account section.
Resizable Table Columns:
A drag-to-resize handle is automatically injected on all portal list view table headers, letting customers resize columns to fit their screen.
Frontend Writable Field Registration:
Dynamic fields configured for res.partner are automatically registered as frontend-writable fields in Odoo's security layer, so they can be saved from the portal without backend exceptions.
Sequence-Controlled Field Order:
Fields are displayed in the order defined in the backend configuration using a drag-handle sequence. Admins can reorder fields instantly.
Go to the Portal Configuration menu in the Odoo backend.
Click Create(New). In the Model field, select the model you want to configure — for example, Sale Order, Purchase Order, Invoice, or Contact (My Account).
Under the Portal Fields tab, click Add a Line. Select a field from the chosen model using the field picker. Only fields belonging to the selected model are shown in the dropdown.
For each field, toggle Show in List View to display it as a table column on the portal list page, and toggle Show in Detail View to display it in the record detail page. For Contact (res.partner) fields, Show in List View is hidden — those fields appear only on the My Account edit form.
Use the drag handle on the left of each field row to reorder fields. The sequence determines the left-to-right column order in the list view and the top-to-bottom order in the detail view.
Click Save. The configuration takes effect immediately — no restart or cache clear required.
Open the portal. Navigate to My Orders (or My Purchases, My Invoices). The configured fields now appear as additional columns in the table. Customers can drag column headers to resize them.
Click any record to open the detail view. The configured detail fields appear under an Other Information section within the record information panel.
Navigate to My Account on the portal. The configured partner fields appear as editable inputs in the address/account form. Many2many fields show a tag-picker, Many2one fields show a searchable dropdown, and all other types render the appropriate HTML input.
Submit the My Account form. The dynamic fields are safely parsed and written to the partner record. Only confirmed, valid values are saved — no crashes on unsupported field types.
Use the Offers menu to create records for special offers, product launches, and personalized product pricing. Customers automatically receive WhatsApp notifications based on the type of offer configured in these records.
Other Offers
Create an offer, such as a Summer Sale, and select the offer type (e.g., Other Offers, Product Launch, or Personalized Pricing). Set the start and end dates, and the system automatically manages the offer’s state—Running when the start date begins and Expired once the end date passes, Set a discount based on a percentage that can apply to a specific product or all products, giving flexibility in how offers are promoted to customers.
Choose how the offer applies to products All Products, Included Products, or Excluded Products, so you can control which items the promotion affects based on your requirements.
Select specific customer tags to ensure that only customers with the chosen tags receive the WhatsApp notifications, while others do not.
Configure when notifications should be sent to customers, such as every 10 days or on a specific custom date. The system automatically sends WhatsApp notifications about the offer, like the Summer Sale, based on the configured schedule.
You can also send WhatsApp notifications manually by clicking Send Notification, instantly delivering the message to the selected customers.
Here you can see that the WhatsApp notification for the new offer has been successfully sent to the customer, along with a PDF containing the offer product details..
Product Launch
Create a product launch by entering the title, selecting the offer type as Product Launch, setting the launch date, and adding a description. Add customer tags to target who will receive the notification, and optionally set a custom notification date to automatically send WhatsApp messages to all tagged customers.
Here you can see that the WhatsApp notification about the new product launch has been successfully sent to the customer.
Personalized Pricelist
Create a Personalized Product Pricing record for special customers by selecting the offer type as Personalized Pricing. Customers who have the selected tags and an assigned pricelist will receive a WhatsApp notification about their personalized pricing.
From here, you can create a Personalized Product Pricing record to notify selected customers about their specific pricelist. (This is Odoo's base feature.)
Here you can see a customer with the selected customer tag and an assigned pricelist, so this customer receives the WhatsApp notification about their personalized pricing.
Here you can see that the WhatsApp notification about the Personalized Product Pricing has been successfully sent to the customer.
Discount and Coupon
You can generate and manage coupons directly from the Discount Coupons menu, which can be shared with customers through WhatsApp notifications with all the details of the coupons. (This is Odoo's base feature.)
Here you can see that coupons are assigned to the customer, so the customer receives a WhatsApp notification with all the coupon details including expiration date and other discount details. (Notification Reminder feature we added.)
Here you can see that the WhatsApp notification about the discounts and coupons has been successfully sent to the customer.
Overdue Invoice
We provide a feature to send overdue invoice WhatsApp notifications to customers for pending payments. Here you can see some invoices that are due, and the system automatically sends a WhatsApp notification to the respective customers.
From Configuration > Settings, you can enable the Account Manager option for overdue invoices. When enabled, the account manager also receives WhatsApp notifications about overdue invoices related to their customers.
Here you can see that the Account Manager and customer receives the WhatsApp notification with all invoice details, including the customer name and payment information.We have an automatic cron job that sends notifications to Customers and Account Manager.
Abandoned Cart
We also provide Abandoned Cart notifications. From Configuration > Settings, you have to enter the number of hours after which a notification for the abandoned cart will be sent to the customer. If the cart remains without any action for the configured number of hours, the system automatically sends a WhatsApp notification to the customer, and the reminder interval can be configured from the Settings.
Here you can see that the WhatsApp notification about the Abandoned Cart has been successfully sent to the customer.
Here you can see received sample message of WhatsApp notifications.
Here you can see all the scheduled actions related to WhatsApp notifications configured in the system.
Can I configure different fields for Sale Orders and Purchase Orders separately?
- Yes. Each model has its own independent configuration. You can add completely different fields to Sale Orders, Purchase Orders, Invoices, and Contacts without any overlap or conflict.
Will the dynamic columns appear on both the Orders and Quotations list views?
- Yes. For Sale Orders, the dynamic list fields are injected into both the My Orders list and the My Quotations list. For Purchase Orders, they appear in both the My Purchases list and the RFQs list.
What field types are supported for the Contact (My Account) edit form?
- Char, Text, Integer, Float, Monetary, Boolean, Date, Datetime, Selection, Many2one, and Many2many. One2Many fields are listed as unsupported in the form with a descriptive notice.
What happens if I configure a field that has no value on a particular record?
- In list views, the cell will simply render empty. In detail views, fields with no value are excluded from the Other Information section entirely — so the section only shows fields that actually have data.
Can the columns in the portal list view be resized?
- Yes. A drag handle is automatically added to every column header in portal list tables. Customers can drag to resize columns without any page reload.
Is it safe to use with Odoo's native portal address form?
- Yes. The module safely pre-process all dynamic fields before Odoo's parser runs, preventing any crashes caused by unsupported or relational field types.
What happens if a new field is added to the configuration after customers have already visited the portal?
- The field appears immediately on the next page load. There is no caching layer on the field configuration — it is always fetched fresh from the database.
I would like to request a custom feature for this application. What’s the process to get it implemented?
- We’re happy to help tailor the application to meet your business needs! You can reach us via sales@vrajatechnologies.com
Who is the point of contact for technical support, configuration support or bug-related queries?
- You can reach us via support@vrajatechnologies.com
Submit a Support Ticket
If you encounter any issues while using our app that are caused by the app itself, we offer complimentary support for 90 days from the date of purchase.
To create a support ticket, please register via the Vraja Technologies Support Email and provide the necessary details so we can assist you in resolving the issue.
Email Us
support@vrajatechnologies.com
Contact Us
vrajatechnologies.com/contactus
Support
vrajatechnologies.com/support-policy
Vraja Technologies Services
Odoo Implementation
Odoo App Integration Services
Odoo Customization
Odoo Consultation
Odoo Support & Maintenance
Odoo Developer Outsourcing
Suggested Application
GET INSTANT PERSONALIZED DEMO
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Features
Process
FAQs











Please log in to comment on this module