Development/Customization Approaches

I’ve been evaluating erpnext for a potential project. It seems to me that the work could be accomplished through a custom app as well as through the web customizations of some of the existing erpnext features.

I’m a little confused about how through the web customizations work (for example adding a custom field to an Item). How does one move a customization like a custom field/form from environment to environment? Say I want to move it from a development machine to production, for example?

I have some more questions, but this will do as a start.

Thanks and regards,

Robert Moskal
Most Media
Brooklyn, USA

1 Like

Robert - welcome to the community!

You can add Custom Fields to Fixtures read this:

https://frappe.io/kb/app-development/how-to-add-customizations-to-app

Thanks for the quick response.

So I would take the custom_field.csv produced after doing my through the web updates to the erpnext app and include that in the fixtures directory of an app I develop. Then when I make a new installation of erpnext and install my custom app, the erpnext doctype I modified would have the new fields. Does that sound right? Is there anything I’m missing?

Also any updates you make and export, will be updated when you do bench update on all sites.

1 Like

rmehta:

Cool, in principle I understand how to save through the web customizations (like custom fields). I’m assuming something similar can be done other through the web customizations (like setting up territories, accounts, ware-houses).

I’m still having trouble understanding how to structure a solution for my client (how my artifacts all hang together). For example, where in my application structure do the exported fixtures for erpnext live?

Also I’m having trouble understanding how to build an app that extends erpnext. I can follow the developer tutorial to create the library app. But if I load the erpnext into the website as well as the created app, I can no longer create docTypes through the web. I’m assuming I need to do that if I create a model (docType) that has a link to a field in an existing erpnext docType. Can you give me a little pointer in this direction?

Thanks and regards,

Robert Moskal
Most Media
Brooklyn, USA

rmehta:

Creating the app is good.
However, what if for custom process specific to my business, i need to extend functionality within .py files of standard doctypes. Do i need to manually redo code changes after an upgrade again?

You should try and make these features as generic as possible and then send contributions to the main product. Thats the best way to have them maintained, else you will have to maintain your own fork and manage conflicts.