Two ways in
Go to Channels › Connect a store. The form has three steps: what to call the connection, where your account is, and how to prove it is yours. The third step is the one that differs, and there are two shapes of it.
- Installing. Pressing Connect sends you to the channel, you approve the application there, and the channel sends you back with a credential. No password is typed here and none is kept. This is the ordinary way in for Shopify, eBay and Amazon.
- A credential you already hold. You create a key in your own admin and paste it in. This is the only way in for WooCommerce and Magento, because those are your servers rather than somebody's marketplace, and it is available on the others under I already have a token for this account.
Nothing is saved until it works. The credential is used to call the channel, read the account back and confirm it answers; only then is the connection written. A store that cannot be reached is never shown as connected.
The display name in step one is yours and is never sent anywhere: it is what the connection is called in menus and lists here. "UK shop", "Warehouse eBay". Leave it blank to use the name the channel gives.
Shopify
What you need: the permanent store address, which looks like
acme.myshopify.com. Not a custom domain: the permanent one is what
every API call is addressed to.
- Channels › Connect a store, and choose Shopify.
- Type the store address in step two.
- Press Install. Shopify asks you to approve the application against that store, and sends you back here.
- The connection appears with the shop's own name and the permissions it granted.
With a token instead. In your Shopify admin, create a custom app, give it the read and write scopes for products, inventory and orders, install it, and copy the Admin API access token. Shopify shows it once. Paste it under I already have a token for this account. It is encrypted before it is stored and never shown again.
An install started from Shopify's own admin lands on the same screen with the shop address already filled in. Check the organisation in the sidebar first if you work in more than one: the connection is made against whichever you are signed in to.
eBay
What you need: your seller ID, which is the name shown on your
listings and the last part of your profile address:
ebay.co.uk/usr/your-id.
- Channels › Connect a store, and choose eBay.
- Type your seller ID.
- Press Connect. eBay asks you to sign in and approve the application, then returns you here.
- Open the connection and go to Listing settings. eBay needs four answers before a product can be listed: a postage policy, a payment policy, a returns policy and somewhere to ship from. They are read live from your eBay account rather than stored here.
If you have none of them, the screen offers to create them for you: give the postage you charge, how many days you take to post, how long a buyer has to return and who pays the return postage, and press Create them. They are created in your eBay account and can be edited there afterwards. A default condition can be set here too, and it is used for any product that has not chosen one of its own.
Add a street and postcode to your default warehouse first, under Settings › Warehouses. eBay quotes postage from where the parcel leaves, so it will not accept a listing without one.
Amazon
What you need: your Merchant Token. In Seller Central it is under Settings › Account Info › Merchant Token: fourteen letters and digits, not your store name. Every write is addressed to it, so it is worth copying rather than typing.
- Channels › Connect a store, and choose Amazon.
- Type the Merchant Token.
- Press Connect. Amazon asks you to approve the application against your selling account and sends you back here.
- Open the connection and press Import orders, then Import products, on the Import and sync tab.
Amazon's catalogue import reads the listings you hold - your SKUs, your prices, your quantities - rather than Amazon's shared product pages. Two things follow from that and are worth knowing before you look at the result: Amazon holds no seller-owned description or picture gallery, because the detail page belongs to the ASIN and is shared with everybody else selling the same product, so a product arrives with its title and its main image. What you write here is what goes out to the channels that accept a description.
Stock is sent per SKU. A listing Amazon fulfils itself is never sent a quantity: that number is Amazon's, and writing to it would be overwritten within the hour.
WooCommerce
What you need: WooCommerce 3.5 or later on a store reachable over https, and a REST API key pair. The key is sent with every request, so an http address is refused.
- In WordPress, go to WooCommerce › Settings › Advanced › REST API and press Add key.
- Give it a description, choose a user with administrator rights, set permissions to Read/Write and press Generate API key.
-
Copy the consumer key (it starts
ck_) and the consumer secret (cs_). WooCommerce shows them once, together. -
Here, choose WooCommerce, type the full store address starting
with
https://, paste both halves and press Connect.
Magento
What you need: Magento 2 or Adobe Commerce, and an integration token. Magento 1 reached end of life in June 2020, has a completely different API and is not supported.
- On 2.4.4 and later, first: go to Stores › Configuration › Services › OAuth › Consumer Settings and set Allow OAuth Access Tokens to be used as standalone Bearer tokens to Yes, then save. Magento ships it set to No and refuses the token until it is changed. On 2.4.3 and earlier the setting does not exist and nothing needs doing.
- Go to System › Extensions › Integrations and press Add New Integration. Give it a name.
- On the API tab set Resource Access to Custom and tick the boxes below. All works too: it is the same access plus everything we never ask for.
- Save, then press Activate and Allow. Magento shows the Access Token once.
-
Here, choose Magento, type the store address starting with
https://, paste the token and press Connect.
The boxes to tick, and what each one is for:
| Resource | Why |
|---|---|
| Catalog | Tick the branch itself, not only what is under it. Products and categories are read from there and written to on publish, and a product's existing pictures are read through an endpoint Magento guards with the Catalog node rather than with Products. |
| Sales › Operations › Orders | Brings your orders in. |
| Sales › Operations › Orders › Actions › Ship | Marks an order shipped and sends the tracking number back. |
| Stores › Settings › All Stores | Reads the store's currency and its store views. |
| Stores › Attributes › Product | Reads attribute names, so a variant reads "Colour: Red" instead of a pair of numbers, and creates the one a product with variants needs when your store has none. |
| Stores › Attributes › Attribute Set | The box most easily missed. Magento keeps a value only for the attributes in a product's set and drops the rest without saying so, so without this a product with variants is written with nothing to tell its variants apart, and the refusal names a product id rather than this box. |
| Stores › Settings › Configuration › Inventory Section | Lets a product carry its own stock figure on a store with no Multi Source Inventory. |
| Stores › Inventory › Sources | Reads and writes stock per source. On 2.4 also tick Stores › Inventory › Stocks › Source Item Assigning. If there is no Inventory branch at all, this store has Multi Source Inventory switched off and nothing here needs it: stock is written onto the product itself, which is worked out from the store rather than asked of you. |
The tree is worded slightly differently between Magento versions, and anything missed is not wasted work: the request that needs it fails with the resource named - "Magento_Catalog::products" - and you tick it then. Magento reports a missed box as "The consumer isn't authorized to access ...", sometimes with a status that reads like a rejected token; the name after "access" is the box, and the token is fine. After ticking anything, press Save, and refresh the invalidated cache types Magento offers at the top of its admin.
The connection screen
Open a connection from Channels. It has a tab for each thing you do to it.
| Tab | What is there |
|---|---|
| Overview | The account at the channel, when it was connected, when it was last checked and what it is allowed to do. Check now re-reads all of it immediately instead of waiting for the next sweep. |
| Import and sync | Import products, Import orders and Send stock, each of which starts a job you can watch. Beside them, Preview stock shows what would be sent without sending it, and Compare with the store asks the shop what it is advertising and lists where it disagrees. |
| Stock | The rules that decide how much of your stock this connection is told about. See Stock. |
| Listing settings | What the channel needs before a product can be listed on it, read live from your account there. eBay's four policies live here. |
| Settings | What an import from this store does with pictures. See below. |
| Notes | Anything the system does not record: which mailbox opened the account, who to ring, what the last ticket was about. Encrypted with the same key as the credentials. |
| Limits and permissions | What the channel granted, and what this connection cannot do. A connection can work perfectly and still be withholding something, and this is where that is said. |
What an import does
An import reads the channel and writes into your catalogue. Products are matched on SKU, so importing the same shop twice updates rather than duplicates.
The Settings tab decides what happens to pictures, and it applies to every import from that store including scheduled ones. For products that are new here:
- Link to the pictures where they are. Nothing is stored here and nothing is paid for. The pictures stop working if the store they live in closes.
- Copy the pictures here. They become yours and survive the store closing. Copying starts after the import finishes and runs as its own job.
- Do not bring pictures. Useful when the pictures here are already the better ones.
For products this catalogue already has:
- Leave their pictures alone. An import can add products and prices without touching a single picture.
- Keep this store's own pictures, separately. Your product keeps the pictures it has; this store's are kept against this connection only, and are what is sent back to it.
- Replace the pictures that came from this store. Only pictures this store gave us are removed. Anything uploaded here is your own and is never touched.
Pausing and disconnecting
Pause sending stops stock and dispatch updates going to a store. Orders still arrive, imports still run and the connection is still checked. It is what you want during a stocktake or a price rework, and it takes a reason you can note. Resume sending puts it back.
Disconnect ends the connection. Products and orders already brought in stay exactly where they are, and nothing more syncs until it is connected again.
A connection that stops working says so on its own card, with what the channel said and what to do about it: reconnect, grant something in the store's own admin, wait for it to clear, or tell us. Reconnecting mints a new credential and re-grants what it needs.
Several accounts on one channel
Connect as many as your plan includes: two eBay accounts, a shop and a marketplace, a second Shopify store for another country. Each is its own connection with its own listing settings, its own stock rules and its own import settings, and each counts once against the plan's connection limit.