Shopify: merchant connector guide
About this guide
This guide describes ChannelEngine's Shopify merchant connector, how to install it, how to configure it, and more.
Table of contents
To connect your Shopify webshop to ChannelEngine, you must connect your Shopify account as a private app to ChannelEngine.
This guide is about Shopify as a merchant connector, which acts as the source of your product data and handles all orders. If you need information on Shopify as a marketplace, check out the Shopify: channel guide article.
Note that Shopify is limited in terms of product data. If you want to create or update content on marketplaces, you need an additional source of product information - such as an additional data feed.
|Product data||Orders fulfilled by the marketplace|
|Cancelations (merchant)||Multiple stock locations*|
* ChannelEngine does import the level of all known stock locations. However, incoming orders only deduct stock from the default warehouse. Check out the FAQs section for further details.
- Active account on Shopify
- Active merchant account on ChannelEngine
To connect your Shopify store with ChannelEngine, you must add ChannelEngine as a custom app in the back-end of your Shopify account. To do so, follow the steps below.
- On Shopify, go to Apps, Develop apps, and click Create an app.
- In the Create an app dialog box, enter an App name (e.g.: ChannelEngine). In the App developer field, enter the email address of the owner of this Shopify account.
- On the Overview tab, click Configure Admin API scopes, and set the following access scopes:
- Customers - read and write
- Assigned fulfillment orders - read and write
- Products - read and write
- Content - read
- Orders - read and write
- Fulfillments - read and write
- Discounts - read and write
- Inventory - read and write
- Merchant managed fulfillment orders - read and write
- Order edits - read and write
- Shipping - read and write
- In the Webhook subscriptions section, in the Event version field, leave the Webhook API version on the latest version. ChannelEngine does not require access to the storefront data.
- Click Save and go to the API credentials tab. Under Access token, click Install app.
- On the same API credentials tab, the new API credentials are generated and made visible. You can now add the API key and Shop URL to ChannelEngine to establish the connection.
Add the integration to your ChannelEngine account, and fill in the previously acquired credentials.
- If it has not been done yet, contact your customer onboarding specialist to add the Shopify connector for you.
- Go to Settings, Merchant plugins or select the Shopify connector from your channel dashboard.
- Go to the Setup page of the Shopify connector and add the credentials and settings needed for the connection to work:
- API access token - the password token from the Shopify private app page, not the API key token.
- API shop URL - the base URL of your Shopify store. E.g.: channelengine.myshopify.com.
- Shop URL - the base domain of your store, if you use a custom domain. E.g.: shop.channelengine.com.
- Color alias on Shopify - the name of your color attribute on Shopify. By default this is Color, however, it is possible to change it to a different, localized value. To set the color correctly on ChannelEngine's end, the correct attribute name is needed.
- Size alias on Shopify - the name of your size attribute on Shopify. By default this is Size, however, it is possible to change this to a different, localized value. To set the size correctly on ChannelEngine's end, the correct attribute name is needed.
- Material alias on Shopify - the name of your material attribute on Shopify. By default this is Material, however, it is possible to change it to a different, localized value. To set the material correctly on ChannelEngine's end, the correct attribute name is needed.
- Page size - the maximum number of products returned per page. Shopify has a default of 50 items per page, and ChannelEngine uses a default of 250. It is recommended to leave this setting untouched.
- Name for shipment costs on order (optional) - the name of your shipment cost attribute on Shopify. By default this is Shipment costs, however, it is possible to change it to a different, localized value. To set the shipment costs correctly on ChannelEngine's end, the correct attribute name is needed.
- Code for shipment costs on order (optional) - the code to set on shipping lines for orders exported to Shopify. If left empty, the name is used in lowercase, with spaces replaced by dashes.
- A single payment gateway name for channel [CHANNELNAME] (optional) - the name of the payment gateway for a specific channel. This is only needed if you track specific payments per channel in underlying systems.
- If all settings have a checkmark, you can switch on Activate synchronization for Shopify. This triggers an attempt to make a test API call to your Shopify environment. If it returns an error, instead of a green toggle, the API access token and/or API shop URL are invalid. Make sure to double-check these settings and try again. If the problem persists, contact ChannelEngine's Support team.
- If the connector is successfully activated, tasks are automatically scheduled to import products and shipments from Shopify - and export orders to Shopify. You can check the latest executed tasks and their next schedule in the Dashboard section of the connector settings.
New orders from ChannelEngine appear in the overview under Shopify, Orders.
Shopify requires phone numbers on orders to be in the E.164 international standard, including the country code prefix. Most marketplaces, however, allow phone numbers in any format.
The E.164 general format must contain only digits, formatted in the following way
- Country code (1 to 3 digits) - e.g.: 1 (United States), 55 (Brazil), 353 (Ireland).
- Subscriber number (max. 12 digits) - e.g.: 55512345618
Why is the stock not updated automatically when orders are exported to Shopify?
By default, Shopify does not subtract or add stock on orders, shipments, or cancelations. This has to be done manually. However, ChannelEngine does offer the option to automatically update the stock when fetching a shipment for products. To find out how to enable this option, check out the Shopify: stock management article.
Why is the stock on ChannelEngine the sum of my stock in each of my locations?
If you have assigned inventory to more than one location on Shopify, it pushes the sum of the stock quantity in each location to ChannelEngine - which in turn displays that value as your current stock. This is done by default, and it is not possible to disable it. E.g.: if inventory location A has a stock quantity of 2, and inventory location B has a stock quantity of 1, the stock shown on ChannelEngine is 3.
Why do you not have a public app?
One of Shopify's requirements to list a public app on their app store is that all users who want to use the app must be able to immediately create an account for that service.
To avoid a surplus of unused accounts and low-quality integrations, new accounts can only be created by ChannelEngine. This means that all integrations can be made in consultation with ChannelEngine, ensuring that our users are properly guided and benefit from high-quality, tested integrations.
This means that ChannelEngine is unable to list the ChannelEngine connector on the public Shopify app store. You can connect your Shopify webstore with ChannelEngine by adding the Shopify connector to ChannelEngine, and ChannelEngine as a custom app in the back end of your Shopify store. To learn how to do this, check out the Shopify: merchant connector guide.
What ID is used for the Merchant product number?
When you first connect your Shopify plugin to ChannelEngine, you may notice that the unique product identifier in ChannelEngine (MerchantProductNo) is not an SKU. Instead, the Merchant product number is taken from Shopify's own unique product identifier. This is because Shopify product IDs are required when performing API calls to and from Shopify. Setting the relationship between individual product variants (children and parent relationships) is all based on these IDs.
Most Shopify users use an alternative system to enrich product information and add new attributes. To include additional product information via a product feed, the original MerchantProductNo in ChannelEngine (in this case, the Shopify product ID) is used to connect the data between the external feed and the ChannelEngine database. You need to extract this information from Shopify by creating an export that contains all your Shopify products alongside their associated IDs.
How can I export Shopify product IDs?
Shopify has an export option to generate a CSV file containing all of your Shopify products (Products page, Export), however, it does not include Shopify IDs. Therefore, it is necessary to export your information via one of the alternative methods listed below:
Use a (paid) Shopify plugin
Use the Shopify app store to find a suitable plugin built for the purpose of exporting product data alongside Shopify IDs, such as this one.
Build your own implementation of the Shopify API
If you have developer resources or sufficient technical knowledge, you can perform a simple information fetch from the Shopify API. You can use the following API call (where the number of pages and calls is based on your total amount of products)
Use a custom channel in ChannelEngine
You can create a custom channel in ChannelEngine that includes all (Shopify) products. These will automatically contain the Shopify ID (as the MerchantProductNo) and the SKU (VendorProductNo). This option is explained below in more detail.
Example: using Google Sheets to enrich Shopify content
- Create a custom channel and include all (Shopify) products.
- Once a feed has been generated, download the CSV file. It can take up to one hour after enabling the channel for the feed to be generated.
Open the export file and copy-paste the columns you want to include in your feed to a Google Sheets file. Alternatively, open Google Sheets, click File, Import, Upload, and select the downloaded export file from the file location on your computer.
- You can add columns containing as much product information and attributes as necessary to the Google spreadsheet. Note: you must keep the column MerchantProductNo.
- When you have added your product information, publish the file to the web, choose the option to make the file public, and export it as a CSV file. You can find more information about exporting Google Sheets files as product feeds in the following article: ChannelEngine: create a product feed using Google Sheets.
- Use the URL generated from publishing the Sheets file to import your product information to your custom channel (see ChannelEngine: product feeds).