# Square Online to Shopify Migration: Product Import Guide

> Square Online exports modifier sets as single rows Shopify cannot read as variants. Here is how to migrate your catalogue and handle the conversion.

- Published: 2026-07-17
- Author: Importier Team
- Category: Import Guides / Platform Migrations
- Canonical: https://www.importier.app/blog/square-online-to-shopify-migration

---

A gift shop owner runs their storefront and online sales through Square Online (formerly Weebly). Their catalogue has 280 products, each sold in multiple colours and sizes, configured as modifier sets in Square. They export their product data and open the CSV: 280 rows, one per product, with modifier set data packed into additional columns. When they upload the file to Shopify's native importer, the result is 280 products with no variants and no images.

Square Online uses a fundamentally different model for product options than Shopify. Square calls them modifier sets; Shopify calls them variants. They represent the same merchant need: a mug that comes in Red, Blue, and Green in both 11oz and 15oz. But the underlying data structure and how it appears in an export file are different in ways the Shopify native importer cannot bridge.

This guide covers what the Square Online export contains, why Shopify's native importer cannot use it directly, and how to complete the square online to shopify migration including correct variant generation.

## Why Merchants Move from Square Online to Shopify

Square Online emerged from Weebly, which Square acquired in 2018. The platform serves merchants who already use Square for point-of-sale and want an integrated online channel without switching payment processors. Its product catalogue and online store features are designed around Square's ecosystem: square payments, Square inventory sync, and Square's modifier-based product configuration.

For merchants with straightforward product catalogues, Square Online works well within that ecosystem. The friction emerges as stores grow. Shopify's app ecosystem, theme customisation depth, and ecommerce-specific feature set outpace Square Online's capabilities for merchants who want to invest in their online channel as a primary revenue stream. The migration typically happens when a merchant has outgrown Square Online's native feature set and wants Shopify's broader capabilities.

<Callout label="The naming confusion">Square Online was previously called Weebly Online Store, then Weebly powered by Square, and most recently Square Online. Merchants who originally built their store on Weebly before the Square acquisition may still refer to their store as "Weebly". For this migration guide, Square Online and Weebly refer to the same platform — the product export format is the same regardless of which era the store was created in.</Callout>

## What a Square Online Product Export Contains

Square Online's product export generates a CSV from the Square Item Library, not a Shopify-format file. The standard Square export includes: Token (Square's internal item ID), Item Name, Description, Price, SKU, Category, Enabled, Permalink, and then one or more Modifier Set columns depending on the modifiers configured for each item.

None of the Square field names match Shopify's required column names. Item Name is not Title. Description often carries Square-specific formatting. Price is not Variant Price. Token has no equivalent in Shopify. Category does not map cleanly to Shopify's Type field.

<Compare withoutTitle="Square Online export" withTitle="Shopify-ready format" withoutItems="Token (Square internal ID, not usable in Shopify) | Item Name and Description in Square format | Modifier sets as additional columns (Size: Small, Medium, Large) | One row per item regardless of variant count | Images not included in the basic CSV export | Price as a single value, not per-variant" withItems="Title and Body (HTML) in Shopify field format | Variant rows: one row per variant combination sharing a Handle | Option1 Name and Option1 Value columns for variant type and value | Image Src as a resolvable URL in the image column | Variant Price per row if pricing differs by variant | Handle field present and consistent across all variant rows for a product" />

The most significant structural issue is the modifier set data. Square's [Catalog API documentation](https://developer.squareup.com/docs/catalog-api/what-it-does) describes how Square stores modifier sets as a separate entity linked to items. In the CSV export, each modifier set becomes one or more columns, with the modifier values listed within that column for each item. A mug with a Colour modifier (Red, Blue, Green) and a Size modifier (11oz, 15oz) exports as one row with "Red, Blue, Green" in one column and "11oz, 15oz" in another.

Shopify needs six rows for that product: Red/11oz, Red/15oz, Blue/11oz, Blue/15oz, Green/11oz, and Green/15oz. Each row shares the same Handle value and carries the option name and value in the Option1 Name, Option1 Value, Option2 Name, Option2 Value columns. The Square export format cannot produce this structure directly.

