The following prerequisites should be met before configuring and using this Accelerator.
- Create the required connector Projects in your workspace using the naming conventions shown below.
For this Connector Use this naming convention Shopify
- NetSuite customizations are bundled in a sandbox environment. You must raise a Support ticket in order for this bundle to be shared to the Customer's instance (by providing an Account ID).
Details are explained in the Steps to install Suite Bundle for NetSuite in Customer Instance.
- The internal IDs being used in the Saved Search scripts will have to be modified per the Customer's instance internal IDs. Please review this example that shows the changing of the internal ID in the saved script. The script ID used by the NetSuite-Shopify Item Fulfillment is:
- Global Variables must be initialized with the internal id of the archival folder. The folder's internal ID varies depending on the Customer’s instance. An example is shown below.
- Download the Accelerator using as explained in these Initial Setup for Accelerators and Boosters.
The custom fields should be created beforehand in NetSuite. The table below provides a list of custom fields used for this integration. Additional information on NetSuite Custom fields can be found in NetSuite documentation.
Note: When there are changes to custom field IDs, the translation Rulesets must be updated accordingly.
|Custom Field ID||Type||Data Type||Sales Order||Item Fulfilment|
|custbody_cleo_shopify_order_id||Transaction Body Field||String||TRUE||TRUE|
|custcol_cleo_item_id||Transaction Column Field||String||TRUE||TRUE|
|custbody_cleo_shopify_order_number||Transaction Body Field||String||TRUE||TRUE|
|custbody_cleo_vendor_name||Transaction Body Field||String||TRUE||TRUE|
|custbody_cleo_source_status||Transaction Body Field||String||TRUE||TRUE|
|custbody_cleo_source||Transaction Body Field||String||TRUE||TRUE|
Store name: Shopify fulfillment record should contain the corresponding store name. The custom field value is populated automatically as part of the Orders flow (field name custbody_cleo_vendor_name).
Accelerator assumes that the “SKU” on Shopify for the specific Item is the same as the “SalesOrder\SalesOrderItemList\SalesOrderItem\internalId” on the NetSuite for the specific Item. Ensure you have an SKU in Shopify that also exists in NetSuite with the same SKU name/number (item internal ID).
Accelerator assumes that the “SKU” on Shopify for the specific Item is the same as the “Item/internalId” on the NetSuite for the specific Item. Ensure you have an SKU in Shopify that also exists in NetSuite with the same SKU name/number (item internal id). If you don't already have one, use the steps as follows:If you don't already have one, follow these steps:
- From NetSuite, go to Lists > Accounting > Items > New > Inventory Item and create an item record for the same item. Item internal ID should be the same as the Shopify Item SKU ID.
- From your Shopify account, go to All products> Add product and create a new product. Provide a SKU ID; it should match the Product Internal ID that is set in NetSuite (per previous step).
- To find a SKU for a product in Shopify, open the product in the All products section and update the SKU option (shown here).
The Inventory Sync Flow consumes inventory data from NetSuite in the form of a CSV file. Inventory data should be updated in the same file periodically. The file name and internal ID should stay constant for every inventory sync run. The CSV file should be uploaded to the ‘File Cabinet’ in any folder. Login to Netsuite>Documents>File Cabinet and select Addfile. Note: the InternalId of the uploaded file and the internal id of the file should be configured in Global Variables. More details are provided in the steps for Configuring and Testing the Inventory Sync Flow.
- Accelerator assumes that both Kit items and Item Groups on Netsuite are modeled as ‘simple items’ on Shopify.
Cross-reference table "REFTABLES".shopify_location_id_store_id_table should be configured with appropriate records before running the inventory sync flow.
"REFTABLES".shopify_location_id_store_id_table is automatically populated with Shopify-level location details such as shopify_location_id, shopify_location_name, and shopify_store_name.
The destination side details should be manually updated by the end user (eg. Netsuite Location id corresponds to destination_location_id and NetSuite Location name corresponds to destination_location_name). In order to find the destination location internal Id and destination location Name, please log in to the NetSuite account, and navigate to Setup> Company>Locations.
Cross-reference table "REFTABLES".shopify_product_table should be configured with appropriate records before running the inventory sync flow.
- To find the internal id on NetSuite, refer to the applicable NetSuite Online Help topic.
- Subsidiary: Customer entity should be tied to a ‘Subsidiary’. In order to create a subsidiary Netsuite account, Go to Setup > Company > Subsidiaries > New. For more details on subsidiary creation please refer to the applicable NetSuite Online Help topic. Open the subsidiary settings: Subsidiary Settings: Customer Subsidiary name. https://1952055.app.netsuite.com/app/common/subsidiarymanagement/subsidiarysettings.nl?id=1
The Id mentioned in the url is the internal id of the subsidiary; the same value must be configured in the Ruleset mentioned below.
- The specific subsidiary internal id should be hardcoded in the Ruleset: GenerateCustomerShopifyOrderRS.