The story of SuiteCRM starts with SugarCRM. SugarCRM was founded in 2004 and consisted of an open source version (called Community Edition) and various paid for versions. However trouble started brewing when it appeared that SugarCRM would not be releasing a Community Edition of SugarCRM 7 and would be providing limited, if any, updates to the Community Edition.
Enter SuiteCRM. SalesAgility forked Community Edition to create SuiteCRM and also added various open source plugins to add improved functionality.
This guide is intended for developers who are familiar (or at least acquainted) with using SuiteCRM but want to perform their own customisations. SuiteCRM is a large and mature piece of software so it is impractical for a guide to cover all aspects of the software. I’ve tried to add the most important parts which should allow you to make the changes you need in 99% of situations. There is a further resources chapter at the end of this guide to help out in those 1% of cases. With that being said if you feel there is anything important I have left out (or worse, anything incorrect in the guide) please let me know. I can be contacted at JSMackin.co.uk.
Each chapter in this guide is intended to be self contained so the reader can jump to interesting chapters. Where there is some overlap this is usually indicated with links to the relevant chapters.
Some parts of this guide may refer to file paths or other parts of code
that can have a variable value, for example controller names contain the
module name or a file with an arbitrary name. In this case these will be
marked in the form <TheModuleName>
, <TheFileName>
or something else
suitable. In these cases you can substitute something appropriate (such
as Accounts
or MyNewFile
).
In this guide we’ll be using SuiteCRM v7.1.5 which is the latest at time of writing. For up to date versions of the installation instructions see the SuiteCRM wiki at suitecrm.com/wiki/index.php/Installation.
The SuiteCRM installer can be found at SuiteCRM.com. I would recommend SuiteCRM MAX as I prefer to start with a full interface and customise it as needed.
SuiteCRM is also available on GitHub at github.com/salesagility/SuiteCRM. Each SuiteCRM version is tagged so you can easily grab the version you need.
After the initial install there are a few tweaks you may want to make on an instance you are developing on. These changes should improve your development flow and productivity as well as help identify issues if they occur.
SuiteCRM will cache various files that it processes, such as Smarty templates. Developer mode will turn off some of the caching so that changes to files will be seen immediately (though this isn’t always the case - as is the case with extensions). This can be enabled either through the config file or via the General settings page inside admin.
The default log level of SuiteCRM is fatal
. This is a good default for
production instances but you may want to increase the log level to
info
or debug
. This will make the log output more verbose so, should
anything go wrong, you’ll have something to refer to. See the
chapter on logging for more
information.
You’ll also want to turn off display errors. Unfortunately at the moment
SuiteCRM has various notices and warnings out of the box. With
display_errors
on this can sometimes cause AJAX pages and the link to
break.
With this being said you should be checking the PHP error logs or
selectively enabling
display_errors
to ensure that the code you are creating is not
creating additional notices, warnings or errors.
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.