I just started with ERPNext. I Went through Frappe tutorial and set up my server.
What I need to do is start customizing ERPNext default apps to add or override some functionality to suite our needs.
For example we need to add some country specific accounting functionality and make changes to manufacturing etc.
Let’s say that I want to change ERPNext default app behaviour. Add DocType fields, some calculations when creating these fields. Change some default buttons functionality, like adding additional checks or doing some extra steps etc. Adding new buttons.
Our goal is that when ERPNext is updated then our custom changes would work with these new updates. We would like to make changes in the way that they can be added to clean ERPnext install without importing database.
How should I start extending ERPNext default apps?
Should I make new custom app and define hooks there and using $ bench --site mysite export-fixtures to ensure DocType custom fields to be created when this custom app is installed?
But what about buttons, and button logic changes etc.
What is recommended way of overriding ERPNext default app logic and adding logic to default app in a way that it survives ERPNext updates. Like inheriting most of the functionality and UI logic but adding and overriding (extending) some functionality and UI behaviour.
I am looking for big picture here.