FLUF Connect

Crosslist from WooCommerce to Square — Sync Your WordPress Store to the Till

There is an official Square plugin for WooCommerce, and its users rate it 2.1 out of 5. Here is what actually transfers from a WordPress store to Square, and the SSL problem that breaks both routes.

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

  • There is an official Square plugin for WooCommerce, and its own users rate it 2.1 out of 5. Of 121 reviews on WordPress.org, 82 are one star — 68% of everything written about it (WordPress.org plugin directory, checked 27 August 2026). It has 80,000+ active installations. That combination — heavily used, heavily disliked — is the single most important fact on this page.
  • Its sync is bidirectional with a system of record you nominate — and the official documentation never defines what happens on conflict. There is no conflict-resolution section. A merchant cannot answer “which side wins if both changed?” from the docs, which is exactly the question that matters when stock is involved.
  • WooCommerce is the WordPress e-commerce plugin, and it is the largest e-commerce platform by installation count — 8.1% of all websites and 48.1% of all e-commerce systems whose platform is known (W3Techs, 27 August 2026). WordPress itself runs 40.7% of the web.
  • Square is an unusually forgiving destination. No product taxonomy, no leaf categories, no required per-category attributes. Nothing to map into and nothing to fail validation against.
  • What transfers: title, description, price, SKU, stock, images and a category. What does not: WooCommerce variable-product structure, product tags, attributes, custom fields, reviews and order history.
  • SSL is not optional on either side. Square’s own plugin requires an SSL certificate; WooCommerce’s REST API authentication over Basic auth stops working the moment the site does not correctly report itself as secure. If your WordPress site has a certificate but a broken is_ssl — behind a reverse proxy, typically — connections fail with a 401 that reads like a permissions problem and is not.
  • Cost: FLUF Connect is £1 for 7 days, then plans from £9/month (Starter). There is no free plan.
FLUF Connect listings view showing WooCommerce products being crosslisted to Square
FLUF Connect’s listings view — WooCommerce products selected and pushed into a Square item library.

On this page

Why a WooCommerce store adds Square

If you run a WooCommerce store — the WordPress e-commerce plugin that powers 48.1% of all online stores whose platform is identifiable, on a WordPress base that accounts for 40.7% of the entire web — you already own your storefront outright. No monthly platform fee, no transaction surcharge for using the gateway you prefer, and a database you can query yourself. That is the whole appeal of WooCommerce, and it is a real one.

What a WordPress site cannot do is take a card at a market stall with one bar of signal. For that you want a card reader, a phone, and an item library that already knows your prices — which is Square, on a plan that costs nothing per month.

The reason this matters more than it sounds: US e-commerce was 17.1% of total retail sales in the second quarter of 2026 (US Census Bureau, released 18 August 2026). Roughly 83% of retail still happens in front of a person. A WooCommerce store is excellent at the 17%; Square is how you reach into the rest without rebuilding anything.

Before going further: Square operates in eight countries — the United States, Canada, the United Kingdom, Ireland, France, Spain, Australia and Japan — and cannot sell in a second currency in any configuration. A WordPress store outside that list has no Square option. The full comparison lives on Square vs Shopify.

The official Square plugin, and what its reviews actually say

Unlike Shopify, WooCommerce has a first-party answer to this problem. Square for WooCommerce is an officially maintained plugin, version 5.4.3, last updated 6 August 2026, tested against WordPress 7.0.4, with 80,000+ active installations. It handles payments — cards, Apple Pay, Google Pay, Square Gift Cards and, in the US only, Cash App Pay — plus product and inventory sync covering names, stock, prices, categories and images (WordPress.org).

It is also rated 2.1 out of 5.

Rating Reviews Share
5 stars 26 21%
4 stars 4 3%
3 stars 6 5%
2 stars 3 2%
1 star 82 68%

That distribution is bimodal rather than mediocre, and for an officially maintained integration with 80,000 installs it is genuinely unusual. It deserves to be read carefully rather than used as a stick.

What the support forum shows

The recurring failures on the plugin’s support forum cluster tightly, and they are not cosmetic:

  • Sync failing in one direction silently — “Order Status/Inventory not pushing from Woo to Square”.
  • Images not syncing to Square.
  • Checkout-level payment failures — “Payment nonce is missing”, “Card nonce already used with a different idempotency key”.
  • Settings that will not persist — the synchronise configuration failing to save.
  • Products missing after sync despite SKUs being present, which is the matching layer failing rather than the transport.
  • Digital wallet buttons disappearing from the classic cart after a WooCommerce update.

