FLUF Connect

Crosslist from Shopify to Square — Sync Your Catalogue to the Till

There is no official Shopify-to-Square tool and Square will not take a Shopify export. Here is exactly what transfers, how Square's two-object catalogue works, and how to keep both in step.

40+ marketplaces, one dashboard Auto inventory sync WhatsApp, email & in-app support
Key Takeaways — Shopify to Square Crosslisting

  • A Square listing is two objects, not one. The ITEM holds the name, description, category and images; the ITEM_VARIATION holds the price, SKU and stock. Every price or stock update has to target the variation — aimed at the item it succeeds and changes nothing, which is the quietest way to ship a price change that never happened.
  • Square money is in minor units. A £12.99 product goes over the wire as 1299. Get that wrong by hand in a CSV and you list a £12.99 item at £1,299.
  • There is no official Shopify-to-Square migration tool, and Square will not accept a Shopify export. Square’s own documentation states that only Square’s Excel and CSV templates are supported and that “custom templates aren’t supported”. Doing this by hand means exporting from Shopify, re-mapping every column into Square’s template, and then re-adding every image by hand, because images do not travel through Square’s CSV at all.
  • The trap nobody warns you about: options. Square allows 6 item options per item; Shopify allows 3. Coming this direction that is a non-issue — but it means the return journey is lossy, so decide your system of record before you start, not after.
  • Square is an unusually forgiving destination. It has no fixed category taxonomy — a category is just an object you create — and no required per-category attributes. There is nothing to map into and nothing to fail validation against, which is the opposite of pushing a catalogue to eBay or Etsy.
  • What actually transfers: title, description, price, SKU, stock, images and a category. What does not: Shopify’s multi-variant structure (FLUF maps one product to one Square item with one variation), collections, metafields, SEO fields, and order history.
  • Sync direction is one-way on sold-detection. An item that sells on Shopify is cleared from Square automatically. An item that sells on Square is not yet detected — you mark it sold in FLUF and FLUF clears everything else.
  • Cost: FLUF Connect is £1 for 7 days, then plans from £9/month (Starter). There is no free plan.
FLUF Connect listings view showing Shopify products being crosslisted to Square
FLUF Connect’s listings view — Shopify products selected and pushed into a Square item library.

On this page

Why put a Shopify catalogue into Square

Because most retail is still not online. US e-commerce was 17.1% of total retail sales in the second quarter of 2026, seasonally adjusted (US Census Bureau, released 18 August 2026). Read the other way round, roughly 83% of American retail still happens in front of a person — at a counter, a market stall, a pop-up, a fair, a warehouse door.

A Shopify store is superb at the 17%. It is not what you want in your hand at a craft market with patchy signal and a queue. Square is: a card reader, a phone, an item library that already knows your prices, and — critically — a plan that costs nothing per month if all you need is to take payments and hold a catalogue.

The two are not really competitors in this configuration. Shopify keeps the online store, the checkout, the international selling and the app stack. Square becomes the till. What you need is for both to be looking at the same inventory, which is the part neither company will do for you.

Two things that stop this before it starts

Square runs in eight countries only, and it cannot sell in a second currency in any configuration. If your Shopify store is outside that list, or prices in more than one currency, this page is not for you — the detail is on Square vs Shopify.

How to crosslist from Shopify to Square

  1. Create a FLUF Connect account and start the £1 seven-day trial.
  2. Connect Shopify. FLUF authenticates against your store with API credentials — a server-side connection, so nothing depends on your browser being open.
  3. Connect Square. Square uses OAuth: you approve FLUF from inside your own Square account. FLUF then resolves your primary location and your store currency. The location matters more than it sounds — Square tracks stock per location, and a catalogue with no resolvable location cannot receive inventory.
  4. Import your Shopify catalogue into FLUF. This reads your products, variants, prices, stock levels and images.
  5. Review the category mapping. Square’s categories are yours, not a fixed tree, so this is mapping onto whatever structure your Square account already uses — or creating one.
  6. Select products and crosslist. For each product FLUF creates a Square ITEM with one ITEM_VARIATION, writes the stock count against your location, and uploads the images.
  7. Check the first ten in Square’s dashboard before you push the rest. Ten items is a cheap way to find out that your description formatting or your SKU scheme needs a tweak.