![Printed CSV spreadsheet on a white desk showing rows of product data with modifier columns containing comma-separated values beside an empty Shopify template column.](/blog/square-online-to-shopify-migration/01.jpg)

Square's standard CSV export also does not include product images. Images in Square Online are stored in Square's CDN and are accessible via the item's permalink, but the CSV does not include image URLs as a field. Images require a separate export step or must be downloaded from the Square admin's image gallery and re-hosted before the Shopify import.

## Why Shopify's Native Importer Cannot Process a Square Export

Shopify's built-in CSV importer requires exact column names and one row per variant. When a Square Online CSV is uploaded, the importer encounters Token, Item Name, and modifier set columns that do not match any Shopify field names. It either fails on column validation or ignores all unrecognised columns, creating empty product shells with none of the variant or image data.

Even if column names were manually renamed, the single-row-per-item structure with modifier sets in comma-separated columns cannot produce the multi-row variant structure Shopify expects. A merchant with 280 products and an average of 6 variant combinations each would need to manually write 1,680 rows from 280 rows, a reformatting task that scales with catalogue size.

<Divider label="The migration path" />

## Square Online to Shopify Migration: Column Mapping and Variant Generation

The Square Online to Shopify migration requires two transformations: column remapping and modifier-set-to-variant-row expansion.

<PullQuote>A Square Online export contains all the product data the Shopify catalogue needs. The gap is translating Square's modifier-set column structure into Shopify's multi-row variant format.</PullQuote>

Importier's column mapper handles the renaming step: Item Name maps to Title, Description maps to Body (HTML), Price maps to Variant Price, Category maps to Type, SKU maps to Variant SKU. The mapping is saved for subsequent imports from the same Square format.

The variant generation step reads the modifier set columns and expands each item row into the full set of variant combinations. For the mug with three colours and two sizes, Importier generates six variant rows with the correct Handle (derived from the item name), Option1 Name as "Colour", Option1 Value as Red/Blue/Green across rows, Option2 Name as "Size", and Option2 Value as 11oz/15oz across rows. Each variant row inherits the base product data (Title, Description, Category) from the parent item row.

<Steps items="Step 1: From Square Online, go to Items → Export and download your item library as a CSV. If your store has modifier sets configured, verify the export includes the modifier columns before uploading. | Step 2: In Importier, start a new import and upload the Square CSV. The column mapper identifies the Square fields and presents the mapping interface. Map Item Name to Title, Description to Body (HTML), Price to Variant Price, Category to Type, and SKU to Variant SKU. | Step 3: In the modifier mapping step, identify which modifier set columns represent variant options. Map each modifier set column to an Option Name (e.g., the 'Colour' modifier set column maps to Option1 Name with value 'Colour'). Importier expands each item row into the full variant combination matrix. | Step 4: For images, download your Square product images from the Square Online admin image library or from the item permalink pages. Re-host them to a CDN or cloud storage bucket and add the image URLs to the CSV before or after importing. Alternatively, import products first, then add images via Shopify admin bulk edit. | Step 5: At the description generation step, choose whether to keep existing Square descriptions or generate new ones with AI. Square product descriptions are often brief — written for Square's product page layout, which is simpler than most Shopify themes. AI regeneration produces descriptions structured for Shopify's longer description format. | Step 6: Complete the import. Review a sample of products with multiple modifier sets in Shopify admin to confirm variant rows were generated correctly before activating sales channels." />

<TipBox />

![Open laptop on a clean desk beside a notepad showing a drawn diagram of one product row expanding into multiple variant rows with arrows.](/blog/square-online-to-shopify-migration/02.jpg)

## Handling Square-Specific Fields

Square's Token field is an internal database identifier with no equivalent in Shopify. It can be excluded from the column mapping entirely. If the merchant wants to preserve a reference to the original Square item ID for cross-referencing during a transition period, it can be mapped to a Shopify metafield, but this is optional and the field has no functional role in the Shopify store.

