← All playbooks
Commerce migration

Webflow → Shopify

Export Webflow products from the Designer and reshape that CSV into Shopify's product file. The Webflow file is Webflow's schema. Shopify creates products from its own columns, and it fetches images from URLs that have to stay public.

Typical timeline10 to 25 business days30 to 80 hours active work
Statusneeds review
Source profileWebflow ecommerce CSV documentation reviewed 2026-11-05
Destination profileShopify product CSV documentation reviewed 2026-11-05
Documentation date
Review window
Evidence3 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Webflow

Reasons to stay
  • Visual design, CMS, hosting, and interactions give designers strong production control
  • Editors get a purpose-built publishing workflow instead of raw files
Reasons to leave
  • Pricing, collection limits, and proprietary structure constrain portability
  • Themes, extensions, and content models add maintenance and portability constraints
New platform

Shopify

What gets better
  • A polished hosted commerce platform has an unmatched app and partner ecosystem
  • Core catalog, order, customer, and promotion workflows are integrated
What gets worse
  • Transaction economics, app dependency, and checkout constraints reduce control
  • Deep customization usually increases extension, agency, or engineering costs
Best of the move

Shopify: A polished hosted commerce platform has an unmatched app and partner ecosystem. This removes a major source-side concern: Pricing, collection limits, and proprietary structure constrain portability.

Worst of the move

What you lose: Visual design, CMS, hosting, and interactions give designers strong production control. What you inherit: Transaction economics, app dependency, and checkout constraints reduce control.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome10 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 6, Manual rebuild: 4, Not transferred: 0.
Clean0
Partial6
Manual4
Lost0
Mapping route8 of 9 fields have a destination path

This timeline assumes

  • You can open the Webflow Designer and export products. Webflow says product import and export happen in the Designer, with a 4MB CSV cap.
  • You will rebuild the storefront in a Shopify theme. The product CSV is not the Designer layout.
  • Webflow stays online until Shopify has downloaded product images. Shopify says image columns are URLs, used only during import, and the files have to remain on a public site.
  • Orders, customers, discounts, and checkout settings are outside the product CSV. Confirm those exports in your current Webflow plan before you promise them.
  • You will not sort the Shopify CSV in a spreadsheet. Shopify warns that sorting can detach variants and image URLs.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Products and variantspartialcriticalWebflow exports products, variants, and categories to a CSV whose columns match Webflow's own importer. Shopify wants its header row. For a new product, Title is required. A product with variants also needs the handle. Variant rows repeat the handle and leave Title, Description, Vendor, and Tags blank.Build a column map and a pilot file with one simple product and one variant product.
CategoriespartialhighWebflow includes categories in the ecommerce export. Shopify collections are not that column. You map category values onto tags or collections on purpose.Decide the mapping before the full file. Check one product in a collection.
ImagespartialcriticalBoth systems put image URLs in the CSV, not the file bytes. Shopify creates the image only while that URL still answers. Webflow's CMS export also emits Webflow-hosted URLs.Leave the Webflow site up through the import. Open a sample image on the Shopify product.
CSV sizepartialhighWebflow's ecommerce and CMS CSV uploads are documented at 4MB. A large catalog may need more than one Shopify file even when Webflow exported it as one.Split on product boundaries, never in the middle of a variant group.
CMS collectionspartialhighWebflow exports each CMS collection separately. Rich text becomes HTML. Images and files become URLs. Reference fields become text, and multi-references become a comma-separated list. The export is the current locale only.Map blog posts and other collections one by one. Do not assume they rode along with the product file.
Design, interactions, and checkoutmanualcriticalThe ecommerce CSV does not contain the Designer, the cart, or checkout. Shopify checkout is Shopify's. You rebuild the theme and the payment settings.Treat the theme as its own project. Place a test order before DNS.
Orders and customersmanualcriticalShopify's product CSV help describes products, variants, and images. It does not create orders or customer accounts. Passwords are not in a product file.Scope history separately. If you cannot find an export in your Webflow project, say so before cutover.
Discounts and subscriptionsmanualhighThey are not columns in the product export Webflow documents.Recreate the discounts you still run. Place an order that uses one.
LocalespartialhighWebflow's CMS export is per locale view. A single CSV is not every language.Export each locale you sell in, and check one product in each.
Handles and URLsmanualcriticalShopify builds the product URL from the handle. Webflow's path can differ. Neither CSV writes the redirect for you.Make a redirect for every product and collection URL you still need. Test them before DNS.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
Webflow product nameTitletransformRequired when you create products.
Webflow slugHandletransformRequired on variant rows. This becomes the Shopify URL.
Variant rowFollowing CSV rows with the same handletransformLeave Title and body empty on those rows, as Shopify describes.
Price, SKU, and inventoryThe matching Shopify columnstransformPilot one SKU before the full file.
Image URLImage SrctransformThe Webflow URL must stay public during import.
CategoryTag or collectionmanualNot an automatic collection.
CMS rich textHTML in a blog body or a metafieldtransformCollection export is a separate file, current locale only.
CMS referenceText, then a metafield or link you buildmanualWebflow exports references as text.
Designer layout, order, or customer passwordNo destinationunsupportedNot in the product CSV.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Keep Webflow's CSV and the live site until Shopify has its own copies of the images.

  1. Export products, variants, and categories from the Designer.
  2. Export each CMS collection you still need, once per locale.
  3. Save the files without sorting them.
  4. Write down product counts and a list of image URLs.

