Add-on modules are called plugins in GNC, which won't be easy to do since GNC is still based on the old-fashioned C APIs (C++ conversion is still ongoing).  A simple query "how to create plugins in gnucash" on google yielded the following AI-generated answer (John or anyone from the dev team please comment).  I guess the best way to achieve what you want is to contact the dev team and get your requests on their roadmap. A big $donation$ may help achieve your goal sooner...

Hope this helps.  Cheers!

-- ND
*---------------------------------------*
To create a GnuCash plugin, you need towrite code using the GnuCash C API, which allows you to interact with the GnuCash data and interface, essentially building a custom extension that integrates with the existing GnuCash functionality;this involves creating a new C project, defining your plugin's functions, and registering it with the GnuCash plugin manager to be loaded when the application starts up.
Key steps involved in creating a GnuCash plugin:

 *
   *Understand the GnuCash API:*
   Familiarize yourself with the GnuCash C API documentation, which
   outlines the functions and structures you can use to access and
   manipulate data within GnuCash, including accounts, transactions,
   and other financial elements.
 *
   *Set up a development environment:*
     o *Install necessary tools:*Ensure you have a C compiler, a
       suitable IDE (like Code::Blocks or Visual Studio), and access to
       the GnuCash source code (to reference the API).
     o *Create a new project:*Start a new C project in your IDE.
 *
   *Write your plugin code:*
     o *Include GnuCash headers:*Import the necessary GnuCash header
       files to access the API functions.
     o *Define plugin structure:*Implement the required plugin
       functions as outlined in the GnuCash documentation, including
       initialization, data access, UI elements (if needed), and
       cleanup routines.
     o *Data manipulation:*Use the GnuCash API functions to interact
       with the financial data within GnuCash, such as creating new
       accounts, adding transactions, or modifying existing data.
     o *GUI integration (optional):*If your plugin requires a user
       interface, leverage the GnuCash GUI toolkit to create custom
       dialogs, menus, or widgets that integrate seamlessly with the
       GnuCash application.
 *
   *Register your plugin:*
     o *Plugin registration function:*Implement the necessary functions
       to register your plugin with the GnuCash plugin manager,
       providing information like the plugin name, description, and
       initialization function.
 *
   *Compile and link:*
     o *Compile your code:*Compile your plugin code into a shared
       library (e.g., .so on Linux) that can be loaded by GnuCash.
     o *Place the library:*Place the compiled plugin library in the
       appropriate GnuCash plugin directory.
 *
   *Testing and debugging:*
     o *Start GnuCash:*Launch GnuCash and check if your plugin is
       loaded correctly.
     o *Test functionality:*Thoroughly test your plugin's features to
       ensure it interacts with GnuCash data as expected and does not
       introduce any conflicts.

Important considerations:

 *
   *API stability:*
   Be aware that the GnuCash API may change between versions, so
   consider potential updates required when upgrading GnuCash.
 *
   *Community support:*
   Reach out to the GnuCash community forums or mailing lists if you
   need help with plugin development.




On 1/5/25 4:43 PM, Steven via gnucash-user wrote:
I am just curious if there is a source for add on modules to GnuCash.   I have 
seen many questions about tracking inventory.   I think add on modules to 
handle inventory as well as CRM would be nice to have everything integrated.



_______________________________________________
gnucash-user mailing list
gnucash-user@gnucash.org
To update your subscription preferences or to unsubscribe:
https://lists.gnucash.org/mailman/listinfo/gnucash-user
-----
Please remember to CC this list on all your replies.
You can do this by using Reply-To-List or Reply-All.

Reply via email to