Aug
25
SugarCRM Developer’s Manual: Customize and extend SugarCRM: Learn the application and database architecture of this open-source CRM and develop and integrate your own modules and custom workflows
Filed Under email marketing
Learn the application and database architecture of this open-source CRM and develop and integrate your own modules and custom workflows Learn to customize SugarCRM codeDevelop modules from scratchLearn database and application architectureIn Detail SugarCRM is the world’s leading commercial open-source customer relationship management (CRM) software for companies of all sizes. SugarCRM easily adapts to any business environment by offering a more flexible, cost-effective alternative… Buy SugarCRM Developer’s Manual: Customize and extend SugarCRM: Learn the application and database architecture of this open-source CRM and develop and integrate your own modules and custom workflows at Amazon
Comments
3 Responses to “SugarCRM Developer’s Manual: Customize and extend SugarCRM: Learn the application and database architecture of this open-source CRM and develop and integrate your own modules and custom workflows”

Note: this book addresses versions 4.5 and below. I’m finding out that things are a bit different in the version 5 beta, so the utility of this book is greatly reduced.
As a point of reference, I have about 10 years of PHP experience. I have used the PEAR and Smarty libraries extensively. I was drawn to SugarCRM based on my familiarity with those libraries and the fact that SugarCRM uses them, to some extent. I bought this book because it was the only game in town that addressed custom module creation.
The book begins with customizing the interface via SugarCRM Studio. It progresses to the creation of custom modules, with a pretty large section in the middle on database diagrams, as noted above. The meat of this book, in my opinion, was in chapters 8 and 9 (the last 2 chapters). Bain explains how to set up and edit the files to create your own basic module and workflow in them.
My main complaint is that Bain doesn’t adequately explain the interaction with other modules, ACL for example, which in my opinion is one of the more important ones.
In Bain’s defense, SugarCRM is a very complicated web application. Try doing a print_r($GLOBALS) and you’ll see what I mean. On an example page, that one line of code resulted in over 15,000 lines of output.
The newest version of SugarCRM has a Module Builder (MB) component that will automatically create the files for you, as well as the database tables. If you’re using v5, you’re probably better off using the MB and examining the files.
The only other option is to use the wiki (spotty) and the official documentation (inadequate). I’m hoping the people at Sugar put out their own reference book, and the sooner the better!!!
There is little here that can’t be derived from a review of the online sugar documents and a little self-motivated tinkering. Its hard to believe that this book is the result of something other than just that. Based on how much additional information is available here that’s not in the public domain, the $49.99 is a little hard to believe.
While the text goes at 269 pages, there’s really about 30-40 pages of actual beef here. I was able to condense all of one chapter into 5 lines on a wiki page. Fully 60 pages of this book are un-annotated schema definitions of the sugar database; a waste of paper that verges on criminal. This information is readily available and in a more usable format through the phpMyAdmin tool that is bundled with the Sugar installer. Reprinting it here seems to serve no other purpose than to increase this books heft; and thereby its saleability.
Completely missing is information on what a sugar customizer might actually find difficult, like debugging sugar when something goes wrong, linking custom modules with existing modules (like notes), or adding custom columns to advanced search screens.
Before I start the review, I must admit that I have not worked much with SugarCRM but I do have significant development experience. As such, I might call myself a “beginner-level developer” as far as SugarCRM customization is concerned. Therefore, my review should probably be qualified for beginner-level SugarCRM developer rather than an experienced one. I make this qualification because I have seen some other reviews which are harsh on this book with regard to certain development aspects that seem to be inadequately covered.
As a first-time SugarCRM developer, my feeling after reading the book was that customizing SugarCRM is easy. It is in large part due to the excellent work by the author . The author’s style and the organization of content made it a breeze to go through most of the book. Before I could put the book away thinking that the book addressed only simple scenarios I ran into the last four chapters of the book. These chapters alone could make the book a worthy buy.
This book is a blend of gentle introduction, reference material, and real-world advice. I am always looking for real-world experience and recommendations in a book since the introduction and reference material are often available from other sources. Some of the advice in the book goes beyond SugarCRM and applies to PHP-mySQL applications in general.
Good introductions can also be valuable and this book is certainly a good choice if you are looking for one. The book also devotes 60 pages to database dictionary, which I mostly skipped. For such information, I like to directly query a database instance but I can see how these pages can provide a useful reference while reading the book.
The book has plenty of code samples and screenshots, which make it easy to follow. It is also helpful that the book uses a single business scenario and builds upon it throughout the book. It helps to see natural progression from simple to complex in some cases and interrelationships in others.
The book uses version 4.5 and the latest one is 5.2. The next version after 4.5.1 was 5.0, which became available in early 2008. A quick look at the release notes for 5.0 did not seem to indicate huge differences between 4.5 and 5.0. However, another reviewer has indicated that there are several important differences between 4.5 and 5.x. So you may need to do your homework to figure out whether this book can serve your needs.
The book starts with some quick and easy customizations of look and feel as a warm-up. Then it shows how to add custom tabs, dashlets, and custom fields. Next it describes the architecture of the application followed by the details of the database structure. I love the material that comes after this point. Some good advice about development, testing, and upgrades. The knowledge shared here is sometimes applicable to other PHP-mySQL applications as well. This is followed by the advanced topics of writing custom modules and workflows. The book concludes with tips on tuning SugarCRM and writing reports. I feel that it is the last 4 chapters that will add the most value in any real-world customization of SugarCRM.
Conclusion
This is an excellent handbook for beginner-level developers customizing SugarCRM version 4.5. For other situations, it may or may not be what you need so you need to do some analysis before selecting this book. Also note that this is not a book about making the best use of SugarCRM. That is not a shortcoming of the book because the book clearly identifies its audience and purpose – customization for developers. If you are looking for a book about using SugarCRM then maybe you should look at the book – Implementing SugarCRM.