What happens behind the scenes

Square’s data model is the thing that shapes this entire integration, and it is worth understanding because it explains most of what follows. A Square listing is two objects, not one. The ITEM carries the name, description, category and images. The ITEM_VARIATION carries the price, the SKU and the stock. FLUF creates both in a single call and keeps both identifiers, because price and stock writes have to target the variation — aim them at the item and they succeed silently while changing nothing.

Two more details that matter in practice. Square money is in minor units — integer pence or cents, not decimals — so a £12.99 product is sent as 1299. And every create carries an idempotency key, which is what stops a retried request from producing two identical items in your library.

What transfers, field by field

Shopify field Square field Transfer status Notes
Title ITEM.name ✅ Automatic Square’s limit is 512 characters — far above anything Shopify will hand it
Description ITEM.description ✅ Automatic Square’s description field is plain text and preserves newlines. HTML is stripped rather than rendered
Price ITEM_VARIATION.price_money ✅ Automatic Converted to minor units. Currency comes from your Square account, not from Shopify
SKU ITEM_VARIATION.sku ✅ Automatic If the Shopify product has no SKU, FLUF generates a stable one so the item is still matchable later
Stock quantity Inventory count at your location ✅ Automatic Written as a separate call after the item exists. A stock-write failure is logged, not treated as a failed listing
Images ITEM.image_ids ✅ Automatic Uploaded best-effort. The first image becomes the item’s icon in the Square POS app
Product type / collection ITEM.categories ⚡ Smart mapped Square categories are merchant-defined. Since December 2023 an item can belong to several
Variants (size, colour…) ⚠️ One variation only See the section below — this is the significant limitation
Barcode ITEM_VARIATION.upc ⚠️ Manual Square requires 12–14 digits; a non-conforming barcode is better omitted than rejected
Shopify collections ❌ Not transferred Collections are a Shopify merchandising construct with no Square equivalent
Metafields ❌ Not transferred
SEO title and description ❌ Not transferred Square Online has its own SEO fields; they are not populated from Shopify
Compare-at price ❌ Not transferred
Customers and order history ❌ Not transferred This is inventory crosslisting, not a migration

Legend: ✅ automatic · ⚡ smart mapped · ⚠️ needs your attention · ❌ not available.

Square’s field limits, for reference

Field Limit
Item name 512 characters
Item description (plain, deprecated) 4,096 characters
Item description (HTML) 65,535 characters
Variation name 255 characters
Variations per item 250
Item options per item 6
Barcode (UPC) 12–14 digits
Images per item No documented limit
Total catalogue size No documented limit

Source: Square CatalogItem and CatalogItemVariation references, checked 27 August 2026. Two of those rows are worth reading carefully: Square publishes no maximum images per item and no maximum catalogue size. If you see a comparison page quoting 1,000 or 10,000 as a catalogue cap, it has misread Square’s batch limits — 1,000 objects per batch and 10,000 per request — as a limit on the library itself.

The variant problem, and how FLUF handles it

This is the one thing to understand before you push anything.

Shopify’s product model is one product with many variants — a t-shirt in five sizes and three colours is one product with fifteen variants. Since 15 October 2025 Shopify allows up to 2,048 variants per product for all merchants, with no plan gating (Shopify changelog), capped at three options.

Square’s model is structurally similar — up to 250 variations per item, driven by up to six item options. But FLUF’s crosslisting model is one product, one listing, which maps to one Square item with exactly one variation carrying the price, SKU and stock.

What that means in practice:

  • If your Shopify products are single-variant — one SKU, one price, one stock number, which describes most vintage, art, furniture, one-off and made-to-order catalogues — this is a clean, complete transfer. Nothing is lost.
  • If your Shopify products are multi-variant, each FLUF product becomes one Square item. Where your inventory is already organised as one FLUF product per sellable SKU, you get one Square item per SKU, which is correct and sellable but flattens the size-and-colour grid your Shopify customers see into a list.

