Most of the development focus so far for ERPNext has been on the Desk Interface, but from version 7 onwards, we have started focusing more on the “portal” views too. Portal Views are viewed by external users, but the community that interacts
with the organization, but is not a part of the organization. These are customers, suppliers, job applicants, or students, guardians etc.
The standardized way these users can add or edit records is called “Web Forms”. With Version 7.1, we have introduced many more upgrades to Web Forms.
1. Addition of Grids
You can now add child tables to your web forms, just like regular forms
To help your users fill out long new forms, you can insert page breaks that will appear on new sections. This way the user can focus on only filling one section at a time.
You can now add a Payment Gateway to the web form, so that you can ask users to pay against a web form. A good example for this is a conference ticket :)
4. Roles for Portal Users
We have also introduced roles for Website users. Now the for each standard Role you can optionally disallow "Desk Access" to that user.
In Portal Settings, you can set a role against each menu item so that only users with that role will be allowed to see that item.
These features are coming in Version 7.1. Would love your feedback as usual!
There is an old github issue/discussion similar to this around the use-cases for supplier portal access where a manufacturer could directly upload say serial-number lists, advance-shipping-notices, packing-lists in xls form to get those numbers directly imported to the system and thus offload the workload on manual office-work doing things like this over email. Supplier Portal · Issue #2136 · frappe/erpnext · GitHub
Related to above & Security. Normally an ERP would live behind IP-lock or VPN to ensure no zero-day exploits could gamble and potentially make sensitive business-data accessible by the outside world. In our case we could never give suppliers around the world direct acccess to a portal that is the same server-instance as our internal production-data. Have you guys had any thoughts on how we best can solve this?
… I could see light-weight satellite instances (running one VM per key-supplier) that only has the absolut neccesary data to function. i.e. all PO’s for that supplier and it’s relevant meta-data. Supplier could upload to that server-instance while our main erpnext instance would periodically fetch from those installs to avoid any api-access/credentials ever having to be placed physically on the satellite instances.
To allow running these on the minimal, cheapest VM’s offered, I think the full stack with mariadb would usually need more RAM that is in the micro/mini instances. So another idea would be that these portals are super-stripped down, basically just a file-based database/json store that the main-instance could push there to create the pages & views neccessary while the supplier inputted data would be stored as json + raw pdf/.xls that the erp later could fetch and inject as if it would have been coming straight at the existing API’s.
i set up customer and supplier web portal access. i’m facing 2 problems
Pb1 : Supplier sees the desk even i disallow the “see the desk” in supplier rule
Pb2 : Customer doesn’t simple quotes in standard web portal form, on my opinion it’s a missing feature because customers can request a lot of quotes before sending a Purchase orders. I tried to add it in the custom sidebar menu, but something wrong : i can’t select the reference doctype even if i’m administrator. On the customer web portal, i see quotes on sidebar menu but when i click on it i’ve the error message " this page doesn’t exist"
Thank you in advance if somebody can help on my problems.
Found my pb n°1 : just add Website rule for supplier and supplier doesn’t see the desk anymore.
For my pb N°2 : no solution for moment, i don’t understand when under Administrator level i can’t add simply a line in custom web portal menu, reference doctype stays GREY with Forbidden Panel
Hope somebody can help
Addition of Grids
-It adds child table but does not allow user to add row in it. If tried to add row it thows error as below:
Uncaught TypeError: Cannot read property ‘push’ of undefined
at Grid.add_new_row (grid.js:477)
at HTMLButtonElement. (grid.js:95)
at HTMLButtonElement.dispatch (jquery.min.js:3)
at HTMLButtonElement.r.handle (jquery.min.js:3)