One of the many challenges in creating SugarCRM add-ons meant for mass distribution is adding new fields to a given installation's layouts. Simply instructing folks to go to Studio and add your key fields to each view causes so many issues. Any time you rely 100% on someone following an installation guide there is a much greater chance that...

  1. They never knew about the install guide
  2. They installed the solution, can't see where the field is, and now reached out for support
  3. They just insta-quit their trial and move on
  4. They not only quit, but leave scathing, rage-filled reviews on how nothing works

So why even take a chance and instead add those fields to the UI for them? This is another important, and fairly easy, thing that you can do on behalf of the user. Much like adding scheduler jobs, doing Repair and Rebuilds, and redirecting appropriately after installation is complete. Each manual step that you remove for a user means a higher chance of success for them and for you.

How do you add fields to a layout in SugarCRM automatically? Thankfully, the fine folks at Epicom shared a clever way to do this on installation. We've expanded on it so that it works in SugarCRM 7 and that the cache is rebuilt automatically.

I am purposely just posting the code without covering the details on what it does or why as it can be pretty intense. The key piece is the call to addField2View. Notice that this works on the old 6 version along with 7. What it is doing is adding a new panel just for your module's fields. It's just easier to do than try to position it exactly in some existing location as each installation has the chance that it has been reconfigured differently.

You can even have fields removed during uninstall. In the example below we just remove the newly created panel that is meant just for this module.

With a little extra work you can save both your users and yourself a ton of time. Not only that, your sales are much, much more likely to convert.