For a market stall this is frequently the better shape — you tap “Blue Hoodie L” rather than tapping a product then two option pickers while someone waits. For a deep apparel catalogue it is a real limitation and you should know about it before you push a thousand items, not after.

The direction that actually loses data

Worth stating even though it is the reverse of this page’s direction, because it determines which platform should be your system of record. Square permits six item options; Shopify permits three, hard. Shopify’s own migration documentation is blunt about the consequence: products with more than three options import with no options at all. Not an error, not a warning — they simply arrive flat (Shopify help centre).

So: build the catalogue in Shopify and push to Square, not the other way round. Going this direction, the structural loss is recoverable. Going the other, it is silent.

Categories: the part that is easier than you expect

If you have ever pushed a catalogue to a marketplace, category mapping is the step you brace for. A missing required attribute fails the listing outright; a leaf category has its own permitted values; a colour that is not on the approved list is a rejection rather than a warning.

Square does none of that. Square has no product taxonomy at all. A category on Square is simply another catalogue object that the merchant created, sitting in the same object model as items, discounts, taxes and measurement units. There is no tree to map into, no leaf nodes, no required per-category parameters, and nothing to fail validation against.

Two practical consequences. First, a Shopify catalogue can go into Square without the attribute archaeology that a marketplace demands — if the destination category exists in your Square account, FLUF maps to it; if it does not, the item still lists. Second, since December 2023 an item can belong to several categories at once: the old single category_id field is deprecated in favour of a categories array with an ordinal per membership (Square CatalogItem reference). If you are still writing to category_id in a home-grown script, you are writing to a deprecated field.

The flip side is that Square gives you no structure for free. Whatever organisation your Square library has is organisation you built. If your Shopify store leans on collections to merchandise, expect to recreate that shape deliberately rather than inherit it.

Images, stock and the two calls that are allowed to fail

A Square item is created in one request, but the things that make it useful in a shop are not part of that request. Stock is written separately, against a location. Images are uploaded separately and attached afterwards. FLUF treats both as best-effort rather than fatal, and that design choice is worth explaining because it changes what you will see.

If the image upload fails — a slow origin, a rate limit, an unusual file — the item still exists and is still sellable. You get a Square tile with no picture rather than a missing product. If the stock write fails, the same: the item is listed, the failure is logged, and the count can be corrected. The alternative design, where either failure aborts the whole create, produces a much worse outcome at a market: half your catalogue missing because a CDN was slow twenty minutes ago.

What that means for you is a small habit. After a first bulk push, sort your Square library by image and look for grey tiles. It is a two-minute check that catches the one category of problem this design deliberately lets through.

On limits: Square publishes no maximum number of images per item and no maximum catalogue size. The first image becomes the item’s icon in the POS app, so the ordering of your Shopify images decides what your staff see on the till — which is not always the same photograph you would lead with online. A clean, well-lit, cropped shot beats a moody lifestyle image on a 4-inch tile.

Editing, versioning and why a stale write fails

Square uses optimistic concurrency. Every catalogue object carries a version, and an update must present the version it is modifying. If someone changed the price on the till while FLUF was preparing an edit, the version has moved and the write is rejected rather than silently overwriting their change.

This is the right behaviour and it occasionally looks like a bug. An edit that fails immediately after you changed something in Square’s own dashboard is the system protecting the more recent change. FLUF re-reads and retries; the practical advice is simply not to bulk-edit the same items in both places at the same moment.

Creates carry an idempotency key derived from the product, which is what prevents a retried request — after a timeout, say — from leaving two identical items in your library. Duplicate items in a POS catalogue are worse than they sound: staff pick whichever one is on top, and half your stock decrements against an item nobody is watching.

Doing it by hand, and why you probably should not

There is no official Shopify-to-Square connector. Square has a Shopify-shaped hole where Shopify has a Square-shaped importer — Shopify wants your business, so it built Store Migration to pull catalogues out of Square. Nothing pushes the other way.

