Published Dec 14, 2020

Managing the Holiday Rush with Concurrencies, pt 2: Best Practices for Various Ecommerce Platforms

Celigo
Celigo

Previously we talked about implementing concurrencies to increase the throughput of your NetSuite integration flows, making it easier for your backend to cope with the holiday order rush. Now that you have a good understanding of how concurrencies work in general, you might be interested in learning how they function with specific eCommerce platforms.

This week, we’ll talk about best practices for using concurrencies with eCommerce Integration Apps like Shopify, Amazon, and eBay. Among the many topics we’ll walk you through include setting up additional connections, potential limitations for that platform, and even ways to optimize the performance of individual flows.

Choose your own adventure by clicking on the section you want to read below.

Shopify – NetSuite Integration App

Connections

  • Increase NetSuite connection’s concurrency level. However, considering Shopify limits, the concurrency level should not be more than 15. To do this, go to Connections. Next to the NetSuite connection, below Actions, click on the three-dotted icon > Edit connection > Advanced > Concurrency Level.
  • Shopify concurrency: The recommended concurrency for Shopify (standard) users is 1 and for Shopify Plus is 3. The assigned concurrency is applicable for all the linked integration flows for that particular connection.
  • You can set a maximum of 3 concurrencies to the Shopify Plus connection in the Integration App. If you require more concurrency, it is recommended to create a Private App.
  • Shopify provides concurrency to any private app connection as per business needs.

Limitations

  • Shopify accepts only 1 API request in Shopify (standard) edition and 4 API requests (Shopify Plus) per second. For more details, see Shopify API rate limits.
  • The Integration App does not support Private App connections if you are using real-time integration flows.

Sandbox environment integrations

In Shopify, the rate limits work as per the Application-Store combination. It’s better if you disable all the sandbox environment flows to see maximum throughput for the production environment flows.

Order sync from Shopify to NetSuite

  • Increase the NetSuite connection concurrency to a higher level as required. If you are using the “Shopify Order to NetSuite Order/CashSale Add” batch flow, there won’t be any issue with the higher NetSuite concurrency. The real-time flows utilize only 1 concurrency even if the NetSuite connection has more concurrency. With respect to other batch flow, it utilizes up to the maximum available concurrency limit.
  • “Shopify Order to NetSuite Order/CashSale Add” batch flow:
    1. To run this flow, It’s always recommended to select the Creation time option in the Filter orders by setting. (Flows > Order > next to “Shopify Order to NetSuite Order/CashSale Add” flow > Settings)
    2. It’s recommended to input very minimal lagOffSet in the Lag time to update the order status setting (Flows >  Order > “Shopify order to NetSuite order/cash sale” flow settings) based on the business use case.
  • If you sync your orders using batch and real-time flows, it’s highly recommended to run the batch flow less frequently (once or twice a day).
  • To reduce the item lookup errors, enter a value in the NetSuite SKU field setting and provide default values in the NetSuite item to track order lines when no matching SKU is found in NetSuite and NetSuite item to track Shopify order lines with no SKU value settings ( Settings > Order > Item sub-tab).
  • Undeploy unnecessary scripts on the NetSuite SalesOrder, CashSale (only if you’re sure.)

Tax setup

  • Set up tax codes/components properly in NetSuite or use the integratori.io tax configuration in the Settings > General > Tax sub-tab:
    • Add total tax against single line item on the order OR
    • Overwrite taxes with tax with Shopify tax amounts with the Assign the default tax code to all orders checkbox checked.
  • Using proper tax setup will help to reduce the variance and also reduce extra NetSuite API calls to fix the variance.

Customer sync from Shopify to NetSuite

  • Use the Default NetSuite customer if missing on Shopify order setting (Settings > Order section > Customer sub-tab) if customer details are not needed in NetSuite. You can sync the customers later using the “Shopify Customer to NetSuite Customer Add/Update” flow.
    Important:
     In this scenario, the customers are not linked to the orders.
  • Try to run the “Shopify Customer to NetSuite Customer Add/Update” and “NetSuite Customer to Shopify Customer” flows before the season and update customer data in Shopify and NetSuite to sync the data ahead.

