NetSuite > Shopify - catalogs & pricing
Introduction
This flow syncs new/updated catalogs and pricing from NetSuite to Shopify.
To start, we prepare SKUs and variant IDs to support catalog creation. Catalogs are then retrieved from NetSuite via a custom field named custitemshopify_catalog. Catalogs are pulled if this field is not empty and at least one price set.
Having searched Shopify catalogs, a script determines whether new or updated catalogs are needed. Processing then continues down one of two branches:
New catalogs. Creates the catalog, followed by price lists and publications; then new catalogues are updated with price lists and products.
Update catalogs. Updates price lists and products.
Catalog syncing is highly custom - every business has different product data structures, matching rules, and business logic. For example, some businesses match on SKU, others on UPC code, or custom fields. This flow provides base functionality; however, updates may be required to meet your own business needs.
Process flow snapshot
Limitations
Catalog creation
In NetSuite, catalogs are not available out of the box. This flow is designed to create and update catalogs - it does not add catalogs to companies.
Shopify GraphQL error handling
There is a known limitation with error handling for Shopify GraphQL. Please refer to the Error handling for Shopify GraphQL section for more information and a suggested approach that you may wish to adopt in your flows.
Assumptions
Products must be synced in both systems (see Shopify > NetSuite - create & update products).
A custom price level must be set in NetSuite (see Installation ➤ Stage 2: NetSuite prerequisites).
A custom field for catalog name must be set in NetSuite (see Installation ➤ Stage 2: NetSuite prerequisites).
This flow assumes that SKUs are stored in NetSuite's
upccodefield. If you use a different field to store this value, any connector queries, mappings and scripts referencing theupccodefield must be updated. Please see the Customisation ➤ process flow shapes section for details.
Customisation
To ensure that this process flow runs as required, some customisation options are available. These are documented in the following sections:
Flow variables
This process flow does not use flow variables.
Process flow shapes
This process flow includes some shapes that can be configured with your own settings. Please see guidelines in the table below.
Shape settings determine the outcome of process flows. Do not change shape settings unless they are listed below.
Trigger
This process flow is designed to be run manually.
Notify
This flow is designed in a try/catch structure, so notifications are generated if any part of the flow fails. To achieve this, the catch route includes a notify shape, which must be configured for your own notification preferences.
Alert level: Defaults to error but can be changed if needed
Channel: Defaults to email + log but can be changed if needed
Email Limit: Defaults to 5 but can be changed if needed
Notification Group: Replace the notify placeholder which your required notification group.
Message: If required, you can change the placeholder message.
For more information, please refer to our Notify shape and Notification groups pages.
Connector (NetSuite)
If you did not add or select a NetSuite instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required NetSuite instance.
Source endpoint : Set to POST suiteQL
Query: SuiteQL compares SKUs to a value in NetSuite. This NetSuite connector is configured with a query that expects the comparison value in upccode. If you use a different field, please update the query accordingly.
Connector (Shopify)
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Get variant IDs from SKU
Connector (Shopify)
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Search Shopify catalogs
Variables : Leave the Catalog Name variable as it defaults.
Connector (Shopify)
Route: New catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Create new catalog
Variables : Leave the Catalog title variable as it defaults.
Connector (Shopify)
Route: New catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Create a price list after catalog creation
Variables : Leave the Catalog title and Catalog ID variables as the defaults.
Connector (Shopify)
Route: New catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Create publication after pricelist
Variables : Leave the Catalog ID variable as it defaults.
Connector (Shopify)
Route: New catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Update pricelist catalog
Variables : Leave the Price List ID variable as it defaults.
Connector (Shopify)
Route: New catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Update products on catalog
Connector (Shopify)
Route: Update catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Update pricelist catalog
Variables : Leave the Price List ID variable as it defaults.
Connector (Shopify)
Route: Update catalogs
If you did not add or select a Shopify instance during the blueprint installation process, the following settings must be configured:
Source instance : Set to your required Shopify instance.
Source endpoint : Set to POST Update products on catalog
Reference
Reference information for this process flow is documented in the following sections:
Scripts in this process flow
Generate graphql string to search SKUs
Pulls Shopify IDs as strings for searching.
Add shopify details and group parent and child
Adds variant details to the NetSuite results for new/update catalog processing.
Determine if a new or update catalog
Determine if a new or update catalog is needed and creates arrays for new/update catalogs processing.
Merge catalog and price list ids and output products
Creates a large array which is subsequently split by flow control.
Cross-reference lookups in this process flow
There are no cross-reference lookups to note for this flow.
Last updated
Was this helpful?
