What is a bundle?

A bundle is a technical term for grouping components as packages within NetSuite. It is also known as SuiteApp. It is a process of packing up customizations like dashboards, custom records, fields, and configurations like enabled features, chart of accounts, transaction numbers from one NetSuite account, and copying them to another NetSuite account. This bundle can be easily installed or uninstalled in a NetSuite account. Bundles will be available to access in production accounts, sandbox accounts, and the bundle repository.

For instance, developers may create customizations in their accounts that meet the needs of their customers. To host all of this in the client environment, all they have to do is group all the components into a bundle. Make the bundle publicly available through the NetSuite bundle repository, so it can be retrieved from there to the client environment, or can just directly install in the client's account.

Want to Become a Master in Netsuite? Then visit here to Learn NetSuite Online Training!

Types of bundles

There are 2 types of bundles available for installation in NetSuite accounts.

  • Customization bundle
  • Configuration bundle

Customization bundle

It is a group of custom objects like custom forms, SuiteScripts, and website layouts that represent the customized behavior in the NetSuite application. It makes the installation of application packages easy. We can also lock some objects to prevent anyone to make changes to them in the target accounts. If any conflicts arise between the customization bundle and existing objects of the target account while installing or updating, they are detected and resolved automatically. We can associate SuiteScripts to the customization bundles to be run as part of bundle installation, update, or uninstall.

Configuration bundle

It is a group of NetSuite setup entries and preference settings that can be transferred to the target NetSuite accounts. We can standardize the NetSuite account configuration across all the accounts in an organization. The settings may include company preferences, auto-generated numbering settings, etc. Unlike the customization bundle, we cannot lock any objects here or make the bundle publicly available. Once a configuration bundle is installed in an account, it cannot be uninstalled.

Benefits of using bundles

Here are some of the key benefits of using bundles.

  • Save time - developers don't have to manually deploy hundreds of customizations in multiple screens. The installation will be as easy as one click, and all the customizations will be implemented automatically in target accounts.
  • Maintain consistency - developers can make sure that the consistency of customizations is being maintained across all the environments.
  • Lock features to clients - when developers want to bundle an application and distribute it to multiple clients, they can lock some features in the bundles. So the target users cannot make any changes to the locked features.

SuiteBundler

SuiteBundler is a feature offered by NetSuite to package together groups of objects and create a bundle. The people who create the bundles are called bundle authors. The authors can be internal developers, independent software vendors (ISVs), IT administrators, etc. To use the SuiteBundler, the feature has to be enabled by NetSuite account administrators or users and must have access to the SuiteApp Marketplace. Once a bundle is created, the author has to set its availability that indicates whether the bundle is private, share among other accounts, or publicly available.

Components of SuiteBundler

A SuiteBundler includes four components.

Bundle Builder

It is a graphical assistant used to create SuiteBundles easily in just 4 steps. The bundle able components include simple elements like user roles, dashboards, custom reports, custom KPIs, custom tabs, Scorecards, and custom lists. It includes custom forms to database elements like custom fields, custom records/objects, and scripted business processes. It also includes application development elements like client SuiteScript, Server SuiteScript, SuiteScript UI Objects, and Suitelets.

Bundle Distribution

A bundle can be distributed in 3 different modes.

Shared - a bundle can be set commercially available to specific customer accounts that have purchased the solution.
Private - when developers build customizations for their implementation, they can set the bundle availability to private. So, no one can access the bundle except the administrator of the account.
Public - a bundle can be set public by a developer to share it among the open-source community.

SuiteSource Bundle Repository

Developers and administrators can move custom bundles between accounts using the bundle repository. They can save the customer-installation ready version of their SuiteBundle in the repository. So it can be retrieved and installed on customer accounts. Users can search or filter a bundle based on keywords or bundle characteristics like account id, product, language, etc.

Bundle Installation

Once a bundle is located in the bundle repository, customers can install it with just a click. During bundle installation, all the content present in SuiteApp bundles will be inserted into the target account, and the functionality will be available immediately.

Creating a Bundle

Creating a bundle is very easy. Open your NetSuite account and navigate to the Customization. Select the 'SuiteBundler' option and click on the 'Create SuiteBundle' option.

Step 1: Bundle Basics

This is where we have to enter basic information of a bundle. It has the following options,
Name - Give a name to your bundle.
Version - Give a version number and update it for each bundle update.
Abstract - Give a brief description of what the bundle is for.
Configuration Bundle - Check the box if you want to create a configuration bundle.
Bundle All - To select all the available objects, check this box.

Step 2: Bundle Properties

This step contains brief information of the bundle that helps the users to search it easily

Description - Give a brief description of the bundle.
Product - Select the product type that the bundle is compatible to install.
Vertical - Select the industry vertical to which the bundle belongs to.
Language - This will be English by default.
Admin Documentation - Attach the documentation that contains details of the bundle.

Step 3: Select Objects

You will be navigated to the Select Objects wizard screen, where you can choose the objects that you want to include in your bundle. Some record objects might get automatically added to the bundle.

Step 4: Set Preferences

It will show a consolidated list of all the objects selected in the previous screen. You will also have the following options to select for each object.

Hide on Existing Custom Forms - To hide/display the object in the target account's custom form.
Replace Data - This option overwrites the existing target account object data with the bundle object data.
Preserve Data - The bundle does not overwrite the existing target account object data.
Merge Data - This will add the bundle object data to the existing target account object data.
Lock-on Install - This will lock the object in the target account, so Changes cannot be made.

Conclusion

Customer requirements tend to change based on market needs. So it is important to customize the solutions that meet customer standards. NetSuite SuiteBundler helps developers majorly to retain the customizations and configurations in the customer accounts. In this post, we have shown how to create bundles. Try out creating your own bundles in your NetSuite accounts.