NetSuite comes equipped with powerful ecommerce capabilities, enabling customers to access real-time website data, while integrating seamlessly on the backend with other core business modules. NetSuite also integrates well with other standalone eCommerce platforms. This blog will cover a number of options that are available to connect NetSuite with standalone eCommerce platforms, should you choose to go that route.
Before exploring integration options, let us first look at a typical challenge faced by businesses using separate platforms for ERP and ecommerce, which is keeping data in sync between the two systems in real-time. A couple of examples of this problem are listed below:
- Inaccurate inventory levels – Product and inventory information are stored in two different locations and not having accurate inventory levels could be a cause of losing sales
- Customer management – Maintaining customer specific pricing details, historic sales information, and loyalty incentive information in two disparate systems could be be a challenge
It is evident that having a robust integration between your eCommerce platform and NetSuite is key to keeping both systems in sync and maintaining a flow of real-time information between the two.
Some of the major options available to integrate NetSuite are:
- Integration platforms
- SuiteApps or connectors that are specific to your particular eCommerce platform
- NetSuite Web Services (REST services are still in BETA as of this blog)
- Custom Integration built using SuiteScript
This blog will discuss in detail the option of building a custom integration using SuiteScript.
First and foremost, when building an integration between the eCommerce platform and NetSuite, business flows that need to be integrated will have to be identified, and the system that will be the source of information for each business flow designated. This will help determine the direction of integration and finalize the integration option.
Next, the frequency of the data sync between the systems will need to be determined. This could either be a real-time or delayed sync. With delayed sync there could numerous scenarios such as a delayed sync occurring at certain time intervals during the day, or once a day after the close of business, etc. Business process and flow will play a key role in identifying these sync frequencies.
With these decisions in place, it becomes easier to design the custom integration solution. Based on business needs, customers can choose between file-based integration or custom API-based integration.
- File Based Integration – Data is exchanged between the systems using CSV files (or any other compatible file format). This option can be used if the sync is not in real-time, and also may be required when there is a huge volume of data that needs to be processed together. Once the file is pulled into NetSuite, script options like Schedule or MapReduce are used to process the information received.
- Custom API Based Integration – This is the preferred option for data and integration points that need near real-time integration between the systems. Restlets help achieve this functionality.
The scripting solution design needs to be flexible enough to handle different scenarios and business cases that pose challenges. Governance limits of script types and the amount of data that needs to be handled should be kept in mind while designing the solution. Occasionally, in place of a single script, a combination of scripts may be needed to achieve a functionality. This can be better understood with the simple example of a Sales Order creation. On receiving order details from the eCommerce platform, a script needs to create a Sales Order in NetSuite. This requirement sounds straightforward. However, if the business flow allows a new customer to directly place an order on the ecommerce platform, the requirement becomes slightly more complex. In this case, the script should first verify if the customer exists in NetSuite. If not, then the script should create a customer record. After creating the customer record, the order can be created, and then both NetSuite customer id and sales order id returned to the ecommerce platform. In this second scenario, it is important to be mindful of the script governance along with the time taken to send back a response to the eCommerce platform.
It is also important to note that the design should be flexible enough to allow future expansion and scalability. The design should provide customers with the ability to plug in any new integration points easily while also allowing them to remove/turn-off any unnecessary integration points with the same ease.
Integrating systems is always complicated and every integration option has its own pros and cons. A custom built integration between an eCommerce platform and NetSuite needs development and thus has an upfront cost. However, the key advantage of this custom building is that the solution is tailored to the specific needs of the customer and suits customer needs 100% while providing a seamless integration of the business processes.