General architecture for Magento 2
Used technologies
The NetSuite connector is implemented as a Magento extension, 100% unencrypted code. It does not use any external service other than the NetSuite instance it communicates with.
The communication with NetSuite happens via SuiteTalk , which is a SOAP service. It makes use of the PHP Toolkit , a light wrapper over SOAP provided and maintained by NetSuite
Possible Flows
In all cases, NetSuite is assumed to be the "master".
Product synchronization: Product data is imported from NetSuite, it is assumed the catalog is managed there. However, it is possible to have specific product fields unmapped, allowing you to change information directly in Magento, i.e. you may decide to do category association directly in Magento
Stock synchronization: Stocks are always pushed from NetSuite to Magento, never the other way around.
Order synchronization: A new order is pushed from Magento to NetSuite. Further changes to orders in NetSuite are synchronized back in Magento (status changes, order edits)
Invoice synchronization: Any invoice created in Magento is pushed to NetSuite as a cash sale or invoice. Any cash sale/invoice created in NetSuite is pushed back to Magento, considering that the parent order came from Magento
Fulfillment synchronization: Any fulfillment in NetSuite done on an order that came from Magento is pushed to Magento as a shipment. Magento-created shipments are never pushed to NetSuite
Disabling Flows
In case you don't need all flows above, they can be disabled in the connector's configuration screen:
Queueing
All NetSuite operations are queued provides 2 advantages:
- since no NetSuite communication happens synchronously, there is no slowness or down time for the website in case the NetSuite instance is slow or down
- in case an error occurs, the item (i.e. order, invoice) is kept in the queue. An error message is triggered and you get the chance to investigate, fix then push the item without losing it
There are 2 different queues:
- import
- export
The queues can be visualized at System->NetSuite->Import Status / System->NetSuite->Export status. If you see an item in any of the queues, it means that it was not processed yet.
Approximate throughput
The connector itself has little speed bottlenecks, but it uses the standard "save" methods for products/orders other objects. So 90% of the speed and load concerns are related to your system's ability to do the save operations. On a Magento default instance, it can import approximately one product per second and send one order in 2 seconds.
Speed optimizations:
- the connector supports running imports, exports and stock syncs in parallel considering that you have NetSuite licenses for at least 3 web users
- Exporting can be done in parallel with a few code changes (e.g. have 2 crons, one exporting odd order numbers, the other one even numbers)
Optimized product import uses Magento Batch product import API and can handle approximately the same products per second as Magento's batch product import can, the main slowdown in this case comes from the NetSuite network communication.

No comments to display
No comments to display