NetSuite-Venda
|
This was my first major integration project between NetSuite and other 3rd party systems. During my years with one particular client, they had a £500k budget to build an integration platform for their eShop, which turned over £6m per year before they outsourced it to another company.
|
The existing system landscape this business operated upon was cluttered, not integrated, hence impacted effectiveness and efficiency. By designing and implementing a new online eStore, the business could better focus on its core functions and streamline all B2C and B2B processes on one integrated platform on a SaaS basis.
Some areas that were considered:
- Components to integrate with NetSuite including: Payment gateways, email campaign tools, additional sale channels & SFTP servers.
- Field mapping and data syncing of the various systems
- CRM capabilities and automation of emails
- Product data management and maintenance after roll-out
- Usability and security of payment gateways
- User training of new business processes and support model
Component Interfaces
|
The main three components of consideration: NetSuite, Venda, Celigo.
Celigo are an integration provider, who in partnership with NetSuite helped build the integration platform. They wrote 10 customised integration flows which interacted with the Venda & NetSuite APIs. |
Some flows included: ORDER/CUSTOMER IMPORT, ORDER UPDATE, REFUND IMPORT & STOCK LEVEL IMPORT
High level process design |
Of course with every implementation, users need to know the new process to follow. I have noted some of the main processes we had to devise below:
|
PROCESSING A PURCHASE ORDER
START ----> Enter PO ---> Approve PO ---> Receive PO ---> END
START ----> Enter PO ---> Approve PO ---> Receive PO ---> END
PROCESSING A SALES ORDER
START ---> Create SO ---> Fulfil SO (pick, pack, ship) ---> END
START ---> Create SO ---> Fulfil SO (pick, pack, ship) ---> END
COLLECTING PAYMENT FROM THE CUSTOMER
START --> Order Fulfilment --> Collect Payment --> Process to ship item(s) --> END
START --> Order Fulfilment --> Collect Payment --> Process to ship item(s) --> END
Reflection
This project lasted 6 months and offered an insight to NetSuite's supreme
capabilities to integrate with other 3rd tools. I do however look back at this project and question the areas I would improve today to stabilise the integration in terms of security and speed up the syncing of data. Here are some reflective points:
capabilities to integrate with other 3rd tools. I do however look back at this project and question the areas I would improve today to stabilise the integration in terms of security and speed up the syncing of data. Here are some reflective points:
1) Integration timing: One flaw I always found with this integration was how frequent NetSuite was syncing data between the various systems. The scheduled scripts that triggered the data integration was once every 30 minutes. Indeed, NetSuite have since enhanced this capability but as long as a timing gap exists, eShop products will always be at risk of overselling if (for instance), the stock count of products on Venda are not matching the true count on NetSuite.
2) Scripting queues: This particular NetSuite account only had one scripting queue; thus all scripts would have to wait its turn to execute (even if the applicable scheduled time has lapsed). The time it takes for the execution of one script to complete varies and would therefore impact the timing gap from when data was last synced. Business users could increase their scripting queues to 10, but that would come at a significant cost of a new "SuiteCloud Plus" licence. A carefully designed solution could easily avoid these unnecessary costs.
3) Use of internal systems: One of the worse design decisions any business can make is integrating any critical on-site systems with NetSuite. In the case of this project, the business decided to integrate their SFTP server with NetSuite, but the uptime was unreliable and frequently shut down, causing the whole integration platform to break. On some occasions, the SFTP would shut down during out-of-office hours and users would not realise that the integration was down until they returned to work. Consequently, customer orders would be delayed and often apology emails had to be sent out.
2) Scripting queues: This particular NetSuite account only had one scripting queue; thus all scripts would have to wait its turn to execute (even if the applicable scheduled time has lapsed). The time it takes for the execution of one script to complete varies and would therefore impact the timing gap from when data was last synced. Business users could increase their scripting queues to 10, but that would come at a significant cost of a new "SuiteCloud Plus" licence. A carefully designed solution could easily avoid these unnecessary costs.
3) Use of internal systems: One of the worse design decisions any business can make is integrating any critical on-site systems with NetSuite. In the case of this project, the business decided to integrate their SFTP server with NetSuite, but the uptime was unreliable and frequently shut down, causing the whole integration platform to break. On some occasions, the SFTP would shut down during out-of-office hours and users would not realise that the integration was down until they returned to work. Consequently, customer orders would be delayed and often apology emails had to be sent out.