I’m currently working on a start-up business and was hoping to use ERPNext to manage the ordering/stock/accounting side of things. I’ve had experience implementing business systems before so am pretty familiar with how these things go…
I set myself up with a cloud-hosted frappe.cloud install and have been getting accustomed to the system. I’m overall really impressed with the default functionality but there are some things here and there I’d like to tweak… what I’ve noticed is with that install I can’t edit anything to do with the default DocType’s, not even as simple as renaming one.
This is a huuuge drawback for my purposes - it seems I have to duplicate the entire DocType to be able to change things around? One example is that I’d like to change the DocType “Material Request” to be called a “Purchase Request” and then leverage this functionality to handle customer backorders. The product I’m selling is often custom ordered based on requests so this default function seems like it would work well, but I need to remove some of the existing fields/change select values, rename things, etc.
SO - my question - is there a way to edit default DocType’s in a cloud install? Do I have to spin this up on my own server to be able to enable developer mode to change these things? Do I have to copy/recreate all this functionality in a new DocType? Or am I missing something entirely?
Regarding changing “Material Request” to “Purchase Request” is not necessary as “Purchase Order” is the “Purchase Request” in many business process.
In regards to enabling developer mode and doing some small changes, you can ask the support team and create a ticket. They are very responsive and very professional.
If you are making some big custom changes, then I recommend you create a custom app for that , then create a private bench to host both your custom app and the ERPNext app. Having said that, the private bench will have $25/month as the minimum plan instead of $10/month.
I hope this clarifies things for you.
Hi! Thanks for your reply that’s good to know about asking support. I’ll see what I can do!
Regarding the “request” vs “order” language; I’d be using them for two different things - maybe the language should be “Purchase Order Request” or “Requisition Order” though for clarity basically an internal document that indicates a request to purchase something.
When it comes to modifying ERPNext, there are several options. The terminology can quickly get confusing, so I’ll try to bold certain things, if they have special ERPNext meaning.
First, let’s address the renaming of DocTypes.
You can easily rename the Menu links that are “pointing” at DocTypes. For example, on the Stock menu, you could change the link to “Items” to read as “Products” instead. However, this only impacts the menu links. Once opened, the web page will retain its standard name.
An interesting workaround is using ERPNext Translations. While normally used for full-fledged languages, you could use Translations to make word substitutions. Changing the occurrence of “Item” to “Product”, for example.
(Note: this won’t be 100% effective; some web pages/elements always reference the original, true name. But it’s the best we’ve got.)
Now let’s talk modification to ERPNext. From my perspective, there are 4 basic approaches:
Some modifications are largely data-driven. You modify the behavior by editing configurations. Or writing your own client-side or server-side scripts. Have you truly “modified” the system? Eh…not so much. But you’ve changed the behavior. Which can effectively be the same thing.
ERPNext has a unique concept called Customize. This word Customize has a VERY specific meaning in this web framework. It is a way of editing a DocType/DocField, but the modified version is stored in the SQL database. Not the actual “official” code.
You can customize even when hosted by a 3rd party (assuming your particular ERPNext User account has permissions to do so). Because these customizations are stored in the SQL database, they only apply to your particular Site/Tenancy. They don’t impact your neighbors, who may be sharing the same host as you.
You can do a lot with Customize. As limitless as editing DocTypes themselves? No, there are definitely limitations. But you can go a long way.
Write a bolt-on App. This concept of App is your own set of DocTypes (and related code) that co-exists with the out-of-the-box features. There are even clever ways of overriding the standard code, without actually “touching” it. Given enough time, energy, and know-how, you could develop a App that makes (almost) any change you could desire.
Whether or not particular ERPNext providers allow their customers to install their own Apps? I cannot say; I’ve never worked with any third-party hosting services. You’d have to ask them.
Total Ownership/Control. For this, you’ll need to host ERPNext yourself. First, you need a machine running Linux. You can rent virtual hosts in the cloud for as little as $10/month. (though certainly you may need a stronger machine). That’s the easy part.
Next, you need to figure out how to install it. Your individual experience may vary, but I will say that a quick search on the Forums will illustrate the variety of challenges some users face. It’s much harder to install than other ERPs I’ve worked with.
Once you have your own private ERPNext, you can do whatever you like. Depending on how far you want to take it, this might require a substantial investment of time or budget. But there are no more limits to what you could achieve, given enough of either.
Hey @brian_pond, thanks heaps for the detailed explanation! Since writing this up yesterday and poking around even further I’ve got myself into a pretty good place and the system seems to be doing the things I want it to do without getting any developer mode access. Whether some of these customisations are set up in the best possible way… eh, that I am unsure of…
To rename some of the DocTypes I’ve used a combination of the Customise function and Translations. On a DocType’s Customise Form page I noticed a field called Change Label (via Custom Translation) - and bingo! This changes the label of the DocType in most spots; the functionality is a little patchy as when you go linking in a workspace it sometimes displays the original name and it won’t change the URLs or anything, but for end users this works well.
Additionally, I got some customisation of the navigation menu and sidebar working by using the Workspaces functionality. I kept reading that you could disable access to workspaces using certain permissions to remove/hide them from the sidebar but the naming issue and lack of flexibility to make changes to the standard workspaces was a pain. I got around this by removing the standard workspaces and creating my own - annoying in my cloud install as I couldn’t just duplicate the standard ones either and had to create from scratch but ultimately has worked well.
And I’m now working through making customisations for the standard DocTypes using a combination of Custom Fields and Customize Form and things are going great. In my day job I work as a functional consultant for the “worlds best” enterprise CRM and the functionality available in ERPNext is great, once you wrap your head around how some things are pieced together
I’ll still register some of my frustrations against the inability in the cloud version to edit some of the standard things, and the documentation could be a little clearer… but overall am really happy with how the system will work for me going forward!
Like any other system, there are certainly pros and cons. But the Frappe Framework is very flexible, and there’s nothing else quite like it. Very nice for small businesses, especially if you’re not afraid to run your own experiments, and have your own adventures.