Transaction sync from Shopify to NetSuite

  • Typically, the Shopify transaction data is synced to NetSuite for credit card reconciliation purposes. If the transaction data in NetSuite is not being leveraged, the “Shopify Order Transaction to NetSuite Transaction” flow can be temporarily or permanently disabled (Flows > Order).

Inventory sync from NetSuite to Shopify

  • Run the “NetSuite Inventory to Shopify Inventory Add/Update” flow in delta mode to increase the performance by selecting the appropriate export batch size. To increase performance at Shopify end, consider the Private App option:
    1. Create a Private App in your Shopify account.
    2. Authenticate a new connection in your integrator.io account, using the Private App details.
    3. Assign this new connection to the high volume integration flows.
  • Sync your inventory levels in advance to the holiday season and run as per the delta-mode during the sale time.
  • Uncheck the Always sync inventory levels for entire catalog checkbox (Settings > Inventory) to avoid setting a large amount of data to Shopify.
  • Run the “Shopify Product Id to NetSuite Item Mass Update” flow (Flows > Inventory) in prior as it involves huge data. Try to run it before so that both the systems (Shopify and NetSuite) are in sync.Example: Schedule the “Shopify Product Id to NetSuite Item Mass Update” flow once before the holiday season to ensure that the item ID map is synced between Shopify and NetSuite.

Item sync from Shopify to NetSuite

  • Try to load all the items before the holiday season, and during the season, lower the frequency of Item export to as low as once per day.
  • Bulk updates or mass updates to item records should be scheduled during non-peak hours, and preferably should be performed in batches.

Other Shopify integration flows

  • Sync refunds and cancellations at a very low frequency.

Shopify payout reconciliation add-on

Recommendation: It is recommended not to run the flows to reconcile during the sale period.

You can sync the previous payouts of all sale days once the load on the below flows reduce:

  • Shopify Order to NetSuite Order Add
  • Shopify Order to NetSuite Cash Sale Add
  • Shopify Order to NetSuite Order/CashSale Add
  • NetSuite Fulfillment to Shopify Fulfillment Add
  • Shopify fulfillment to NetSuite item fulfillment
  • NetSuite Inventory to Shopify Inventory Add/Update
  • NetSuite Kit and Item Group Inventory to Shopify Inventory Add/Update
  • Shopify Product Id to NetSuite Item Mass Update

 

Automate order-to-cash with Celigo

Amazon – NetSuite Integration App

Connections

  • Use Secondary NetSuite Connection for high volume or low priority flows exclusively. This will help in the faster execution of the high priority flows.Examples:
    • Assign high priority flow such as order sync, so that other integration flows don’t block the queue.
    • Settlement flows generate higher volume and lower priority data.
  • Set the appropriate concurrency for both the primary and secondary NetSuite connections. The connection serving high priority flow, such as orders and fulfilments should take a higher count of concurrency.

Order sync from Amazon to NetSuite

Note: The legacy SuiteScript (SS) connector is deprecated.

  • If you have migrated from the legacy SuiteScript (SS) connector to the integrator.io Integration App and have been live on integrator.io for more than a month, remove the additional lookup criteria to check for old the iSuiteScript (SS) connector orders to optimize the flow.
  • Set the following recommended settings for the date filter so that the flow works in the delta mode.
    • Filter Orders By: Last Modified
    • Duration in Days: empty
    • Go Live Date: empty (in case account is live for months now)
  • Be sure to check the Dashboard for any errors, you will have to resolve the errors and retry to sync the orders.
  • The throttling limit ~75 feed requests per hour and not more than 15 at a time. So if there are more requests, MWS starts throttling. You can utilize the auto-retry mechanism, however, you can retry the data only up to 5 times, post which an error message is displayed on the Dashboard. You can retry the error to sync the details correctly. For more information, see Throttling: Limits to how often you can submit requests.