The manual route is Square’s generic bulk item import, and its constraints are specific:

  • .xlsx or.csv only, using Square’s own template. Square’s documentation states plainly that “custom templates aren’t supported” — you cannot hand it a Shopify export (Square help centre).
  • 30,000 items per upload.
  • Two modes: Modify, or Replace — and Replace deletes your existing catalogue first. Choosing the wrong one on a live library is not a recoverable afternoon.
  • Images do not import. Every one is re-added by hand.
  • Square explicitly warns that opening its export in a spreadsheet mangles SKUs — scientific notation, dropped leading zeros. If your SKUs are numeric, that corruption is silent.

And the Shopify export has its own hazards. It is one row per variant. Shopify warns that “sorting your CSV file in a spreadsheet program can cause product variants or image URLs to become disassociated”. Images in the export are URLs, not files, and they only resolve while the original store is live. Any product with more than 100 variants triggers an emailed export rather than a download, and large exports can time out (Shopify help centre).

None of that is impossible. It is simply a day of spreadsheet work that has to be repeated every time the catalogue changes — which is the actual argument for a sync layer rather than a one-time export.

What syncs and what does not

Behaviour Supported Detail
Create a Square item from a Shopify product Yes Item plus variation, stock, images, category
Edit a live Square item Yes Read-modify-write against Square’s object version
Delete a Square item Yes
Sells on Shopify → removed from Square Yes The direction that stops you overselling
Sells on Square → cleared from Shopify No Square sold-detection is not wired. Mark it sold in FLUF and FLUF clears the rest
Square order sync No Square revenue does not appear in FLUF’s order figures
Automated relisting No Not applicable to Square
Offer management No Square has no offer mechanic
Multi-variant grid No One product, one Square item, one variation

The row that deserves emphasis is the one-way sold-detection. It is a deliberate position rather than an oversight: FLUF drives Square’s catalogue, inventory and delist paths reliably, and emits sold-signals only where it can read a genuine sale. For a shop-counter use case this is usually the right way round anyway — the stock you sell at the till is stock you were standing next to, and marking it sold in FLUF takes a moment.

The cost of adding Square, in one line

Adding Square as an in-person channel in the UK costs £0 a month and 1.75% per tap. Adding Shopify POS Pro to your existing plan costs £69 per location per month and 1.7% per tap — five basis points of card rate against £828 a year. You would need to be taking well over £1.6m a year at that counter for the rate to repay the subscription.

That is the whole of the cost argument for this direction. If you want the full plan-by-plan and country-by-country breakdown — including the fact that the answer inverts in the United States — that belongs on Square vs Shopify rather than here.

A real workflow, before and after

Before. You run a Shopify store. Twice a month you do a market. The night before, you export a product CSV, open it in a spreadsheet, cut it down to what fits in the van, re-map the columns into Square’s template, upload it, then spend an hour dragging images onto items so the POS tiles are not grey rectangles. At the market you sell eleven things. On Monday you go back into Shopify and decrement eleven stock counts by hand — or you forget, and sell one of them again online the following Thursday to someone who then gets an apologetic refund.

After. The catalogue lives in FLUF. Shopify and Square are both channels. New stock goes out to both. You sell eleven things at the market, mark them sold in FLUF on the drive home, and Shopify is decremented before you have unloaded the van. Anything that sells on Shopify during the market disappears from the Square till by itself.

The refund you did not have to issue is the entire return on this. Overselling is expensive twice — once in the refund and once in the review.

Mistakes that cost money

Using Square’s Replace import mode on a live catalogue. It deletes everything first. Modify is almost always what you meant.

Assuming price updates land on the item. Price and stock live on the variation. A write aimed at the item succeeds and changes nothing — the quietest possible failure, and the reason FLUF stores both identifiers.

Opening a Square export in Excel. Numeric SKUs become scientific notation and leading zeros vanish. Square warns about this and people do it anyway.

