The Shopify Markets feature acts as a global e-commerce hub where you no longer need to manage multiple stores in different countries. It is a cross-border management tool that helps you identify, set up, launch, optimize, and manage your international markets - all from a single store. The feature makes it easier for merchants to sell and list products in local currencies with price adjustments and convert product prices to local currencies feasibility.
The Shopify Markets functionality is available with a separate edition of the integration app. This separate edition of the integration app includes all the premium features of the Shopify - NetSuite integration app. This edition of the integration app would make it easier for merchants to record the amounts customers paid in their books, rather than prices stored in the back end of Shopify.
The integration app includes all the premium edition features along with the following three new settings that support Shopify Markets:
- NetSuite item to track Shopify order duties as a line item
- Sync records in local currency
- Sync GST/VAT for the customer country
- Sync price lists per market from NetSuite to Shopify
- Sync HS code and country of origin from NetSuite to Shopify
- Added scopes to support syncing of price lists per market
Limitations:
- The order flow does not support setting different default tax codes based on country. However, you can hardcode the HST or PST tax values to zero and club them under GST for collective reporting.
- The billing flow does not support setting different default tax codes based on the country. Consequently, the taxes GST, HST, and PST for the Canadian markets sync incorrectly, and partial taxes are shown under variance.
Track order duties in NetSuite
The NetSuite item to track Shopify order duties as a line item setting allows you to choose a NetSuite item to track duties as a separate line item on the NetSuite sales order.
Note: In NetSuite, be sure to create the item type as non-inventory, payment, or other charge.
To track Shopify order duties in NetSuite:
- In the Shopify Markets edition of the Shopify-NetSuite integration app, go to Settings > Order > Order tab and select the NetSuite item to track duties as a separate line item.
Limitation: This edition doesn’t support syncing the refund of duties to Shopify.
Sync records in local currency to NetSuite
The Sync records in local currency setting allows you to sync the records (order, billing, and refund) in presentment currency or Shopify local currency so that you can manage your books according to your accounting needs. The local, or presentment, the currency is what the customer sees at the Shopify store. This currency is also used to pay at checkout.
This setting impacts the following flows:
- Shopify customer to NetSuite customer (add/update)
- Shopify order to NetSuite cash sale (add)
- Shopify order to NetSuite sales order (add)
- Shopify order to NetSuite order (cash sale or sales order)
- Shopify transaction to NetSuite customer deposit (add)
- Shopify order transaction to NetSuite custom transaction record (add)
- Shopify refund to NetSuite refund (add)
- NetSuite refund to Shopify refund (add)
To sync Shopify records in local currency:
- In the Settings > Order > Customer tab, check the Multi-currency customers enabled in NetSuite checkbox, in the integration app.
-
In the Shopify Markets edition of the Shopify-NetSuite integration app, go to Settings > General section and check the Sync records in local currency checkbox.
-
Set the currency mapping in the Shopify customer to NetSuite customer (add or update) flow as Currency::Primary Currency (InternalId), as shown in the following screenshot.
-
Set the currency mapping in the order flows. It is recommended to configure the mapping as Currency::Currency (InternalId), as shown in the following screenshot
Once the above settings are configured, you can run all the flows to sync the Shopify records in local currency.
Sync GST/VAT for the customer country to NetSuite
The Sync GST/VAT for the customer country setting allows you to manage taxes, and determine whether they are included or excluded from the order total based on the customer’s country.
To sync GST/VAT for the customer country to NetSuite:
- In the Shopify Markets edition of the Shopify-NetSuite integration app, go to the Settings > Order > Tax tab and check the Sync GST/VAT for the customer country checkbox.
In Shopify, there are two tax settings:
- All prices include tax
- Include or exclude tax based on your customer’s country
The following scenarios are explained based on the tax setting selection in Shopify, to help you understand and decide when to check/uncheck the new setting in the integration app:
- Tax-inclusive or exclusive: In the Shopify account, if the "Include or exclude tax based on your customer's country" checkbox is checked, your store will have tax-inclusive and tax-exclusive orders based on customer country. Check the Sync GST/VAT for the customer country checkbox to sync the GST/VAT for the customer country, uncheck the Deduct GST/VAT from the order total and Add GST/VAT to refund total checkboxes as shown in the following screenshot.
-
Tax-inclusive: In the Shopify account, if the “All prices include tax” checkbox is checked, and your store will have tax-inclusive orders. Check the Deduct GST/VAT from the order total and Add GST/VAT to refund total checkboxes as shown in the following screenshot.
Note: Checking the Sync GST/VAT for the customer country checkbox can sync the tax-inclusive orders. You can uncheck the Deduct GST/VAT from the order total and Add GST/VAT to refund total checkboxes.
Limitations: In Shopify markets, if an order is imported with the following settings:
- Add total tax against a single line item on the order is checked
- Sync GST/VAT for customer country is checked
- Add GST/VAT to refund total is unchecked
Scenario 1: The integration app will not be able to add the shipping tax amount to the shipping total because the shipping tax is imported as a separate line item and the tax rate on the order is zero stored internally is zero.
Scenario 2: In addition to the above scenario, if you have checked the Add GST/VAT to refund total and the Add GST/VAT to item price (in the product tab) checkboxes. The integration app will not be able to add the correct tax amount to the total shipping amount all the time as the tax on each item may vary.
Sync price lists per market from NetSuite to Shopify
The Sync price lists per market from NetSuite to Shopify setting allows you to sync price lists per market from NetSuite to Shopify.
To configure the setting, go to the Settings > Product tab, check the Sync price lists per market from NetSuite to Shopify box, and choose any of these Shopify markets (Regions, B2B, Retail, POS locations, and Company locations), NetSuite currency, and NetSuite price level fields. The compare-at-price field is optional. Once you make the selections, save the settings, and run the NetSuite item to Shopify product (add or update) and NetSuite matrix item to Shopify product (add or update) flows to sync price lists from NetSuite to Shopify. For more information about price lists per market in Shopify, see Shopify Markets pricing.
Notes:
- This setting doesn’t support deleting a price list or a partial set of prices on a price list.
- The primary market will not appear in the Markets dropdown. This means the default price synced will apply to the primary or default market.
Important: When you create a new market in Shopify and click the Refresh button under the setting Sync price lists per market from NetSuite to Shopify, the new market will appear in the dropdown list. However, the existing or previously saved market settings will disappear from the UI. You will need to re-configure the values for these previously saved markets as well when configuring a new market.
Sync HS code and country of origin from NetSuite to Shopify
If you ship internationally, each of your products must include an HS code. An HS code is an international trade code, usually six digits long, that describes a product. Adding HS codes to your products helps avoid non-compliance penalties, border delays, product seizures, or import denials. For more details, see Adding HS codes to your products.
The Shopify Markets edition of the Shopify – NetSuite integration app can sync the following from NetSuite to Shopify:
- A base HS code (harmonized_system_code) and country of origin (country_code_of_origin): these populate Shopify's primary customs fields on the inventory item.
- Additional Country HS codes (country_harmonized_system_codes): one entry per destination country, used when an item needs a different HS code in a specific market (for example, a different code for GB versus US shipments).
For background, see Harmonized system in Shopify.
Enable the sync
In the Shopify Markets edition of the Shopify – NetSuite integration app, go to Settings > Product and check the Sync HS code and country of origin from NetSuite to Shopify box.
Once you save the setting, a new page processor, Add/update HS code and country of origin to Shopify products, is added to both the NetSuite item to Shopify product (add or update) and NetSuite matrix item to Shopify product (add or update) flows.
Set up the NetSuite item record
Prerequisite: The display name of the items in NetSuite must match the SKU in Shopify; otherwise, the HS code values will not sync.
-
Create custom item fields in NetSuite for the base HS code and country of origin.
- In NetSuite, go to Customization > Lists, Records, & Fields > Item Fields > New.
- Create a custom field for HS Code. Set Type to Free-Form Text.
- The integration app reads Country/Region of origin from the standard Manufacturer Country field, so most customers do not need a custom field here. Verify which one your account uses before creating a new one.
- Apply each custom field to the item subtypes you want to sync (Inventory Item, Matrix Item, etc.).
-
Populate the values on each item record.
- Open the item in NetSuite.
- Enter the base HS code in the custom HS Code field.
- Enter the country of origin (two-letter ISO code, e.g., CA, US, GB) in the Manufacturer Country field.
Add the fields to the Celigo Shopify Item Export saved search
- Open the Celigo Shopify Item Export saved search in NetSuite (Lists > Searches > Saved Searches).
- On the Results tab, add the new custom field as a column.
- In the Custom Label for the HS Code column, enter HS code (case-sensitive; the integration app matches on this label).
Add additional HS codes for different countries
When a product needs a different HS code for a different destination market (for example, one code for shipments to GB and another for shipments to US), set this up as one separate NetSuite custom field per country. The integration app will assemble them into Shopify's country_harmonized_system_codes array on its own; you do not put multiple codes into a single field.
Important: Do not combine multiple Country HS codes into a single field as JSON. Initial testing of that approach showed only the base code synced, and the additional country codes did not appear in Shopify. Use one free-form text field per country instead.
Step 1: Create a separate custom item field for each country's HS code
For each destination country you want an additional HS code for, create its own custom item field in NetSuite:
- Type: Free-Form Text
- Apply to the same item subtypes as the base HS Code field
- Name each field clearly per country (for example, "GB HS Code", "US HS Code")
Step 2: Populate each country's HS code on the item record
On each item, fill in the appropriate per-country HS code values. Leave any country field blank that doesn't apply to that item.
Step 3: Add each country's field as its own column on the saved search
In the Celigo Shopify Item Export saved search, on the Results tab:
- Add each country's HS code custom field as a separate column.
- For each Country HS code column, set the Custom Label to a value that ends with the case-sensitive suffix Country HS code. The integration app matches on this suffix to know which columns to assemble into the country_harmonized_system_codes array.
Step 4: Verify the Export preview
Before running the flow, preview the Export step. The per-country values should appear under country_harmonized_system_codes in the preview JSON. If the array is empty, the saved-search column labels are most likely not using the exact case-sensitive Country HS code suffix.
Step 5: Confirm mapping is left at the defaults
In the Add/update HS code and country of origin to Shopify products page processor, leave the mapping at Standard with no Data Type, Source, or Destination field selected. The page processor's built-in logic builds the array from the suffix-matched saved-search columns; selecting fields manually will override that behavior and prevent additional codes from syncing.
Before and after
The following snippets show the Shopify inventory-item JSON before and after additional Country HS codes sync correctly.
Before (only the base CA code synced; country_harmonized_system_codes is empty):
{
"inventory_item": {
"country_code_of_origin": "CA",
"harmonized_system_code": "123456",
"country_harmonized_system_codes": []
}
}After (a GB-specific code synced alongside the base code):
{
"inventory_item": {
"country_code_of_origin": "CA",
"harmonized_system_code": "123456",
"country_harmonized_system_codes": [
{ "country_code": "GB", "harmonized_system_code": "789012" }
]
}
}Verify in Shopify
After the flow runs successfully:
- From your Shopify admin, go to Products.
- Click the product whose codes you want to confirm.
- In the Shipping section, click Add customs information.
- Confirm the base HS code, country of origin, and any additional country HS codes appear as expected. Additional country HS codes are visible under the ⋯ (three-dot) menu next to the customs information row.
-
Added scopes to support syncing of price lists per market
The scopes "read_markets" and "write_markets" are added to the Connections for accessing Shopify markets. These scopes are required for the integration app to fetch Shopify markets-related information. The write markets permission is needed for updating price lists.
IMPORTANT: If you are an existing user who has already installed the integration app, you must re-authorize your connection to add these scopes to the Connections, or the connection will throw an error.
NOTE: These scopes are automatically selected for new installations of all editions of the integration app.
FAQs
Q: As a Shopify merchant, I want to map Shopify's 'Cost per item' field to NetSuite's 'averagecost' field to track the cost of goods sold. Is there a way to map this field without needing a custom flow? I manage 1000 to 1500 SKUs yearly, so manual updates via CSV would be inefficient.
A: Yes, this functionality can be supported by Shopify Markets Edition. You can map the 'Cost per item' field without needing a custom flow by following these steps:
- Navigate to Settings > Product tab, and select the checkbox for Sync HS code and country of origin from NetSuite to Shopify.
-
Once you save the setting, a new page processor Add/update HS code and country of origin to Shopify products is added to both the flows NetSuite item to Shopify product (add or update) and NetSuite matrix item to Shopify product (add or update).
- In this new page processor, map the inventory_item.cost field to the appropriate NetSuite field, such as 'averagecost'. For testing purposes, the NetSuite side of the mapping can be hardcoded.
- Run the product flow, and it will successfully sync the cost per item to Shopify as expected.
This approach eliminates the need for manual CSV uploads or a custom flow, making it more efficient for managing large volumes of SKUs.
- Navigate to Settings > Product tab, and select the checkbox for Sync HS code and country of origin from NetSuite to Shopify.