Tax setup

  • Set up all tax codes/components properly in NetSuite or use the integratori.io tax configuration in the Settings > General > Tax sub-tab:
    • Add total tax against single line item on the order OR
    • Overwrite taxes with tax with Amazon tax amounts with the Assign the default tax code to all orders checkbox checked.
  • Using proper tax setup will help to reduce the variance and also reduce extra NetSuite API calls to fix the variance.
  • The Enable GST/VAT for your marketplace setting is added to allow a dynamic approach for the GST related orders.
  • If you have a static GST set up (same tax rate for all orders), in Settings > General > Tax sub-tab, check the Enable GST/VAT for your marketplace checkbox and enter the GST/VAT rate in the Enter GST/VAT rate to apply across all orders setting.
  • If you have a dynamic GST set up (tax rate changes for all the orders), check the Enable GST/VAT for your marketplace and Apply GST/VAT rate reported by Amazon checkboxes to deduct the tax from item amount and calculate the tax.
  • Check the Exclude Tax if Marketplace Tax Collection applies checkbox (Settings > General > Tax sub-tab) to avoid the tax collection if Amazon collects and remits tax (varies region to region and is decided by Amazon).

Fulfillment sync from NetSuite to Amazon

  • Check the Allow syncing NetSuite shipments with no tracking number checkbox (Settings > Fulfillment), if you don’t want the Integration App to validate the tracking number.
  • Schedule the “NetSuite Fulfillment to Amazon Shipment Add” flow to submit only 15 requests to Amazon per hour.Example: Schedule the “NetSuite Fulfillment to Amazon Shipment Add” flow twice in an hour with the batch size as 200 and page size as 50. The Integration App can manage 500 orders with these batch size and page size numbers.
  • Check the Automate shipment carrier mapping checkbox to (Settings > Fulfillment), to automatically map the shipping carriers in Amazon. Else, the mapping has to be done manually using the field mappings page.

Inventory sync from NetSuite to Amazon

  • Uncheck the Always sync inventory levels for entire catalog checkbox (Settings > Inventory) to avoid setting a large amount of data to Amazon.
  • Schedule the “NetSuite Inventory to Amazon Inventory Add/Update” and “NetSuite Kit Inventory to Amazon Inventory Add/Update” flows to submit only 15 requests to Amazon per hour.Example: Schedule the inventory flows once is 2/4 hours in the delta mode.

Item sync from NetSuite to Amazon

  • Load all the items before the holiday season, and during the season, lower the frequency of Item sync to as low as once per day. Item export is a heavy flow and takes time and processing on Amazon to perform.
  • Bulk updates or mass updates to the item records should be scheduled during non-peak hours, and preferably done in batches.

Pricing sync from NetSuite to Amazon

  • Schedule the “NetSuite Item Price to Amazon Product Price Add/Update” flow to submit only 15 requests to Amazon per hour.Note: We don’t recommend enabling this flow during the holiday season. However, as the price fluctuates during the holiday season, schedule this flow once in an hour only with the required set of mappings.

     

Amazon Transfer Order – InboundShipments add-on

  • It is recommended that you must update the inventory levels in Amazon much ahead of the sale period

Amazon FBA Inventory Adjustments add-on

  • It is recommended to use this add-on only once or twice a day.
  • Configure this add-on using the secondary connection where low priority flows are attached.

Automate order-to-cash with Celigo

eBay – NetSuite Integration App

Order sync (eBay to NetSuite)

  • Set the recommended settings for date filter setting so that flow works in the delta mode:
    • Filter Orders By: Last Modified
    • Duration in Days: empty
    • Go Live Date: empty (in case account is live for months now)
  • Map the correct fields for SKU so that the duplicate item IDs are not created for items.

