Migrating Your Shopify Store to SHOPLINE
To help you transition to SHOPLINE quickly while maintaining business continuity, SHOPLINE provides the Multi-platform Store Migration app — a one-click migration tool that transfers store data from supported platforms.
This guide explains how to migrate your Shopify store to SHOPLINE using the Multi-platform Store Migration app. Follow the steps below to prepare your Shopify store, complete the migration, and understand important migration considerations.
For the migration of your WooCommerce or Shoplazza store, refer to the following articles respectively:
|
Tip: Learn with SHOPLINE Academy Learn how to master the migration process and discover practical implementation tips in our Academy course: Migration Made Easy. |
Overview of the Shopify Migration Process
Migrating from Shopify to SHOPLINE involves the following 6 stages:
| Stage | Section | Description |
| 1 | Preparing Your Store for Migration | Complete store configuration checks to avoid triggering error notifications or inventory issues during data migration. |
| 2 | Obtaining Shopify Migration Credentials | Generate authorization credentials in the Shopify admin and complete store authorization in SHOPLINE. |
| 3 | Selecting Data Modules to Migrate | Select the data modules you need to migrate, and confirm the dependencies and migration order between modules. |
| 4 | Handling Migration Failures | Review and handle data that failed to migrate. |
| 5 | Secondary Migration: Migrating Incremental Data | If you need to migrate newly added data before switching your domain, you can initiate migration again. |
| 6 | Completing Migration and Binding Your Store Domain | Finalize your store configuration, bind your Shopify-exclusive domain, and officially launch your store. |
Preparing Your Store for Migration
Before starting migration, complete the following preparation steps to avoid disrupting normal store operations due to data migration:
- Turn off email notifications: Turn off email notifications in the SHOPLINE merchant admin and third-party apps (such as CRM, Smartpush, etc.) to prevent data writes from triggering notifications that disturb customers.
- Notify your payment channel: Notify your payment channel that your store will be switching SaaS platforms, to avoid disrupting payment functionality.
- Update the default location name: Update the SHOPLINE default location name so it matches your original Shopify store's location name, to prevent abnormal inventory deductions caused by order data migration.
- Back up ad data (optional): Before migrating, back up the feed files from your original ad channels and confirm your original product IDs — this can serve as a reference for verifying whether ad data migrated successfully.
- Clear product data (optional): If you plan to migrate your product feed, note that products written by apps other than the migration tool cannot be matched in the feed. Be sure to clear existing SHOPLINE product data beforehand.
- Migrate your domain (optional): If your domain is purchased or renewed through Shopify, transfer it to a third-party provider first.
Obtaining Shopify Migration Credentials
Before selecting migration modules, you need to complete Shopify store authorization so the one-click migration tool can read your store data.
After creating your store, but before setting up your storefront design, install and authorize the one-click migration tool:
- Go to the SHOPLINE App Store, then search for and install Multi-platform Store Migration.
- On the app page, enter your Shopify store domain. Three domain formats are currently supported: handle, handle.myshopify.com, and admin.shopify.com/store/handle.
- Enter your Client ID and Secret, then click Next to begin migration.
| Note: The Client ID and Secret must first be generated by creating a custom app and configuring API permissions in the Shopify Dev Dashboard. For detailed steps, see "Obtaining Shopify Migration Credentials." |
Selecting Data Modules to Migrate
Once store authorization is complete, you can select the data modules you want to migrate. Dependencies exist between different modules — check the table below to confirm the migration order before selecting modules to migrate:
| Module | Description | Dependent Module |
| Store Assets | Migrates store timezone settings, images, videos, and file assets. | — |
| Products | Product information (name, price, description, images, variant details, tags, etc.); product categories (manual and smart categories). | Depends on the Store Assets module (video assets) |
| Customers |
Basic customer information. Note: Customer data cannot be retrieved for Shopify trial, Basic, or Starter plans. See "Shopify Rules" for details. |
— |
| Customer Segments | Customer segment groups. See "Migrating Customer Segments from Shopify to SHOPLINE." | Depends on the Products module |
| Gift Cards | Gift card denominations, balances, designated customers, etc. | Depends on the Customers module |
| Discount Codes | Discount campaigns and discount codes. See "Migrating Discount Codes and Order Discount Information from Shopify to SHOPLINE." | Depends on the Products and Customers modules |
| Orders | Orders (basic order info, including order items, order amount, recipient, etc.); abandoned checkouts (not archived, not recalled). | Depends on the Products, Customers, and Discount Codes modules |
| Shipping & Fulfillment | General shipping plans, custom shipping plans, and location data. | Depends on the Products module |
| Custom Pages | Titles, content, and publish status of custom pages. | — |
| Blog | Blog collections and blog posts. | — |
| 301 Redirects | 301 redirect data configured on the original platform. | — |
| Metaobjects | Metaobject definitions and entries. | Metaobject entries depend on referenced resources (products, customers, pages, blogs, metaobjects) |
| Metafields | Metafields and definitions under specified resources, including customers, products, orders, custom pages, and blogs. | Metafield definitions depend on metaobjects; metafield values depend on the owning module and referenced resources |
| Translations | Translated content configured in the original store, including products, blogs, and custom pages. | Depends on the owning module |
Recommended Module Migration Order
- Store Assets, Products, Customers, Custom Pages, Blog, Translations
- Shipping & Fulfillment, Gift Cards, Customer Segments, Metaobjects
- Discount Codes, Metafields
- Orders & Abandoned Checkouts (order creation is irreversible — make sure the Products and Customers modules have fully migrated first)
Strong Dependency Rules
Some modules have strong business data dependencies on one another:
- Gift cards depend on customer data. If customer data hasn't been migrated, gift cards linked to those customers will fail to migrate.
- Discount codes depend on product and customer data. If product or customer data hasn't been migrated, campaigns with a "specified scope" will fail to migrate.
- Orders and abandoned checkouts depend on product and customer data. If product or customer data hasn't been migrated, order data will be abnormal and cannot be corrected.
| Impact: When products are missing, custom products are created instead, which affects shipping and refunds. When customers are missing, new customers are created instead, causing the "customer joined" date to be incorrect. |
When gift cards, discount codes, and orders are migrated in the same batch as the base modules they depend on, if the base module's migration success rate doesn't meet the threshold (below 95%), the system will not proceed to migrate gift cards, discount codes, or orders.
Example: Gift cards depend on customers — if the customer module's success rate doesn't meet the threshold, gift card migration will not run.
| Note: If abnormal data in a base module cannot be corrected, and the success rate can't reach 95% — affecting subsequent module migration — contact your Customer Success Manager or email erp@shopline.com |
Gift cards, discount codes, and orders can be migrated separately when the following conditions are met:
- The dependent module's most recent full migration was within the last 90 days. A full migration means no custom scope was set (migration scope is "All"); it excludes records where the migration task was interrupted or terminated.
The dependent module's most recent full migration success rate is 95% or higher. If it doesn't meet this threshold, you can use Retry on failed data to refresh the success rate.
Syncing Ad Data During Migration
If you're currently running Google or Meta ads, complete the following steps based on your chosen tool to ensure ad performance isn't interrupted after migration:
- Use the official SHOPLINE Smart Feed app (recommended): After completing your core store data migration, we recommend installing the Smart Feed app. It supports migrating your product feed from Shopify, and lets you complete all configuration within the app to ensure ID matching. For details, see "Smart Feed (New): Migrating Product Feeds from Shopify, WooCommerce, and Shoplazza (Limited Access)."
- Use the third-party Simprosys app: If you choose to use Simprosys to migrate Google or Meta ad data, you'll need to set feed rules in the migration plugin and complete the migration there. Be sure to clear any non-migrated products already in your SHOPLINE store before starting, to avoid feed matching failures.
Handling Migration Failures
After migration completes, some data may fail to migrate due to system errors or data that doesn't meet requirements. You can review and handle this failed data by module:
- Once migration ends, review the details of failed migration data on the migration results page.
- Failed data can be exported by module, with an export limit of 10,000 records per migration. If a single module's failed data exceeds this limit, we recommend analyzing and resolving some of the failures first, then clicking Retry before attempting to export again.
For common error causes and fixes, see "Troubleshooting Common Store Migration Failures".
Secondary Migration: Migrating Incremental Data
If you've already completed a full migration but still need to migrate newly added data (for example, before switching your domain), you can initiate migration again — this is called a "secondary migration":
- Incremental data: Orders and abandoned checkouts support filtering by creation time, so you can specify a "start time" to precisely target your migration range.
- Already-migrated data: Already-migrated data is not overwritten by default, but you can choose whether to overwrite it:
| Option | Migration Behavior | Use Case |
| Overwrite | Already-migrated data will be overwritten and updated. | Use when already-migrated data needs to be updated or corrected. |
| Do Not Overwrite (Default) | Already-migrated data will be automatically skipped and left unchanged. | Use when already-migrated data hasn't changed. |
Completing Migration and Binding Your Store Domain
Once data migration is complete, you can continue setting up your store, including storefront template configuration, payment setup, ad pixel setup, meta verification, sitemap submission, and more.
Once your store is fully set up, you can bind your Shopify-exclusive domain to SHOPLINE and officially launch your store.
Migration Considerations
Issues Related to Migration of the Orders Module
- The data of migrated orders will be displayed 24 to 48 hours after your migration is completed.
- The migrated Shopify orders and the amount will be created in a customized payment method by default. Although you can refund these orders, no actual refunds will be generated. You need to complete the refund operations offline or on Shopify.
- In the event that migration of the products or customer in an order fails, the order will still be migrated and created, but with a custom customer and custom products. This may lead to order shipping or refund failures because there are no matched products related to the shipment or refund.
- At present, migration of the logistics method field is not supported, but that of the logistics status is supported.
- At present, migration of the order return status is not supported, because Shopify doesn’t provide the interface for inquiring order returns.
- How many Shopify locations can be migrated is based on the number of locations included in the plan you have purchased for your SHOPLINE store. If the number of locations for your SHOPLINE store is less than that of your Shopify store, location migration will fail.
- At present, product images are not displayed on the order details page for POS channel orders.
- Please turn off the order-related email notifications in Settings > Notifications in your SHOPLINE admin panel before the order migration.
- When products in a Shopify order are removed, the migrated order retains the activated/listed status in SHOPLINE, because the Shopify interface doesn’t provide product status information. This may result in a partially paid or partially shipped status of the order after the migration, because a removed product doesn’t have payment or shipping information.
- In Shopify, orders are displayed in the same currency as they are paid in. However, migrated orders will be displayed in the currency configured for your SHOPLINE store, which may result in inconsistencies with your Shopify order currency.
- The migration of multi-currency orders is supported. However, cancellations and refunds for these orders are not yet supported, which may result in inconsistencies with your Shopify order statuses.
Other Issues
- After migrating the customer data from the Shoplazza store, customers need to verify their email to activate their accounts by email since the data come from two different systems. You can go to Settings > Customer account > Classic customer account in the SHOPLINE admin panel, and select the Activation method option. Customers can then reactivate their account with the verification code sent via email when trying to log in your store.
| Note: Before the migration, please turn off all the subscription-related email notifications (Settings > Notifications), so as to avoid sending emails to customers during the migration before it is completed. |
- For the migration of logistics settings, only the general plans are migrated. Custom plans configured based on products are not supported. Migration is not supported when both a general shipping plan and a custom shipping plan exist at the same time.
- Your SHOPLINE store needs to enable phone number sign-in. Otherwise, customers who registered with only phone numbers are not able to login after your store migration. You can go to Settings > Customer account to check the configuration.
- To ensure product images display correctly on your storefront after migration, make sure your images are in a format supported by SHOPLINE:
- Supported formats include: .gif, .pjp, .jpg, .pjpeg, .jpeg, .jfif, .png, .bmp, .webp, .svg, .ico, and .avif (maximum file size: 10 MB).
- Animated GIFs are also supported, with a maximum file size of 8 MB.
- For square product images, the recommended size is 800 × 800 pixels.
- For more details, see "Adding Images, Videos, and Files to Products".
- See the table below for supported sorting rules for smart and manual categories. You can re-confirm product sort order in the admin afterward, to avoid a drop in store conversion caused by incorrect migration order.
Sorting rules supported by migration:
| Sort Rule | Smart Category | Manual Category |
| Custom Sort | ✘ | ✔ |
| Best Selling | ✔ | ✔ |
| Conversion Rate | ✘ | ✘ |
| Product Name | ✔ | ✔ |
| Created Date | ✘ | ✘ |
| Updated Date | ✘ | ✘ |
| Price | ✔ | ✔ |
| Views | ✘ | ✘ |
| Add-to-Cart Count | ✘ | ✘ |
- Smart category classification rules:
| Classification Rule | Supported? |
| Product Title | ✔ |
| Price | ✔ |
| Compare-at Price | ✔ |
| Tag | ✔ |
| Inventory | ✔ |
| Vendor | ✔ |
| Variant Weight | ✔ |
| Variant Name | ✔ |
| Created Date | ✘ |
| Sales Volume | ✔ (supported after orders are migrated) |
| Views | ✘ |
| Add-to-Cart Count | ✘ |
| Product Category | ✔ |
| Custom Product Category | ✔ |
| Metafields | ✔ |
Frequently Asked Questions
Q1: Why is the displayed quantity of migrated products inconsistent with the actual number of migrated products?
The quantity of migrated products includes the quantity of products, SKUs, categories, and binding relations between products and categorization.
Q2: Why does the number of customers displayed in the admin panel differ from the number of migrated customers?
Because customer statistics are not updated in a real-time manner, there is a data delay of about 1.5 hours (for example, if 40,000 customer data is migrated, the total number displayed in the admin may be only 20,000, and it will take over an hour for the data to be updated and displayed correctly).
Q3: Why is the status of migrated customers "disabled"?
It means this customer isn’t activated in Shopify, so it is deactivated in SHOPLINE. The term for this status has been optimized "not activated" for improved customer experience. Start another migration to overwrite the obsolete status.
Q4: When migrating customers, will their Email and SMS subscription statuses also be transferred and saved?
Yes, customers' subscription preferences for both Email and SMS will be carried over and saved during the migration.
Understanding the Scope of Supported Migration Data
The table below lists the data fields supported by the Multi-platform Store Migration app when migrating a store from Shopify to SHOPLINE. It helps you understand which types of data can be migrated.
Product Data
| Field Category | Field Name | Migration Support |
| Basic Info | ID | Supported |
| Product Title | Supported | |
| Product Summary | Not required (Shopify does not have this field) | |
| Product Description | Supported | |
| Media Files (Image/Video) | Supported | |
| SPU | Not required (Shopify does not have this field) | |
| Variant Info | Variant Name | Supported |
| Variant Image | Supported | |
| SKUID | Not supported | |
| SKU Image | Supported | |
| SKU | Supported | |
| Barcode | Supported | |
| Retail price | Supported | |
| Compare at price | Supported | |
| Item cost | Supported | |
| Is Taxable | Supported | |
| Inventory | Inventory (set by location) | Supported |
| Track Inventory | Supported | |
| Continue Selling When Out of Stock | Supported | |
| Requires Shipping | Supported | |
| Weight | Supported | |
| Weight Unit | Supported | |
| Customs Info | Shipping Country/Region | Not supported |
| HS (Harmonized System) Code | Not supported | |
| Product Settings | Active/Draft Status | Supported |
| Sales Channel | Supported | |
| Product Collection | Supported | |
| Product Type | Supported | |
| Tag | Supported | |
| Vendor | Supported | |
| Search Engine Optimization | Page Title | Supported |
| Meta Description | Supported | |
| URL | Not required (Shopify does not have this field) | |
| Theme Template | Template | Not supported |
| Product Metafield | Custom Metafields | Supported |
| Shopify Exclusive Fields | Regional Product Catalog | Not supported |
| B2B Product Catalog | Not supported |
Customer Data
| Field Category | Field Name | Migration Support |
| Basic Information | ID | Not needed (auto-generated by SHOPLINE) |
| First Name | Supported | |
| Last Name | Supported | |
| Supported | ||
| Email Verified | Supported | |
| Phone | Supported | |
| Gender | Not needed (Shopify has no equivalent field) | |
| Birthday | Not needed (Shopify has no equivalent field) | |
| Customer Password | Not needed (Shopify has no equivalent field) | |
| Shipping Address | Contact Phone | Supported |
| Country/Region | Supported | |
| First Name | Supported | |
| Last Name | Supported | |
| Company | Supported | |
| Address Line 1 | Supported | |
| Address Line 2 | Supported | |
| City | Supported | |
| Province/State | Supported | |
| Postal Code | Supported | |
| Default Address | Supported | |
| Subscription Information | Subscribed to Marketing Emails | Supported |
| Subscribed to Marketing SMS | Supported | |
| Others | Tags | Supported |
| Notes | Supported | |
| Tax Settings | Tax Exempt | Not supported |
| Tax-Exempt Regions | Not supported | |
| Sales Information | Total Orders | Supported |
| Total Amount Spent | Supported | |
| Average Order Value | Supported | |
| Order Line Item Details | Supported |
Order Data
| Field Category | Field Name | Migration Support |
| Basic Info | Order ID | Not required (Generated by SHOPLINE automatically) |
| Order Number | Supported | |
| Creation Time | Supported | |
| Order Source | Not supported | |
| Order Status | Supported | |
| Payment Status | Supported | |
| Shipping Status | Supported | |
| Inventory Processing Method | Not required (Historical orders do not require inventory deduction) |
|
| Product Info | Product Info | Supported |
| SKU Info | Supported | |
| Product Name | Supported | |
| Product Image | Supported | |
| Variant Info | Supported | |
| SKU | Supported | |
| Price | Supported | |
| Quantity | Supported | |
| Product Discount | Supported | |
| Product Tax | Supported | |
| Location | Not required (Shopify does not have this field) | |
| Requires Shipping | Supported | |
| Subject to Tax | Supported | |
| Order Amount | Subtotal | Supported |
| Order Discount | Supported | |
| Price is Tax Inclusive | Supported | |
| Shipping Fee | Supported | |
| Shipping Fee Details | Supported | |
| Payment Info | Payment Amount | Supported |
| Payment Channel | Supported | |
| Payment Time | Supported | |
| Payment Status | Supported | |
| Customer Info | Customer ID | Supported |
| Customer Name | Supported | |
| Contact Email | Supported | |
| Contact Mobile Phone | Supported | |
| Historical Orders Count | Supported | |
| Recipient Info | Name | Supported |
| Phone Number | Supported | |
| Supported | ||
| Detailed Address | Supported | |
| Country | Supported | |
| Province | Supported | |
| City | Supported | |
| District | Not required (Shopify does not have this field) | |
| Zip Code | Supported | |
| Company | Supported | |
| Email Sending | Shipping Email | Not required (No email notification is required when migrating orders) |
| Confirmation Email | Not required (No email notification is required when migrating orders) |
|
| Billing Info | Billing Info | Supported |
| Order Tag | Order Tag | Supported |
| Order Note | Buyer Message | Not required (Shopify does not have this field) |
| Merchant Note | Supported | |
| Other Info | B2B Company Location | Not required (Shopify does not have this field) |
| Shipping Info | Logistics Provider | Supported |
| Tracking Number | Supported | |
| Notify Customer | Not required (No notification to customer is required for migration) |
|
| Tracking URL | Supported | |
| Cancellation Info | Cancellation Reason | Supported |
| Notify Customer | Not required (No notification to customer is required for migration) |
|
| Actual Occurrence Time | Supported | |
| Restock Inventory | Not required (No inventory handling is required for migration) |
|
| Refund Time | Refund Time | Supported |
| Product Line Item Info | Shipping Status | Supported |
| Product ID | Supported | |
| Inventory Restock Location | Supported | |
| Refund Quantity | Supported | |
| Inventory Processing Method | Supported | |
| Shipping Refund Policy | Refund Shipping Fee | Supported |
| Payment Slip Info | Refund Amount | Supported |
| Payment Channel | Supported | |
| Payment Slip Number | Supported | |
| Refund Note | Supported |