Shopify
TRADElube writes the catalogue into your Shopify shop: collections, images, products, prices and stock. Orders come back the other way. In the channel type selection the channel sits in the group Onlineshops and is called Shopify there.
Signing in works differently from a shop you host yourself. You enter no password but create an app in Shopify and grant it access to your shop. That is the one point where setting this channel up takes more steps than usual. Everything else is shorter, because Shopify keeps fewer lists that have to be mapped.
Prerequisites
| What | Where it comes from |
|---|---|
| A Shopify shop | Its name ends in .myshopify.com and belongs in the field Shop without https://. Any address that merely forwards is the wrong one here: the domain your customers shop under, an alias domain, and a former .myshopify.com address after a rename |
| An app for your shop | Depending on its kind it yields either Client Id and Client Secret or an access token, see below |
| A Shopify account allowed to create apps and grant them access | A staff account without that right gets as far as the sign-in page and no further |
Such an app is not created in the familiar shop administration but in Shopify's developer area. The app is an entry recording two things: who may access, and what. The second is the list of rights, and it has to cover the areas the channel works in: products including collections, files for the images, stock and locations, orders including fulfillment, customers.
Where a right is missing, it is not the setup that fails but, later, the task needing it. Missing the right to files, for instance, every task runs except Media Upload.
Setting up the connection
- Create the app in Shopify's developer area, give it the rights named above and publish a version. Only a published version applies.
- In the Login Details section enter the shop's name without
https://in the field Shop, plus the app's Client Id and Client Secret, and save. - Install the app in the shop. That happens at Shopify through the app's installation link, and it comes before the next step.
- Request Consent takes you to Shopify, where you confirm the access.
- Back in TRADElube the line below the fields reads Authorization successful along with a date.
- Fill the mappings, see below, then start the tasks.
Every one of these steps, with images and the fields of Shopify's interface, is covered by Connecting Shopify.
Whether the connection really stands is answered by Connect. The button is disabled as long as no permission has been granted and only becomes clickable afterwards. It asks Shopify and answers with Connection successful or with the text Shopify returned.

Once permission has been granted the fields disappear, and the section holds nothing but your shop's address. That is no loss: from then on the access token belongs to Shopify and TRADElube jointly, and there is nothing left for you to set on it. If you want to connect to a different shop, Reset Consent withdraws the permission and brings the fields back.
Client Id and Client Secret are your app's credentials. Both belong in place before you use Request Consent: without them Shopify does not know whose access you are about to grant, and the sign-in page never appears.
The field Access Token is the second path, and it does without the detour via the sign-in page. Where your app issues the token itself, as an app meant for your own shop only does, you enter shop and token and leave the two fields above empty. The channel counts as signed in then, and you do not need Request Consent.
Configuration
The section holds a single field. Root Category refers to the TRADElube side and decides which part of your catalogue goes into the shop as collections. Empty means "all categories on the top level", which for a catalogue with several roots is the correct setting, not a forgotten one. Only if you deliberately want to transfer one subtree do you enter its root there.
In Shopify all collections sit on one level, so there is no place your tree could be hung underneath. The shop keeps no counterpart to this field, and none is missing.
Mappings
The channel holds four tabs, one per list that exists on both sides. The column External shows the entry in the shop, the column Internal the one in TRADElube.
| Tab | What gets mapped |
|---|---|
| Payment Methods | The payment provider an order was paid through, onto your payment method |
| Shipping Methods | The shipping method's code from the order, onto your shipping method |
| Options | Your selection properties onto the options Shopify keeps on the product |
| Meta Fields | Your properties onto the shop's metafield definitions |