Square's Enabled column indicates whether an item is active in the Square catalogue. Importier maps this to Shopify's Published status during import: enabled items import as Active, disabled items import as Draft. This behaviour can be overridden at import time if the merchant prefers to import all products as Draft first for review before publishing.

The Permalink field contains the Square Online URL for each product. These URLs do not carry over to Shopify; Shopify generates new handles and URLs from the product title. For merchants with significant SEO equity in their Square Online URLs, the [WooCommerce to Shopify migration guide](https://importier.app/blog/woocommerce-to-shopify-migration) covers URL redirect strategy for migrating SEO equity, which applies equally to a square online to shopify migration.

## AI Description Refresh for the Square Online to Shopify Migration

Square Online product descriptions are typically short. The platform's default product page layout accommodates brief descriptions, and many Square Online merchants write descriptions optimised for mobile Square POS screens rather than desktop ecommerce browsing.

A square online to shopify migration is a natural moment to expand descriptions. Shopify themes can display longer, richer product descriptions that include material details, use-case scenarios, size guides, and care instructions. Importier's AI description generation produces descriptions in this richer format from the product data available in the Square export — title, category, modifier names (which carry attribute information), and SKU.

The [Squarespace to Shopify migration guide](https://importier.app/blog/squarespace-to-shopify-migration) covers a similar description quality opportunity for that platform's typically brief product descriptions. The [Wix to Shopify migration guide](https://importier.app/blog/wix-to-shopify-migration) addresses the same refresh step for Wix merchants whose product content was written for Wix's page builder format.

![Professional writer at a desk reviewing a printed product description page with a pen making notes in a bright naturally lit workspace.](/blog/square-online-to-shopify-migration/03.jpg)

## GTIN and Category Data

Square Online does not have a dedicated GTIN or barcode field in its standard item library. Merchants who track barcodes for their products in Square typically store that data in the SKU field or a custom field. Importier's barcode lookup can populate GTINs post-import for products where barcodes were not captured in Square.

Square's Category field maps to Shopify's Type field during column mapping. Square Online supports nested categories (e.g., "Gifts > Mugs"), and the full category path or the leaf category can be used as the Product Type depending on the merchant's preference. For merchants who want to use Shopify's Standard Product Taxonomy for enhanced search and Shopping features, Importier's Industry Pack assignment adds the correct taxonomy category to products at import time alongside the mapped Square category.

![Retail gift shop interior showing neatly organised product shelves with category labels visible on each shelf section under bright store lighting.](/blog/square-online-to-shopify-migration/04.jpg)

According to Square's [item import and export documentation](https://squareup.com/help/us/en/article/5208-import-or-export-your-square-items), the standard Square item library export includes the fields listed above. Merchants with custom fields configured in Square Online will need to check whether those fields appear in the export and map them accordingly during the Importier column mapping step.

![Warehouse inventory manager holding a barcode scanner beside a shelving unit stacked with labelled product boxes under bright industrial lighting.](/blog/square-online-to-shopify-migration/05.jpg)

## Key Takeaways

A square online to shopify migration requires column remapping and modifier-set-to-variant-row conversion. The data exists in the Square export; the transformation step produces the structure Shopify needs.

Key points:

- Square Online exports one row per item with modifier sets in additional columns. Shopify requires one row per variant combination. Importier expands modifier set columns into the full variant matrix during import.
- Column names in the Square export do not match Shopify's required fields. Every substantive field needs remapping: Item Name → Title, Description → Body (HTML), Price → Variant Price, Category → Type.
- Square's standard CSV export does not include product image URLs. Images require a separate export step or download from the Square admin and re-hosting before they can be linked during the Shopify import.
- The Token field (Square's internal item ID) has no Shopify equivalent. Exclude it from the column mapping or map it to a metafield if a cross-reference is needed during transition.
- Square Online product descriptions are often short, written for Square's compact product page layout. AI description generation at import time expands them to match Shopify's richer description format.
- The Enabled column in Square maps to Shopify's Published status. Disabled Square items import as Draft products unless the merchant overrides this setting at import time.

Migrate your Square Online catalogue at [importier.app](https://importier.app). Column mapping, modifier-to-variant conversion, and AI description generation are available on the Growth plan and above.