Proof to capture: The product CSV opens, the row groups match Webflow's product count, and Webflow still serves the images.

Transformation · A script or a careful sheet, saved as UTF-8 with LF linefeeds

Shopify product file

Map Webflow columns onto Shopify's header without splitting a product from its variants.

  1. Start from Shopify's column list, not from Webflow's header.
  2. Put the full product on the first row and variants on the following rows.
  3. Copy image URLs through unchanged.
  4. Save UTF-8 with LF linefeeds, which is what Shopify asks for.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · Shopify product CSV import

Pilot import

See images, variants, and one collection on a staging Shopify store.

  1. Import two products, one of them with variants.
  2. Open the images and the variant prices.
  3. Fix the mapper.
  4. Only then import the full catalog.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Transform

The Webflow header is uploaded as if it were Shopify's

criticallikely likelihood

The import fails, or products land in the wrong columns.

Consequence
The catalog is wrong.
Mitigation
Map to Shopify's header and pilot two products.

Stop if: The pilot products do not match Webflow.

Cutover

Images are imported after Webflow is gone

criticalpossible likelihood

Shopify stores empty images because the URL 404ed.

Consequence
Products go live without photos.
Mitigation
Keep Webflow public until every image has been fetched.

Stop if: A sample image is missing.

Transform

A spreadsheet sort splits variants

criticalpossible likelihood

Shopify warns that sorting can separate variants and image URLs from the product.

Consequence
You overwrite products with bad rows.
Mitigation
Build the file with a script or a stable order. Do not sort it.

Stop if: A variant sits on the wrong product in the pilot.

06Precise timeline

Do the work in this order.

