There is very little information out there on how to get started developing with SuiteCRM. This post aims to help point you in the right direction, nothing more.
A good place to start is
https://docs.suitecrm.com/developer
You can also look at SugarCRM development Guide: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5
I have a blog: http://sugarmods.co.uk/
SuiteCRM is a Fork of SugarCRM CE 6.5.x so at its core is the SugarCRM CE framework. Therefore any information out there that explains how to customise some aspect of SugarCRM CE is also relevant for SuiteCRM (for the most part).
For example if you wanted to create a custom action in a module you would create a custom controller and add your action in there:
https://developer.sugarcrm.com/2011/02/07/howto-creating-custom-controller-and-view-classes
Examples can be seen in the Projects module of SuiteCRM
Entirely custom Views can be added to modules and existing views can be modified:
If you wanted to add a global action to SuiteCRM you would probably want to create an entry point:
http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Application_Framework/Entry_Points/Creating_Custom_Entry_Points/index.html
Of you could add it to the global utils:
If you need to add custom JavaScript to a View: http://sugarmods.co.uk/adding-custom-javascript-to-a-view-in-sugarcrm/
There is also an extensive range of logic hooks that can be easily utilised :
Module Logic Hooks:
after_delete: Executes after a record is deleted.
after_relationship_add: Executes after a relationship has been added between two records.
after_relationship_delete: Executes after a relationship has been deleted between two records.
after_restore: Executes after a record is un-deleted.
after_retrieve: Executes after a record has been retrieved from the database.
after_save: Executes after a record is saved.
before_delete: Executes before a record is deleted.
before_relationship_add: Executes before a relationship has been added between two records.
before_relationship_delete: Executes before a relationship has been added between two records. before_restore: Executes before a record is un-deleted.
before_save: Executes before a record is saved.
handle_exception: Executes when an exception is thrown.
process_record: Executes when the record is being processed as a part of the ListView or subpanel list.
Example of how to create a Logic Hook: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Module_Framework/Logic_Hooks/Introduction
If you want to create a custom Scheduled Task check out: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_6.5/Extension_Framework/Extensions/ScheduledTasks/
This is a great post on how to actually work with records within a custom module, action or logic hook using the sugar bean :
https://developer.sugarcrm.com/2012/03/23/howto-using-the-bean-instead-of-sql-all-the-time
How to work with the database and execute SQL queries:
Creating a Custom module:
Creating a custom module is fairly straightforward, the best place to start is “Module Builder” in the admin section of SuiteCRM. This will let you create and deploy a basic module. It provides a studio like drag and drop interface where you can add Fields and relationships to your new module. You will then be able to deploy the module straight into your SuiteCRM instance or export the module as an installable package. You cannot create any real custom functionality via module builder, its just basic modules that allow you add and delete records and relate them to existing modules.
However, this provides the perfect starting point for more complex modules which can then be enhanced with controllers, views, logic hooks as out lined above. The structure of the installable package will also show you how to create an installer for SuiteCRM. More info here: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_7.6/API/Application/Module_Loader/Package_Examples/
Other useful links:
https://www.sugaroutfitters.com/blog/how-to-add-buttons-to-views-in-sugarcrm
https://www.atcoresystems.com/?portfolio=sugarcrm-manifest-development-guide
And the ultimate repository of knowledge which has now been shut down by SugarCRM
https://web.archive.org/web/20150416100114/http://forums.sugarcrm.com/f6/