What product data transfers automatically
StoreShift reads your Shopify product catalog via the Shopify API and maps each field to its WooCommerce equivalent. Here's what migrates without any manual work.
| Shopify field | WooCommerce equivalent | Status |
|---|---|---|
| Title | Product name | ✓ Auto |
| Body HTML (description) | Product description | ✓ Auto |
| Vendor | Custom field (meta) | ✓ Auto |
| Product type | Custom field (meta) | ✓ Auto |
| Tags | Product tags | ✓ Auto |
| Price (base) | Regular price | ✓ Auto |
| Compare-at price | Sale price | ✓ Auto |
| SKU | SKU | ✓ Auto |
| Weight | Weight (unit converted) | ✓ Auto |
| Inventory quantity | Stock quantity | ✓ Auto |
| Track inventory | Manage stock | ✓ Auto |
| Product status (active/draft) | Published / Draft | ✓ Auto |
| Images (all sizes) | Media library + gallery | ✓ Auto (sideloaded) |
| Variants (options + values) | Attributes + variations | ✓ Auto |
| Custom collections | Product categories | ✓ Auto |
| Smart collections | Product categories | ✓ Auto |
| Metafields | Custom fields | ⚠ Manual mapping |
| Product reviews (Yotpo etc.) | Reviews | ✗ Third-party app data |
| Gift card products | Gift cards | ✗ Platform-specific |
What requires manual handling
A handful of product data types don't have a direct WooCommerce equivalent or require extra configuration after import.
Metafields
Shopify metafields are custom key-value data attached to products — things like "material", "care instructions", or "bottle size". WooCommerce has no concept of metafields in the same structured way. StoreShift imports metafield values as standard WordPress post meta, but you need to configure your theme or a plugin like Advanced Custom Fields (ACF) to display them on the product page.
Product reviews
If you're using a review app like Yotpo, Stamped.io, or Okendo, those reviews live in the app's database — not in Shopify itself. The Shopify API doesn't expose third-party app data. To migrate reviews, you'd need to export from the review app directly and import using a WooCommerce reviews plugin (such as WooCommerce Product Reviews Pro).
Gift cards
Shopify gift cards are stored as balance records tied to specific customers. WooCommerce handles gift cards via a paid extension (WooCommerce Gift Cards, $69/year). Gift card balances can't be migrated automatically — customers would need new gift cards issued on the WooCommerce side.
Subscription products
Shopify selling plans (subscriptions) require WooCommerce Subscriptions ($299/year) to replicate. The product can migrate, but the subscription billing logic needs to be reconfigured.
Before you start
Run through these steps before starting the products import to avoid common problems.
Keep Shopify active
The importer reads from the Shopify API — your store must be active with an accessible API endpoint. Do not cancel Shopify before the migration finishes.
Set up WordPress and WooCommerce on staging
Run the first import on a staging site, not directly on your production WooCommerce store. This lets you verify product output without affecting customers. You can use LocalWP for a local staging environment, or a subdomain on your host.
Choose and configure your WooCommerce theme
WooCommerce themes control how product images, attributes, and descriptions display. Set up your theme before running the import so you can see exactly how products will look. Storefront (free), Kadence, or Blocksy are common starting points.
Check your server's max execution time
Image sideloading makes HTTP requests to Shopify's CDN for each product image. On servers with PHP max_execution_time set below 120 seconds, the request may timeout mid-import. Set max_execution_time = 300 in your php.ini or ask your host to increase it. Most managed WordPress hosts have this set correctly by default.
Running the products importer
Install StoreShift and connect your Shopify store
Install StoreShift on your WordPress site from WordPress.org (Lite) or via the paid download at storeshift.io. In your WP admin, go to StoreShift → Import. Click "Connect Shopify" to open the OAuth flow and approve the connection. StoreShift stores a read-only access token — it can't modify your Shopify store.
Run Categories first
Import categories before products. Products are assigned to categories during import — if the category doesn't exist yet, the product won't have the correct WooCommerce category assigned. The Categories importer runs in seconds for most stores.
Run the Products importer
Click "Import Products" in the StoreShift dashboard. The importer pages through your Shopify product catalog 100 items at a time, creating WooCommerce products and sideloading images as it goes. A store with 500 products typically finishes in 5–15 minutes depending on image count and server speed.
Review the import log
The import log shows each product processed and flags any failures — typically images that failed to sideload or products with unusual data structures. Address any failures before running the final migration on your live site.
Re-running the importer is safe. StoreShift uses the Shopify product ID as a unique key and updates existing products rather than creating duplicates. You can run the import multiple times — useful for testing on staging before the final production run.
Variable products: how attributes map
Shopify and WooCommerce represent product variants differently. Understanding the mapping helps you verify the output.
Shopify's model
In Shopify, a product has up to three "options" (e.g., Color, Size, Material). Each option has values (Red, Blue; S, M, L). Variants are the combinations of those option values — each combination has its own price, SKU, and inventory level.
WooCommerce's model
In WooCommerce, a variable product has "attributes" with "terms". Each attribute corresponds to a Shopify option; each term corresponds to an option value. The variation combinations are created as individual child products under the parent, each with their own price, SKU, and stock.
How StoreShift maps them
- Each Shopify option becomes a WooCommerce product attribute (e.g., "Color", "Size")
- Each option value becomes an attribute term (e.g., "Red", "Blue")
- Each Shopify variant becomes a WooCommerce variation with its specific price, SKU, weight, and stock level
- Variant images are attached to the corresponding variation
- Variant-specific inventory levels are preserved per-variation
Products with a single variant in Shopify (no options) import as WooCommerce "Simple" products. Products with multiple variants import as "Variable" products.
If a Shopify variant has a blank option value or uses "Default Title" (Shopify's placeholder for single-variant products), StoreShift treats the product as simple. If your product should be variable but shows up as simple in WooCommerce, check whether the Shopify variants had real option values assigned.
Product images: sideloading explained
Shopify hosts product images on its own CDN. WooCommerce needs those images in your WordPress media library. "Sideloading" is the process of downloading each image from Shopify's CDN and uploading it to your WordPress installation during the import.
StoreShift sideloads images automatically. For each product, it processes the featured image first, then gallery images. Each image is:
- Downloaded from Shopify CDN to your WordPress temp directory
- Resized to all registered WordPress image sizes (thumbnail, medium, large, full)
- Attached to the WooCommerce product in the media library
- Set as the featured image or appended to the gallery as appropriate
Variant images (images specific to a particular variant, e.g., a red version of a shirt) are attached to the corresponding WooCommerce variation so the image swaps correctly when a customer selects that variant.
Image sideloading performance
Each image requires an HTTP request to Shopify's CDN and a file write to your server. A product with 6 images takes 6 requests. A catalog of 300 products averaging 4 images each means 1,200 HTTP requests. On a fast server with good outbound connectivity, this runs in 3–8 minutes. On shared hosting with throttled outbound connections, it can take 20–30 minutes.
If your server times out mid-import, re-running the Products importer will pick up where it left off — existing products are updated, failed images are retried.
Categories and collections
Shopify has two types of collections: custom collections (manually curated) and smart collections (rule-based). Both map to WooCommerce product categories.
Custom collections
Custom collections — where you manually add products — import as WooCommerce product categories. The category name, description, and image transfer. Products assigned to the collection are assigned to the matching WooCommerce category.
Smart collections
Smart collections use rules to automatically include products (e.g., "all products tagged with 'summer'"). WooCommerce doesn't have rule-based categories. StoreShift imports a smart collection as a standard WooCommerce category and assigns the products that were in the collection at import time. The automatic rule behavior doesn't transfer — if you add a product with the "summer" tag in WooCommerce, it won't automatically appear in that category unless you add it manually.
Run Categories before Products. The importer assigns products to categories during the product import step — if categories don't exist yet, product-category relationships won't be created correctly.
After the import: what to check
Work through this checklist in WooCommerce after the products import finishes.
Product basics
- Product titles and descriptions display correctly — check for HTML encoding issues in rich descriptions
- Prices show correctly — verify compare-at price maps to sale price where expected
- SKUs are present on each product and variation
- Stock levels match Shopify — spot-check 5–10 products with inventory tracking
Variable products
- Attribute options (Color, Size, etc.) show as swatches or dropdowns on the product page
- Selecting a variant combination changes the price and image correctly
- Each variation has the correct SKU, stock, and weight
- Out-of-stock variants are marked as unavailable
Images
- Featured image appears on the shop page and product page
- Gallery images display correctly in the product gallery
- Variant images swap when selecting different options
- Image dimensions are appropriate — check for any stretched or blurry thumbnails
Categories
- Products appear in the correct WooCommerce categories
- Category pages display the right products
- Category URLs are correct (no broken links from your navigation)
Products, categories, orders, customers, coupons, and redirects. Starter plan includes products and categories. One-time purchase, no subscription.
Common issues and fixes
Product images fail to sideload
The most common cause is PHP's max_execution_time being too short or an outbound HTTP restriction on your server. Check your host's PHP settings and increase max_execution_time to 300 seconds. Re-running the importer retries failed images without duplicating products.
Variable product appears as simple
Check the original Shopify product. If it had a single variant with option value "Default Title", it was a simple product in Shopify — StoreShift imports it correctly as a simple WooCommerce product. If the Shopify product had real options but still imports as simple, verify the product wasn't archived or had options left blank in Shopify.
Product description shows raw HTML
Shopify stores product descriptions as HTML. WooCommerce renders HTML in product descriptions correctly. If you see raw HTML tags on the product page, your theme may be rendering the description as plain text. Check your theme's template for the_content() vs the_excerpt() usage in product templates.
Categories missing from products
This happens when Products runs before Categories. Delete the imported products, run Categories first, then re-run Products. The importer will create products and assign them to existing categories correctly.
Image alt text is missing
Shopify allows custom alt text on product images. StoreShift imports alt text when present. If alt text is blank in Shopify, WooCommerce images will also have no alt text — set these manually in the Media Library for accessibility and SEO.
Frequently asked questions
Will product images transfer from Shopify to WooCommerce?
Yes. StoreShift sideloads all product images from Shopify's CDN into your WordPress media library automatically. Featured images, gallery images, and variant-specific images all transfer and are attached to the correct product and variation.
How do Shopify product variants map to WooCommerce?
Shopify options (Color, Size) become WooCommerce product attributes. Option values (Red, Blue; S, M, L) become attribute terms. Each Shopify variant combination becomes a WooCommerce variation with its own price, SKU, stock level, and image.
What plan do I need to migrate products?
StoreShift Starter ($79 one-time) includes products and categories. Starter Orders, customers, and coupons require the Pro plan ($149) or Agency plan ($249).
Can I re-run the products importer without creating duplicates?
Yes. StoreShift uses Shopify's product ID as a unique key. Re-running updates existing products rather than duplicating them. Useful for picking up new products added to Shopify after an initial staging migration.
What product data doesn't transfer automatically?
Product metafields need manual mapping to WooCommerce custom fields. Product reviews from third-party apps (Yotpo, Stamped.io) live outside Shopify's API. Gift card products and subscription selling plans require paid WooCommerce extensions to replicate.