Estimate forA Webflow ecommerce catalog reshaped into Shopify product CSV files, with the theme rebuilt separately.
Total elapsed10 to 25 business days
Active work30 to 80 hours
BufferAdd time for a large CMS, more than one locale, or order history you still have to scope.
01
Days 1 to 3Count products and pages2 to 3 days
02
Days 3 to 4Save the exports1 day
03
Days 4 to 12Two products and a theme slice4 to 8 days
04
Days 12 to 16Full catalog and DNS2 to 4 days
05
Days 16 to 25Watch the shop4 to 9 days
  1. Days 1 to 3 · inventory

    Count products and pages

    4 to 8 hours active2 to 3 days elapsedStore owner waiting
    • Export a product CSV and count products.
    • List collections, locales, and whether you can export orders.

    Depends on: Webflow Designer, Shopify admin

    Stop / go checkpoint

    Map columns?

    Go when: You have a count and a yes or no on orders.

    Stop when: The export is over 4MB and you have no split plan.

  2. Days 3 to 4 · backup

    Save the exports

    2 to 4 hours active1 day elapsedDownloads waiting
    • Store the CSVs unsorted.
    • List image hosts.

    Depends on: Approved scope

    Stop / go checkpoint

    Build the pilot file?

    Go when: The CSV product count matches Webflow.

    Stop when: The count is short.

  3. Days 4 to 12 · pilot

    Two products and a theme slice

    12 to 30 hours active4 to 8 days elapsedTheme work waiting
    • Import two products.
    • Open images and variants.
    • Start the theme and a test payment.

    Depends on: Verified export

    Stop / go checkpoint

    Import the catalog?

    Go when: The two products match, including images.

    Stop when: A variant or image is wrong.

  4. Days 12 to 16 · cutover

    Full catalog and DNS

    6 to 16 hours active2 to 4 days elapsedImage fetches and DNS waiting
    • Freeze Webflow products.
    • Import the final file.
    • Test redirects and one order, then switch DNS.

    Depends on: Passed pilot

    Stop / go checkpoint

    Switch DNS?

    Go when: Counts match, images load, and the test order succeeds.

    Stop when: Webflow is still editing products, or the test order fails.

  5. Days 16 to 25 · observe

    Watch the shop

    4 to 12 hours active4 to 9 days elapsedReal orders waiting
    • Watch checkout and 404s.
    • Keep Webflow online while images and rollback still matter.

    Depends on: Verified cutover

    Stop / go checkpoint

    Close Webflow?

    Go when: Orders work and the checks stay green.

    Stop when: A product, tax, or redirect fails.

07The point of change

Cut over with a way back.

Go live

Cutover

Sell on Shopify while Webflow can still serve the old image URLs.

Recommended window: A morning with someone who can refund the test order and revert DNS.

  1. Freeze Webflow product edits.
  2. Export the final CSV and rebuild the Shopify file.
  3. Import it and compare the product count.
  4. Place a real test order, including shipping and tax.
  5. Switch DNS and leave Webflow up.

Proof to capture: The Shopify product count matches, sample images load from Shopify's CDN, and the test order is paid.

Return to safety

Rollback

Point the domain back at Webflow.

Deadline: Before you unpublish the Webflow site or delete the product CSV.

  1. Stop Shopify ads or other channels that create orders.
  2. Restore DNS to Webflow.
  3. Export any Shopify order that happened after the switch.
  4. Recreate those orders in Webflow only if you have a process for that. The product CSV will not do it.
  5. Confirm a Webflow product page and checkout load.

Proof to capture: Webflow is the live shop, and any Shopify-only orders are listed.

Rollback immediately when
  • Product counts do not match
  • Sample images are missing
  • The test order fails
  • A priority old URL 404s
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingProduct countCompare Webflow with Shopify.The counts match, including hidden or archived items you meant to keep.Count sheet
V-02BlockingOptions and SKUsOpen a multi-variant product.Options, prices, and SKUs match the source row.Variant sample
V-03BlockingPhotosOpen every image on a sample of products.They load from Shopify after the import.Image sample
V-04BlockingPages and postsCompare collection counts per locale.The collections you scoped are present.CMS sheet
V-05BlockingTest orderBuy one product with the payment method you will use.The order is paid and the confirmation arrives.Order receipt
V-06BlockingRedirectsRequest old product URLs.They land on the Shopify product.Redirect log
V-07BlockingA priced pageCheck tax and shipping on the test order.They match the rules you configured.Tax note
V-08BlockingWebflow still upLoad a source image URL.It still answers until you deliberately turn the site off.URL check
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Shopify has taken real orders and you have copied any history you still need off Webflow.

  1. Archive the Webflow CSVs and the Shopify file you imported.
  2. Remove the test product or refund the test order.
  3. Keep Webflow published until image imports and rollback are finished.
  4. Then unpublish it on the date you set.
  5. Cancel Webflow ecommerce only after that.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Webflow: import and export ecommerce productsAccessed 2026-11-05
  2. Webflow: CMS collection CSV import and exportAccessed 2026-11-05
  3. Shopify: product CSVAccessed 2026-11-05