Tax setup

  • Set up tax properly in NetSuite or use the integratori.io tax configuration in the Settings > General > Tax sub-tab:
    • Add total tax against single line item on the order OR
    • Overwrite taxes with tax with eBay tax amounts with the Assign the default tax code to all orders checkbox checked.
  • Using proper tax setup will help to reduce the variance and also reduce extra NetSuite API calls to fix the variance.
  • Check the Exclude Tax if Marketplace Tax Collection applies checkbox in the Settings > General section > Tax tab in order to avoid the tax collection where eBay collects and remits tax (varies region to region and is decided by eBay).

Inventory sync (NetSuite to eBay)

  • Uncheck the Sync All Inventory check box to avoid sending a large amount of data to eBay.
  • When you sync the matrix item inventory from NetSuite to eBay, set the eBay Integration App concurrency to 1. After you sync the matrix item inventory, modify the concurrency back to its original level.
    Note: 
    It is recommended to sync matrix item inventory during non-holiday season time.
  • Disable the “eBay Item Id to NetSuite Mass Update” flow, after you sync all the Item IDs to all eBay items.

Automate order-to-cash with Celigo

Magento – NetSuite Integration App

Order sync

  • Keep Magento2 instance optimized, cached, and compiled to improve the API response performance for the order import and item/inventory export.

Tax setup

  • Set up tax properly in NetSuite or use the integratori.io tax configuration in the Settings > General > Tax sub-tab:
    • Add total tax against single line item on the order
    • Overwrite taxes with tax with Magento2 tax amounts with the Assign the default tax code to all orders checkbox checked.
  • Using proper tax setup will help to reduce the variance and also reduce extra NetSuite API calls to fix the variance.

Inventory sync (NetSuite to Magento2)

  • Uncheck the Always sync inventory levels for entire catalog check box (Settings > Inventory) to avoid setting a large amount of data to Magento.

Item sync (NetSuite to Magento2)

  • Try to load all the items before the holiday season, and during the season, lower the frequency of Item export to as low as once per day. Item export is a heavy flow and takes time and processing on Magento to perform.

Automate order-to-cash with Celigo

Square – NetSuite Integration App

As the Square-NetSuite Integration App is based on a POS solution, you can sync the data normally following the Integration App functionality. Few suggestions are:

  • Schedule the “Square Order to NetSuite Cash Sale” flow with a possible higher frequency.
  • If possible, do not sync tenders.Note: Enable the “Square Tenders to NetSuite Custom Payments” flow if you have to sync refund imports of cash sales that have a gift card applied.
  • Set up the Square POS locations and be sure they are synced and selected in the Select active Square locations * setting in the Settings > General section.
  • If possible, you can leverage the customer sync and disable the “Square Customer to NetSuite Customer” flow, and add a default customer for all the cash sales.Note: You cannot sync these customers again.
  • For cash refund sync, it is recommended to run the “Square Refund to NetSuite Cash Refund” flow with a lesser frequency, once or twice in a day for the entire sale season.
  • Be sure that the concurrency for the NetSuite connection is 2 or 3, as the remaining concurrency can be utilized for other Integration Apps.

Automate order-to-cash with Celigo

Additional resources

Additional resources

If you’re interested in a complete recap of best practices to help prepare your business to handle the incoming onslaught of holiday orders, check out this Knowledge Base article. This article summarizes information from both parts of this blog series.

For broader information on preparing your operations for the holiday shopping season, read our eBook. You may prefer to watch the webinar while you’re preparing a pie or roast!

Lastly, if you find yourself stuck, you’re always welcome to ask questions about your specific implementation in our Community. If you’re brand new to Integration Apps but stumbled on this article because you need help automating your order-to-fulfillment processes before the holidays, feel free to email us at [email protected].

Automate order-to-cash with Celigo