In three of the four tabs you enter the external side by hand, and it shows: where a drop-down would otherwise sit, there is a text field here, and Reload is absent above it altogether. The reason is the same as anywhere a button is absent: Shopify does not hand these lists out as lists. What a payment method is called only appears in the order it was used in.
For you that means the first order is also the occasion for filling the tab. An order whose payment method is not mapped still arrives, it then carries no payment method in TRADElube. In the traces you see which value Shopify delivered, and enter it in the External column.
The Meta Fields tab is different. Shopify keeps metafield definitions as a list, so Reload and Import are available there, and the external side is a drop-down. Import creates a property in TRADElube for each of the shop's metafields not mapped yet.
Available tasks
Six tasks, five into the shop and one out of it. Download means from the shop into TRADElube, upload the other way round.
| Task | Direction | Transfers | Notes |
|---|---|---|---|
| Collections Upload | Export | Categories as collections | The nesting is lost in the process, see below |
| Media Upload | Export | Media | Runs before the products, otherwise a product has no image to refer to |
| Products Upload | Export | Products including variants, prices, image references, collections and metafields | The channel's largest task, with one plan per level |
| Products Upload (Minimal) | Export | Only the variant fields of products already present in the shop | The alternative to the full task, not its complement |
| Stocks Upload | Export | Stock only | Separate from the products, so a change in stock does not drag the whole product record along |
| Orders Download | Import | Orders including line items, addresses and customers | The field Age of Orders to Sync limits how far back the search goes |
Which of these tasks exist in your client is decided by your needs: what gets created is what you actually use. How a task runs and what its schedule means is under Tasks.
The two product tasks exclude each other. If one of them is already on the channel, the other can no longer be created. TRADElube then answers with the note that an alternative task already exists. So you decide once whether TRADElube keeps the catalogue in the shop, or the shop keeps it and TRADElube only fills in the figures.
Collections and media go one way only, namely into the shop. So a collection maintained there cannot be taken over, and the same holds for the shop's media library. Both you maintain in TRADElube.
Special features and limits
All collections sit on one level. Shopify knows no subcollection, so your category tree arrives there flat, one collection per category. So that the origin stays readable nonetheless, the transfer plan of Collections Upload offers the category path as a source for the name, so Paints / Interior paints rather than Interior paints twice over.
The tree your customer sees in the shop is built elsewhere, namely in the menu you maintain in the Shopify administration. There you hang the collections into the order and structure the shop is to show. Most themes display two levels. That is work in Shopify rather than in TRADElube, and it falls due once: a collection once hung into the menu stays there, even when TRADElube changes its contents later.
The channel does not report the order status back. There is no task for it, so an order processed in TRADElube stays unchanged in the shop. Whoever wants to maintain the status in the shop does so in Shopify.
The channel does not transfer customers of its own accord. They are created in TRADElube with the order that triggered them, and do not travel into the shop as a stock of their own.
The manufacturer goes along, but not as a manufacturer. Shopify keeps the field Vendor on the product, and the transfer plan of Products Upload fills it with your manufacturer's name. There is no task of its own for manufacturers, and no channel mapping is created either: what stands in the shop afterwards is a name, not a reference.
Tax rates are not mapped. Shopify delivers the rate along with each order line, TRADElube takes it from there, and a tab for it would be empty.
Common questions
No variant can be selected in the shop. Then the channel's Options tab is empty, and the Options section of the plan Product Variant is empty accordingly, see Products Upload.
My subcategories sit next to their parent categories in the shop. In the list of collections that is by design, see above. The tree you build in the shop's menu, in its administration.
I do not want TRADElube to maintain the collections at all. Then leave Collections Upload out and create automated collections in Shopify, which fetch their products themselves through a condition. TRADElube supplies the fields such a condition can work on, see Products Upload.
Request Consent is not there. The button only appears once a shop name stands in the field Shop. Without a shop it would not know where to lead.
Two shops on one client. That is provided for, as two channels of the same type with their own login details, their own mappings and their own tasks, see Channels.
Further reading
- Channels: what a channel is and what the channel type decides
- Setting up a channel: the setup step by step
- Channels and tasks (reference): every field and button of a channel, plus the other connected systems
- Tasks (concepts): how a schedule works and what an execution transfers
- Transfer plan: where a value comes from and where it is written
- Mappings and channel mappings: the difference between the three similar terms