How exactly can I extend ERPNext?

Please answer these kindly. I have been looking all over the internet but cannot get a clear answer.

I’m very new to Frappe and ERPNext. Here’s what I want to understand:

  1. How exactly can I extend the ERPNext wep app? How can I write different modules similar to CRM, HR and Integrate them within ERPNext.

  2. What is the point of running multiple apps in the same site? How do we decide which apps loads when entering the site? How can I make the apps communicate? Is building a separate app and adding modules the same as adding modules in the ERPNext app?

  3. If I want to load my custom app throuh ERPNext just like CRM, Buying, Selling etc, how do I do that? How do I list my app as a module on the side bar? The new update doesnt let me add a module to a new workspace.

  1. You can just create different modules in your app and they’ll work alongside ERPNext. For example, HR (hrms) is already a separate app.

  2. All apps installed on a site are always loaded. They communicate by writing to the same database and calling each others methods. There’s no big difference between adding a module to ERPNext and adding a module to your app, except they are shipped in different packages.

  3. Your app can provide it’s own workspaces which will be listed alongside the others. It’s also possible to extend existing workspaces.


How can I access my custom app functionality through ERPNext?
How can I list my custom app to the side bar? I have noticed that creating new workspace had an option so select modules. But in the recent update, there is no such option.

Depends on what you mean by “functionality” and “access”. If your app provides a CSS file via hooks, it will just be loaded. If your app provides some code to be executed when a sales invoice is saved, it will just run. You can find your DocTypes and reports in the search bar.

Last time I checked, it was possible to mark a workspace as “Standard” and then select a module, where it will be stored as a JSON file.

1 Like

@rmeyer Thank you for responding.

This is what I see when I create a new workspace.

After, if I click on edit, this is what it looks like:

And if I go settings from this window, I get this:

I can’t find the module option.

When adding things to your app, make sure to be logged in as Administrator and have "developer_mode": true in your site config.

Then restart your bench and create a new, public Workspace. You should be able to set the module now.


It worked. Thank you very much for helping.