Shopify: channel guide
About this guide
This is a ChannelEngine guide on Shopify as a channel. Here you can find information on how to create an account on Shopify, how to configure this channel on ChannelEngine, what the specific requirements are, and more.
Table of contents
Channel-specific requirements and exceptions
How to request an account
To start selling via Shopify you need to create an account on their website. ChannelEngine supports connections with the Basic, Shopify, Advanced, and Plus plans.
The costs related to using Shopify can be found on the pricing section of their website.
|Product offers (Merchant product number matching)||Multiple fulfillment locations|
|Product variations (size/color)||Draft orders|
|Product images||Partial cancelations|
|Returns/refunds (merchant and channel)|
* Although sales channels are supported, it is not possible to pick and choose where your products are and are not listed when this feature is enabled. I.e.: if you list a product on Shopify, it also becomes available on whatever marketplaces are integrated with it.
Settings and configuration
The setup of each channel on ChannelEngine follows the same flow, once you add the channel:
- Go through the Setup.
- Create a Product selection.
- Complete the Categorization.
- Set up the Mappings (content, offers, and carriers).
- Configure the Pricing (rules and currency conversion).
- Finish the Activation.
- Check the Listed products overview.
Channel-specific requirements and exceptions
To connect your Shopify store with ChannelEngine, you must add ChannelEngine as a private app in the back-end of your Shopify account.
To add ChannelEngine to Shopify:
- On your Shopify admin page, click Settings.
- In the left panel, click Apps and sales channels, click Develop app and then Create an app.
- In the Create an app dialog box, in the App name field, enter the app's name. The recommended name is 'ChannelEngine'.
- In the App developer field, enter the email address of the owner of this Shopify account.
- Update the permissions of the private app, so ChannelEngine has the required access:
- Customers - read and write
- Discounts - read and write
- Fulfillment services - read and write
- Inventory - read and write
- Order editing - read and write
- Orders - read and write
- Products - read and write
- Product listings - read and write
- Shipping- read and write
- Store content - read and write
- Click Create the app.
- Click the API credentials tab. The API credentials should be generated and visible in the API key and secret field.
Once your Shopify account is active, add the channel to your ChannelEngine environment and go to its Setup page. The following settings can then be configured:
- API key password - the Admin API access token from your Shopify back-end.
- API shop URL - your Shopify store URL. E.g.: myshop.myshopify.com.
- Shop URL - the public URL for your store. E.g.: www.myshop.com.
- Location identity on Shopify - on Shopify, go to Settings, Locations. Open the default location. You can find a number after /locations/ in the URL. This is your location identity. Add this number so ChannelEngine can update your stock and orders.
Currency - enter the currency you want to use for prices and shipping costs, using the ISO standard currency code. E.g.: AUD, EUR, USD, etc.
NB: make sure to align the currency setting with the Shopify settings. If these settings do not match, ChannelEngine cannot export the prices – causing the product offers export to fail.
- Name for option 1-3 - enter a name to replace the default.
- Additional languages - select from the list of languages in which you want to export product content (i.e.: Title, Body HTML, Option 1-3).
- Extra metafields to product export - lets you specify extra product data. These metafields can contain up to 30 characters.
- Set orders to closed after import - when enabled, ChannelEngine sets order statuses to Closed, and orders are not handled. Instead, orders are handled on Shopify.
- List products on all sales channels - if enabled, ChannelEngine publishes all your products to all sales channels.
- Notify customer of shipment/cancelation - if enabled, ChannelEngine sends shipping confirmation and order canceled notifications.
- Include shipping costs for cancelation refunds - if enabled, the grand total of the order lines is refunded. I.e.: including the shipping costs.
- Notify customer on return/refund - if enabled, ChannelEngine sends an order refund notification.
- Restock items in case of refunds - if enabled, ChannelEngine automatically restocks products in the Shopify warehouse.
- Delay orders with gifted order lines - if enabled, ChannelEngine delays importing orders to allow gift card transactions. This setting is added because gift card orders take longer to process on Shopify.
- Cancelations are handled by Shopify - if enabled, ChannelEngine lets Shopify handle all cancelations.
- Payment ID - if enabled, payment IDs are added to the order extra data for this channel.
- Enable fallback for empty billing addresses - if enabled, ChannelEngine automatically fills out empty billing address fields based on details from the customer's data. If Shopify does not have the customer's data, ChannelEngine uses their shipping address. This is useful for orders placed on a channel other than your webstore, such as a brick-and-mortar store – and ChannelEngine requires billing information to save order data in its database.
Order VAT/sales tax calculation option - the options are:
- Let ChannelEngine calculate the VAT rate, assuming the order prices include VAT/sales tax
- Use VAT/sales tax from Shopify
- Product extra data aspects - select the custom attributes to be added to the order as extra order data when the import order task is executed.
On Shopify, there are only mappings under the Content mappings tab. Make sure to map the attributes required across all product categories:
- Price - the product's sale price.
- SKU - the product's Merchant product number. To link to existing products, this attribute should be the same as the SKU field on Shopify.
- Title - the product's name.
There are also optional attributes that ChannelEngine advises you to map:
- Barcode - the product's EAN.
- Body HTML - the product's description.
- Compare at price - sets the from-to pricing and works as the product's catalog price.
- Fulfillment service - the ID of the fulfillment service associated with the variant.
- Handle - this value is automatically created from the product title.
- Inventory policy - indicates whether customers are allowed to place an order for the product variant when it is out of stock. I.e.: backorder.
- Option 1 - used to create a single variation (parent-child). The only way to create product variations on Shopify is to set up a correct grandparent-parent-child structure on ChannelEngine. Once this is set up, you must fill out the fields Option 1 and Option 2. E.g.: if you have a t-shirt in various colors and sizes, Option 1 must be connected to the field Color and Option 2 to the field Size.
- Option 2 - used if Option 1 is filled out. This option generates a double variation (grandparent-parent-child).
- Product ID - specifies the product on which to create the variant.
- Product type - the product's category.
- Requires shipping - indicates whether the variant requires shipping.
- Tags - enter a comma-separated list of tags that have been added to the product.
- Vendor - the product's brand.
- Weight - the variant's weight.
- Weight unit - the weight unit used to measure the variant. E.g.: kg.
E.g.: Body HTML (de) for German, Title (es) for Spanish, Option 1 (it) for Italian.
Shopify does not state if a product is published or not. The only visible aspects are the tasks and if their statuses on ChannelEngine. At first the status of a product is set to Created. After it is created on Shopify, it changes to Updated.
Note that when the creation of the product does not go well, Shopify only provides you with minor feedback. This feedback is shown under Reason, below the Last import from channel selection.
Add new products
To create new products in your Shopify back-end, ChannelEngine needs to perform three tasks: export the product content to Shopify; export the offers; and export product images. When all three tasks are completed, the products are shown correctly in your Shopify account. Check with your Customer Success Manager or Onboarding Specialist when these tasks are scheduled for the Shopify channel, so you know how long it takes to see your new products online.
Link to existing products
To link to existing products in your Shopify back-end, set up the correct SKU of each Shopify product in the mapping field SKU. Make sure to inform your Customer Success Manager or Onboarding Specialist before you do that – and do not activate the channel until you get the go-ahead. ChannelEngine must update an export product setting in the back-end for you.
Work with product variations on Shopify or ChannelEngine
The only way to create product variations on Shopify is to set up a correct grandparent-parent-child structure on ChannelEngine. Once this is set up, you must fill out fields Option 1 and Option 2 under Mappings. E.g.: if you have a t-shirt in various colors and sizes, Option 1 must be connected to the field Color and Option 2 to the field Size. If you have a grandparent-parent-child structure set up on ChannelEngine, it is not possible to set up the products on Shopify as standalones.
Return and refund handling
When using the Shopify integration, you have two options to set up return and refund handling:
- Shopify is leading - on Shopify you have the option to create a refund of an order. This refund becomes a return on ChannelEngine, which could be handled like a normal channel return on ChannelEngine.
- ChannelEngine is leading - when creating a return on ChannelEngine, it becomes a refund on Shopify and 'paid out' is triggered.
To see the information related to each payment you receive via Shopify, follow the steps below:
- On your Shopify channel, go to the Setup page and click Advanced settings.
- Enable the Payment ID setting.
You can then access the details of your incoming orders and see information such as the payment method and payment ID. The latter allows you to match the orders from your overview on ChannelEngine with the information received from your payment provider.
Metafields are a Shopify functionality that allows you to send additional information about your products, collections, orders, etc., that is usually not captured via the Shopify admin. This is a particularly useful feature if you are using a PIM system or a product feed, and want to send extra data or custom attributes to your Shopify store. A detailed explanation of metafields and examples of how they can be used can be found in the Shopify help center article Metafields.
Metafields can be mapped on the Setup page of your Shopify channel on ChannelEngine under Advanced settings. Select the extra data fields (a.k.a. custom fields) you want to map and click Save. ChannelEngine then creates these extra data fields as metafields on Shopify. Note that there is a maximum of 30 characters for each field.
An explanation of how to create and manage extra data fields can be found in the article ChannelEngine: custom attributes (a.k.a. custom fields/product extra data).
Order extra data items
When an order is imported to ChannelEngine, ChannelEngine also fetches extra data items related to the order itself – or to order lines. This extra data is specific to this marketplace. An explanation of each can be found below:
Order extra data
||Yes||Order number as taken from the channel order.|
||Yes||Name taken from the channel order.|
||Yes||CheckoutId from the channel order.|
||Yes||Payment gateway names from the channel order.|
||Yes||Payment IDs for transactions related to the order.|
||No||Carrier code of the shipping carrier that will fulfill the delivery of the channel order.|
||Yes||Indicates any discount applied to the shipping price against the shipping lines in the channel order.|
||Yes||Related to the tender transactions processed for a channel order.|
Order line extra data
||Yes||Related to any discount applied to the channel order.|
* Conditional fields only display if the channel provided a value.
My shipments are no longer exported to Shopify, and the 'Channel status' displays 'Error: the API client does not have the required permission(s).' What is wrong?
That error is related to the permissions Shopify needs to provide ChannelEngine with. To solve it, refer to the Setup section of this guide – and make sure to grant all required permissions. Once this is done, get in touch with ChannelEngine to 'reset' all shipments that have been stuck.
How often does each task run on Shopify?
every 30 minutes (parameter: 'full')
every 15 minutes
every 15 minutes
must be manually run
every 60 minutes
every 10 minutes
every 60 minutes
every 10 minutes
every 20 minutes
every 20 minutes
must be manually run or scheduled
Article is closed for comments.