The gap in the documentation

The plugin’s sync is bidirectional: WooCommerce to Square and Square to WooCommerce, with the merchant nominating one platform as the system of record which then pushes updates (WooCommerce documentation).

What the official documentation does not contain is any section on conflict resolution. It does not define supported product types, variation limits, SKU matching rules, multi-location behaviour or multi-currency handling either. The absence is itself the finding: a merchant cannot answer “will my variable products survive this, and which side wins if both changed?” from the docs. When the thing being synchronised is stock, that is not a documentation nicety.

Requirements, for completeness: WooCommerce 10.8 or later, PHP 7.4 or later, and — stated explicitly — “An SSL certificate must be installed on your site to use Square.” That last one has its own section below, because it fails in a way that looks like something else.

Where a separate sync layer differs

This page exists because there is a second way to do it, and the trade-off is worth stating plainly rather than pretending the official plugin does not exist.

The Square plugin for WooCommerce couples payments and catalogue sync in one component installed inside your WordPress site. That is convenient, and it means a WordPress update, a PHP version bump or a theme conflict can take out your card processing and your inventory sync together. Several of the forum reports above are exactly that shape.

FLUF Connect does something narrower: it treats WooCommerce and Square as two channels of one catalogue and synchronises inventory between them from outside both. It does not touch your checkout. Your WooCommerce payments stay with whatever gateway you already use; Square handles the money taken at the till. If FLUF stops, your shop keeps selling.

It also means the same catalogue reaches everything else at once. Square is one of {channel_count} channels — a WooCommerce store pushing to Square can push to marketplaces from the same place, which the Square plugin by definition cannot do.

How to crosslist from WooCommerce to Square

The path runs through your WordPress admin, because that is where a WooCommerce store’s credentials live.

  1. Install the FLUF Connect plugin for WooCommerce from your WordPress admin — Plugins → Add New, search for FLUF Connect, install and activate. This is the same install flow as any other WordPress plugin and requires no code.
  2. Connect your WooCommerce store. FLUF authenticates against the WooCommerce REST API using a consumer key and secret pair. These are generated inside WooCommerce → Settings → Advanced → REST API in your WordPress admin, and they are what the connection depends on — not your WordPress login.
  3. Connect Square via OAuth: you approve FLUF from inside your own Square account. FLUF resolves your primary Square location and store currency at this point. The location matters because Square tracks stock per location; a catalogue with no resolvable location can hold items but cannot hold inventory.
  4. Import your WooCommerce catalogue. Products, prices, stock levels, SKUs and images are read into FLUF.
  5. Review category mapping against your Square library.
  6. Select products and crosslist. Each becomes a Square ITEM with one ITEM_VARIATION, plus a stock write against your location and an image upload.
  7. Check the first ten in Square’s dashboard before pushing the rest.

Square’s data model is the thing that shapes the result. A Square listing is two objects. The item carries the name, description, category and images; the variation carries the price, SKU and stock. Price and stock writes must target the variation — sent to the item they succeed and change nothing. Square money is also in minor units, so a £12.99 WooCommerce price goes over the wire as 1299.

The SSL problem that breaks both integrations

This one deserves its own section because it produces a confidently wrong diagnosis, and it catches WordPress sites specifically.

WooCommerce’s REST API accepts key-and-secret credentials over HTTP Basic authentication only when the request is genuinely secure. A very common WordPress hosting shape — a site behind a reverse proxy, a load balancer or a CDN that terminates TLS upstream — has a perfectly valid certificate at the edge while WordPress itself does not know the request arrived over HTTPS. The site looks secure in a browser. WooCommerce refuses the credentials.

What you see when that happens is a 401 with the message “Sorry, you cannot list resources.” — and that message is a trap in three separate ways:

  • It is not a permissions error. It is WooCommerce’s generic reply to an unauthenticated request. The fix is the credentials or the SSL detection, not the user’s role. Measured against a known-healthy store: correct key and secret returns 200; correct key with a wrong secret returns this exact 401; an entirely unknown key returns the same 401.
  • Status code is the real signal. 401 means never authenticated. 403 means authenticated but under-privileged. Only 403 is about permissions.
  • The message is localised. An Italian store returns “Non puoi creare una lista delle risorse.” Never diagnose by matching the string; use the error code and the HTTP status.

The cheap, sound test of a WooCommerce store’s credentials is a read-only request to GET /wp-json/wc/v3/system_status using the real key and its real secret, and expecting a 200. Anything built on sending a deliberately bogus key proves nothing, because every healthy WordPress store rejects a bogus key the same way.

