The project is designed to retrieve the Shopify orders at a specific interval and create the corresponding Standard Sales Order in NetSuite. Once the Orders/Items are fulfilled on the NetSuite, the corresponding Item Fulfillments are retrieved from the NetSuite and updated as a Shipment to the Shopify Order.
Supported integration flows
Features
- Pre-built Integration Flows: Integration flows in CIC are provided to retrieve orders from Shopify and create the corresponding Sales Order in NetSuite. If the customer does not already exist, the customer is created in NetSuite before creating the Sales Order. If the buyer updates the order in Shopify, the Sales Order in NetSuite is updated respectively. If the buyer cancels the Shopify order before fulfillment, the Sales Order in NetSuite is updated to be closed. Once the Order is fulfilled, the integration flow automatically retrieves the Item Fulfillment from NetSuite and updates the Order with the shipment details. The Inventory sync flow updates an item’s on-hand quantity with respect to the location from NetSuite to the corresponding item in Shopify.
- Throttling: If the API requests are throttled on Shopify, the Accelerator handles the throttling without any manual intervention. The process execution waits as per the throttling restore rates from the Shopify API limits.
- No order loss: The Accelerator is designed in such a way that there is no order that is missed while retrieving from Shopify. The Accelerator also ensures that duplicate orders are not created on the NetSuite side.
- Error Handling and Ticket Creation: Accelerator ensures all the processing failures are logged as a ticket and marked as Issues in the Cockpit
- Integration Design Specification: This is a default mapping template for a Transaction between source and target ecosystem entities. The Integration Design Specification describes the transaction type, Data Flow direction, source data, target data, and relevant application version(s). It also includes applicable B2B/API elements and mapping rules. The template helps to explain the business rules that are applied while creating the order on the NetSuite from the Shopify Order. The template helps in documenting any changes to the template as per your requirement.
- Out-of-the-box Cockpit visibility: Accelerator is already enabled with the resources necessary to display data in several Cockpit monitoring pages.
- The Message Details page displays the life cycle of an Amazon Order along with the shipment.
Example of Inventory Doctype. - Accelerators are also enabled to populate out-of-the-box charts to monitor the marketplace-related transactions. (See below).
- Dashboard > Chart transactions screenshot with details.
- Marketplace Order - shows total amount, orders count
- Cancelled Shopify Order - shows total count
- Shopify Order Fulfillment - shows total count
- Shopify Inventory Activity - shows inventory sync records count i.e. number of times a product count has been synced between Netsuite and Shopify
- Marketplace Order - shows total amount, orders count
- Customer Creation: If the customer does not exist in NetSuite, then the Accelerator creates the customer in real-time based on customer e-mail. Details about the Shopify customer field tags are mentioned in the Shopify_NetSuite Accelerator Logical Mapping Spec Template located in the docs folder. If the customer (email/name) is not specified in the order request, then a dummy email and name is defaulted on the sales order. Details of these dummy customer details can be configured in ShopifyNetsuiteGV.globalVar.
- The Message Details page displays the life cycle of an Amazon Order along with the shipment.
Prerequisites (Connector Projects, Custom fields, SKU)
Create required connector Projects in your workspace. Use the naming conventions shown here.
Note: this must be done before running the wizard setup steps.
Connector Type | Project Name |
---|---|
Shopify | com.cleo.cic.connector.shopify |
NetSuite | com.cleo.cic.connector.netsuite |
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 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:
- In 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 Shopify item SKU id.
- In your Shopify account, Go to All products> Add product and create a new product. Provide an SKU id. It should match the product internal id set in NetSuite in the previous step
- To find a SKU for a product in Shopify, open the product in section All products and update the SKU option as shown here:
- 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 ‘Add file’. Note the ‘InternalId’ of the uploaded file and the internal id of the file should be configured in global variables. More details are mentioned in the configuration section for ‘Inventory sync’ below.
- Accelerator assumes that Kit items on Netsuite are modelled as ‘simple items’ on Shopify.
- Accelerator assumes that Item Groups on Netsuite are modelled 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 like shopify_location_id, shopify_location_name, 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 login to Netsuite account. Then 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 https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2904231.html
- 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 subsidiary creation please refer to https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N272471.html. 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.
What’s not supported
- Price feeds/updates are not included.
- Product sync between Netsuite and Shopify is not supported.
- It is assumed that any Shopify store has a minimum of 1 product SKU configured.
- The order update includes adjusting item quantities, add/remove items, updating notes and shipping addresses. Currently, contact information update ( email & phone number ) is not supported.
- Tracking number updates to fulfillment record are not supported in current phase 1. If an update is required for number tracking, it should be manually updated in Netsuite in the ‘Package tracking number’ section below.
- Integration creations for Marketplaces in more than one region are not done automatically. If there are multiple Marketplaces in one region, the Accelerators are built to handle the Order and Shipments integrations automatically.
- Retrieving the order from AMP for the specific order number is not supported.
- Inventory and Price feeds/updates are not included.
- There is no validation in place to verify if the Item Price is not the same as the Base Price for the Inventory Item in the NetSuite. The Rate in NetSuite is mapped with Unit Price from the Amazon Order. Rate = Amount / QuantityOrdered
- Batching of the Feeds for the OrderFulfillment is not supported.
How to Add a New Flow
If you find any flow that is not covered as part of the Accelerator, you can create a new extended Project to add the specific flows as per your requirements.
For example, if Invoice flow needs to be added, follow the steps mentioned below.
- Create a new Project: com.cleo._customer_.booster.netsuite.extended.
- Add a Booster Project: com.cleo._customer_.booster.netsuite.
2a: Set this Project as a dependency (from the Manifest.MF file) to the com.cleo._customer_.booster.netsuite.extended Project created above. - In the project com.cleo._customer_.booster.netsuite.extended, create the following package: com.cleo._customer_.booster.netsuite.extended.invoice.
3a: Create your BP Schedulers and Rulesets (This includes Launcher, DARS, Search Request, and Search Response). - Create a new Project: com.cleo._customer_.booster.shopify.extended.
4a: Add Booster Project com.cleo._customer_.booster.shopify as a dependency (from Manifest.MF file) to the com.cleo._customer_.booster.shopify.extended Project. - In the com.cleo._customer_.booster.shopify.extended Project, create a new package: com.cleo._customer_.booster.shopify.extended.invoice.
- Create a new Project: com.cleo._customer_.shopifynetsuite.extended.
6a: Add the Booster Project com.cleo._customer_.booster.shopifynetsuite as a dependency (from Manifest.MF file) of com.cleo._customer_.booster.shopifynetsuite.extended Project. - In the com.cleo._customer_.shopifynetsuite.extended Project, create a new package: com.cleo._customer_.shopifynetsuite.extended.inventory.
7a: Create a Route Business Process and configure it as required.
7b: Create the Transformation Ruleset per your business requirements. - Deploy all the Projects that have changed.
- Run and test.
Please contact Cleo Support for assistance on the Project structure.
Project Structure
Detailed Accelerator documentation on the project structure and object-level details is available in the Project: com.cleo._customer_.ampnetsuite.docs. (Workflow and Project Details for AMP NetSuite Accelerator.pdf)
How to Configure the Cleo-Supplied Staging Database
Take these steps to configure the Cleo-provided staging database.
- Deploy the project - com.cleo.cic.util
- Create the required table by running this Business Process - com.cleo.cic.util.processes.CreateStagingDataTableBPS.
- To verify if the setup is complete, refer to the auditor logs. The auditor logs display the specific step details. If there are issues (driver or connection issues, for example), they will appear in the logs; in this case you must take corrective action and run the Business Process again.
Comments
0 comments
Please sign in to leave a comment.