Building the catalogue in Square first. If you ever want it in Shopify, the three-option cap will flatten anything with four or more options and will not tell you. Shopify is the safer system of record.

Expecting a Square sale to clear your other channels. It does not yet. Mark it sold in FLUF.

What FLUF Connect costs

FLUF Connect is £1 for 7 days, then plans from £9/month (Starter). The rest of your first month is charged after the seven days, so you are not paying more, just not all of it up front. There is no free plan.

Automation — relisting, offer management and bulk operations — is included in every plan, not sold as a paid add-on. Square is one of {channel_count} channels FLUF drives, so the same catalogue can also reach marketplaces from the same place. Full details on the pricing page.

Sources and verification

Neither Square’s support centre nor Shopify’s help centre publishes last-updated dates on its articles, so figures drawn from them are marked as checked on 27 August 2026 rather than dated. Both companies geo-serve pricing; country-specific figures say which country they are for.

Related guides

Frequently Asked Questions

Yes, with a sync layer. There is no official Shopify-to-Square connector — Shopify built a migration tool to pull catalogues out of Square, but nothing pushes the other way. FLUF Connect drives both as channels, so your Shopify catalogue populates a Square item library and stays in step with it, including clearing a Square item when the product sells on Shopify.

No. Square's documentation states that only Square's own Excel and CSV templates are supported and that custom templates aren't supported, so a Shopify export has to be re-mapped column by column into Square's template. Images do not travel through Square's CSV at all and have to be re-added by hand, and the Replace import mode deletes your existing catalogue before loading the new one.

Title, description, price, SKU, stock quantity, images and a category. Shopify collections, metafields, SEO fields, compare-at prices, customers and order history do not — this is inventory crosslisting rather than a migration. Prices are converted to Square's minor units, so £12.99 is sent as 1299, and the currency comes from your Square account rather than from Shopify.

FLUF maps one product to one Square item with exactly one variation carrying price, SKU and stock. Single-variant catalogues — vintage, art, furniture, one-offs — transfer cleanly with nothing lost. Multi-variant products become one item per sellable SKU, which flattens the size-and-colour grid into a list. At a market stall that is often the better shape, because you tap the item rather than the item plus two option pickers.

Yes. Square tracks stock per location, so FLUF resolves your primary location when you connect and writes inventory counts against it. A Square account with no resolvable location can hold a catalogue but cannot receive stock, which shows up as items that list correctly and then read as unavailable at the till.

Not in the way a marketplace does. Square has no product taxonomy at all — a category is just another object you created, with no leaf nodes and no required per-category attributes. There is nothing to fail validation against, which makes Square an unusually forgiving destination. Since December 2023 an item can also belong to several categories at once.

Not automatically yet. Square sold-detection is not wired, so you mark the item sold in FLUF and FLUF clears it from your other channels. The other direction does work automatically: an item that sells on Shopify is removed from Square without you doing anything, which is the direction that stops you overselling online while the stock is in a van.

Almost certainly because it was aimed at the item rather than the variation. A Square listing is two objects — the item holds name, description, category and images, the variation holds price, SKU and stock — and a price write against the item succeeds while changing nothing. FLUF stores both identifiers for exactly this reason. A rejected edit is different and usually means the object version moved because someone changed it on the till.

Square publishes no maximum catalogue size and no maximum number of images per item. Be careful with figures you see elsewhere: the 1,000 and 10,000 numbers in Square's API documentation are objects per batch and objects per request, not a limit on the library. The one real cap on the manual route is 30,000 items per CSV upload.

FLUF Connect plans start at £9/month on Starter, with Seller at £29/month and Pro at £99/month; every plan is unlimited on listings and marketplaces, and the tiers differ by which automations they include and how often we check your channels for sales. There is no free plan. On the platforms themselves, adding Square in the UK costs £0 a month plus 1.75% per tap, against £69 per location per month for Shopify POS Pro at 1.7% — so for most single-counter sellers Square is the cheaper way to add in-person selling.

Start Crosslisting Today

Plans from £9/month. Set up in under 10 minutes.

×
Scroll to Top