Square’s plugin hits the same wall from the other side — it states an SSL certificate is required — which is why a store with a proxy-terminated certificate can fail both integrations simultaneously and look like it has a Square problem. It has a WordPress problem.

What transfers, field by field

WooCommerce field Square field Transfer status Notes
Product name ITEM.name ✅ Automatic Square’s limit is 512 characters
Long description ITEM.description ✅ Automatic Square’s field is plain text and preserves newlines; WordPress block markup and HTML are stripped rather than rendered
Regular price ITEM_VARIATION.price_money ✅ Automatic Converted to minor units; currency comes from Square, not from WooCommerce
SKU ITEM_VARIATION.sku ✅ Automatic A stable one is generated if the WooCommerce product has none
Stock quantity Inventory at your Square location ✅ Automatic A separate call after the item exists; a failure here is logged, not fatal
Product gallery ITEM.image_ids ✅ Automatic Best-effort. The first image becomes the POS tile icon
Product category ITEM.categories ⚡ Smart mapped Square categories are merchant-defined; an item may sit in several
Variable product variations ⚠️ One variation only See below
Sale price ❌ Not transferred Square has its own discount objects, driven separately
Product tags ❌ Not transferred No Square equivalent
Product attributes (pa_*) ❌ Not transferred Square has item options but they are not populated from WooCommerce attributes
Custom fields / meta ❌ Not transferred
Reviews ❌ Not transferred
Customers and orders ❌ Not transferred This is inventory crosslisting, not a migration

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

Variable products: the WooCommerce-specific wrinkle

WooCommerce distinguishes simple products from variable products, and the distinction decides how cleanly this works.

A simple product — one price, one SKU, one stock number — maps perfectly onto a Square item with one variation. Nothing is lost. For the categories where WooCommerce is strongest among independent sellers — art, furniture, food, made-to-order, one-off and vintage stock — most of the catalogue is simple products, and this is a complete transfer.

A variable product is one WordPress post with child variations, each with its own price, SKU and stock. FLUF’s crosslisting model is one product, one listing, which becomes one Square item with one variation. Where your inventory is already organised as one FLUF product per sellable SKU, you get one Square item per SKU: correct and sellable, but a list rather than the size-and-colour grid your WooCommerce shoppers see.

At a till that is frequently the shape you want. Staff tap “Blue Hoodie L” rather than tapping a product and then working through two dropdowns while a queue forms. For a deep apparel catalogue it is a genuine limitation, and it is better known before a thousand-item push than after.

It is worth noting that the official Square plugin’s documentation does not state its own position on variable products at all — which is the gap described earlier, showing up exactly where it costs the most.

What syncs and what does not

Behaviour Supported Detail
Create a Square item from a WooCommerce product Yes Item, 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 WooCommerce → removed from Square Yes The direction that stops you overselling
Sells on Square → cleared from WooCommerce No Square sold-detection is not wired. Mark it sold in FLUF and FLUF clears the rest
WooCommerce order sync Yes WooCommerce orders are read into FLUF
Square order sync No Square revenue does not appear in FLUF’s order figures
Payments / checkout Not touched Your WordPress checkout and gateway are unchanged

The asymmetry worth understanding is that WooCommerce order sync works and Square’s does not. WooCommerce exposes a clean, documented REST API and FLUF reads orders from it. Square’s sold-detection has not been wired, and emitting sold-signals from a source that has not been proven is how a seller’s whole catalogue gets delisted everywhere in one sweep. A missing feature you know about is better than an automated one that destroys listings.

Self-hosted control, and what it costs you

The reason WooCommerce holds 48.1% of identifiable e-commerce installations is ownership. There is no platform subscription, no gateway surcharge, no plan tier gating your staff accounts, and no company that can decide your store is off its platform tomorrow. Set against Square — a payment facilitator where your account is a sub-account under Square’s own master merchant ID, reviewed as transactions happen rather than underwritten up front — that difference in ownership is stark.

The bill arrives elsewhere. You own hosting, updates, backups, PHP version management and the compatibility surface between WordPress core, WooCommerce, your theme and every plugin. One of the recurring Square plugin failures listed above — digital wallet buttons vanishing from the classic cart after a WooCommerce update — is precisely that surface breaking. On a hosted platform someone else absorbs that; on WordPress it is yours.

