> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shoply.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform Migration

> Bring your products, keys, reviews, orders, customers and affiliates across from Komerza, SellAuth, Shoppex, SellApp or SellHub

Platform Migration is in **Settings**, under **Store**, then **Platform Migration**. It brings a store you run on another platform across to this one, with that platform's API key. You choose what comes across; nothing is changed on the other platform, and nothing already in this store is written over.

## The platforms

| | |
| - | - |
| **Komerza** | Products, unsold keys, reviews, orders, customers and affiliates, with the orders each affiliate referred. |
| **SellAuth** | Products, unsold keys, reviews, orders, customers and affiliates. Which orders an affiliate referred does not come across. |
| **Shoppex** | Products, unsold keys, reviews, orders, customers and affiliates, with the orders each affiliate referred. |
| **SellApp** | Products, unsold keys, reviews, orders, customers and affiliates, with the orders each affiliate referred. Pictures do not come across, and each affiliate is given a new code. |
| **SellHub** | Products, unsold keys, reviews, orders and customers. Categories arrive empty, and there are no balances or affiliates to bring. |

What each platform's API gives is different, and the table follows it: SellAuth names an order's affiliate only when that one order is read by itself, SellApp names no affiliate's code, and SellHub says neither which products a category holds nor any buyer's balance.

## Bringing a store across

1. Press **Import** beside the platform.
2. Paste an API key from that platform. Where to make one, and what to tick, is under the box. Only read permissions are needed; where a platform has no read-only keys, Shoply still only reads with it, and you can delete the key once the import is done.
3. Press **Check Key**. The key is checked with the platform before anything starts, and the dialog says whose store it reaches. A key that reaches several stores asks which one, under **Which Store**. For SellApp, type the store's handle as well, as it is in your store's address.
4. **What Was Found** lists how much of each kind is there, each with a switch. **Unsold Keys** come with **Products**: switching products off switches them off too.
5. Under **Reviews**, **Star Ratings to Bring** has a tick for each rating, all five ticked to start. Untick the ones you do not want, for example to bring five-star reviews only.
6. Press **Start Import**.

The dialog says about how long the import will take before it starts. Shoply reads the other platform slowly on purpose, about one request every two seconds, so that it never presses that platform's limits: a small store takes a few minutes, and a large one can take an hour or more. Where a platform says it has few requests left, Shoply waits for its limit to reset, and if a platform asks it to slow down, it reads more slowly for the rest of that import.

The import runs by itself, and you can close Settings while it does. Its card at the top of **Platform Migration** shows how far each kind has got and about how long is left, and you are emailed when it is done.

One import runs at a time across all your stores, and an Undo counts as one: while one is running on another of your stores, **Platform Migration** says which, and you can import once it ends. **Stop Import** stops it; what came across so far stays, and can be undone.

## What comes across, and how

| | |
| - | - |
| **Products** | With their variants, prices, descriptions, pictures and categories. **Every product and category arrives hidden**, so nothing new is on sale until you show it. Prices are in your store's currency, at today's rate where the platform priced in another. |
| **Unsold keys** | Into each variant's keys, for a variant that counted its stock from its keys there. Its stock is counted from them here. |
| **Customers** | Each buyer, and their store balance, which is added to any balance they already have here. A buyer you already have is used as they are. |
| **Orders** | Paid, refunded and charged-back orders, as records. Each is marked **Imported** and says what it was there. They are never delivered, emailed, counted in your revenue or Finance, or sent to your webhooks, and they are not in the customer panel. Unpaid orders do not come across. |
| **Reviews** | Every review with a rating you ticked, shown on your store with a small **Imported** note. The platform's name is never shown. A review is kept under the imported order it was about, or under a record made to hold it, and is shown under its product where that product came across too. A review about a product that did not come across is still on your store's reviews, under no product. |
| **Affiliates** | Each affiliate, with their code, what they earn, the discount their link gives, whether they are switched on, and what the platform owed them, which is added to their affiliate balance here. Where the platform says which orders they referred, those imported orders say so. Nothing is earned here on an imported order: its commission was paid on the other platform, and the order's page says so. |

**Files and dynamic delivery don't come across.** No platform's API hands over a file itself, and Shoply calls your own server in its own way, not the other platform's. A product that delivered a file or from your own server there arrives without it, and the card names each one: add its files, or set up its delivery, before you show it.

What does not fit is passed over, and the card says so: a store holds 250 products, 150 categories and 500 affiliates, a product 100 variants and 10 pictures, a variant 5,000 unsold keys. A free price becomes 0.01, the lowest a price can be, and the card says to check it.

An affiliate whose code is taken here already, or who has none (every SellApp affiliate), is given a new one, and the card says to tell them their new link. Where the platform does not say what an affiliate earns, they earn your store's default commission. A commission or a discount over 90% is brought across as 90%.

An import never switches your affiliate programme on. If it is off, the dialog says so under **Affiliates** before you start, and the card says it again at the end: until you switch it on in **Settings**, **Affiliates**, their links take nothing off and earn nothing, and they cannot ask for a payout or spend their balance. Switch it on once your store on the other platform is closed, so that nobody is paid twice.

> [!WARNING]
>
> The other platform keeps its copy of everything. Once you are happy with the import, close your store there: its unsold keys, its buyers' balances and its affiliates' balances are still there, and could otherwise be used twice.

## Undo

**Undo Import** takes away what that import brought across: its products, categories, orders and reviews, the customers and affiliates it made, and the balances it added. Anything sold, changed or bought here since stays:

* a product that was sold, changed, or put in an upsell, a coupon, a sale or a subscription plan stays, with its keys;
* a category you changed, or that still holds a product that stays, stays;
* a balance is taken back as far as it is still there: what a buyer spent was a sale, and what an affiliate was paid or moved to their store balance is theirs;
* a buyer who has ordered here, has a ticket, a subscription, a tag or an affiliate link, stays;
* an affiliate who has earned here, been paid, had their link used or been changed since, stays.

Bringing the same store across again later makes nothing twice: what is already here is passed over.

## Safety

* Shoply only ever reads from the other platform, and only the lists it needs. The reads go through a service of Shoply's own that sends nothing but reads, to those platforms' APIs and nowhere else.
* The key is kept encrypted while the import runs, and forgotten as soon as it ends, however it ends. It is never shown again.
* Checking keys and starting imports have limits of their own: 20 checks in ten minutes, and 2 imports an hour, for a store.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.