Note also the trajectory. Across May 2025 to May 2026, store counts moved: Shopify up 11.7%, Wix up 8.4%, Squarespace up 2.0%, WooCommerce down 6.8%. It remains the largest by raw count — roughly 4.08 million stores against Shopify’s 3.06 million — but the direction is worth knowing when you are deciding where to invest effort.

The practical conclusion is not “leave WooCommerce”. It is that the catalogue should not live only inside one WordPress database, and that adding a till channel is cheap insurance as well as extra revenue.

Mistakes that cost money

Diagnosing a WooCommerce 401 as a permissions problem. It is an authentication problem, nearly always the key, secret or SSL detection. Only a 403 is about permissions.

Testing WooCommerce credentials with a deliberately invalid key. Every healthy WordPress store rejects a bogus key identically, so the test proves nothing. Use the real key and expect a 200.

Running the Square plugin and a separate sync layer over the same products at once. Two writers, no defined conflict resolution on one of them. Pick one to own the catalogue.

Aiming a price update at the Square item. Price and stock live on the variation. A write to the item succeeds and changes nothing.

Assuming a Square sale clears WooCommerce. It does not yet. Mark it sold in FLUF.

Expecting WooCommerce attributes to become Square item options. They do not. Square’s options exist but are not populated from pa_* attributes.

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. Full details on the pricing page.

Sources and verification

The WooCommerce REST API authentication behaviour described above was measured directly against a known-healthy store, comparing a correct key and secret, a correct key with a wrong secret, and an unknown key. Square’s support articles carry no last-updated dates, so figures from them are marked as checked rather than dated.

Related guides

Frequently Asked Questions

Yes — Square for WooCommerce, officially maintained, with more than 80,000 active installations. It handles payments plus product and inventory sync. It is also rated 2.1 out of 5 on WordPress.org, with 82 of its 121 reviews at one star. Recurring reports include sync failing in one direction, images not syncing, settings that will not save, and products missing after sync despite SKUs being present.

Any self-hosted WordPress site running WooCommerce 10.8 or later on PHP 7.4 or later, with a working SSL certificate. The one common blocker is a WordPress site behind a reverse proxy or CDN that terminates TLS upstream: the certificate is valid at the edge but WordPress does not know the request arrived over HTTPS, and WooCommerce then refuses REST API credentials with a 401 that reads like a permissions error.

No. FLUF Connect synchronises your catalogue from outside both platforms and does not touch your checkout, your theme or your front end. That is the main structural difference from the Square plugin, which installs payments and catalogue sync as one component inside your WordPress site — so a WordPress update, a PHP bump or a theme conflict can take out card processing and inventory sync together.

Partly, and it is worth understanding before a bulk push. Simple products — one price, one SKU, one stock number — map perfectly onto a Square item with one variation and nothing is lost. Variable products become one Square item per sellable SKU rather than a size-and-colour grid. At a till that is often the better shape, because staff tap the item instead of working through dropdowns, but for a deep apparel catalogue it is a real limitation.

FLUF connects through the WooCommerce REST API using a consumer key and secret generated in WooCommerce, Settings, Advanced, REST API — so any WooCommerce version exposing wc/v3 works. For the official Square plugin specifically, the stated requirements are WooCommerce 10.8 or later and PHP 7.4 or later.

Product name, long description, regular price, SKU, stock quantity, gallery images and a category. Sale prices, product tags, pa_ attributes, custom fields, reviews, customers and order history do not — this is inventory crosslisting, not a migration. Prices convert to Square's minor units, so £12.99 is sent as 1299, and the currency comes from your Square account.

No, and this is where Square is much easier than a marketplace. Square has no product taxonomy at all — a category is simply an object you created, with no leaf nodes and no required per-category attributes. There is nothing to fail validation against. The trade-off is that Square gives you no structure for free, so whatever organisation your Square library has is organisation you built.

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: a WooCommerce sale removes the item from Square automatically, and WooCommerce order sync is supported, so WooCommerce orders are read into FLUF.

That is WooCommerce's generic reply to an unauthenticated request, not a permissions error — the fix is the credentials or the SSL detection, not the user's role. A correct key with a wrong secret and an entirely unknown key both produce exactly this 401. Judge by status code rather than text: 401 means never authenticated, 403 means authenticated but under-privileged. The message is also localised, so never match on the string.

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. Bulk operations are included in every plan, and relisting and offer management from Seller upwards rather than sold as add-ons. Square itself costs nothing per month on its entry plan, so adding a till channel to a WooCommerce store is inexpensive.

Start Crosslisting Today

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

×
Scroll to Top