unSquared just launched. This page will track what's new from here.
If you mark your one-time migration complete too soon, you can now reopen it once from your dashboard, within 24 hours. After that the completion is final. Reopening gives you back only the one-time tools you have not used yet (each one time); starting a new migration and changing what you migrate stay closed, and marking complete again is final. The Mark complete window now also shows what you have migrated so far and what your plan includes. Also new: uninstalling unSquared now resets your store to a first-time install, so reinstalling shows the plan and Shopify's charge approval screen again, as Shopify requires. Your migration history and notification settings are kept for the short grace period before deletion.
If an earlier product migration stopped part-way, the Products page now tells you before you start: a "Continuing a previous migration" note shows how many products are already in Shopify and about how many remain, and that the run carries on using your saved settings. While a run is wrapping up, the progress card now shows "Finishing up…" with a moving bar instead of sitting at 100%.
Your plan includes one use each of Re-sync Products, Re-sync Customers, Inventory Sync, a scheduled Gift Cards migration, a scheduled inventory sync, and the Product Weight + Online Price update. Each tool's window now tells you whether it can still be used, and once it has been used a note appears there and at the top of the page and its start button is switched off. If a run fails or is cancelled before processing anything, or you cancel a schedule before it runs, the use is given back. The Schedule Migration window on Gift Cards also now explains the real reason scheduling is unavailable, instead of saying there are no gift cards.
The optional email notifications in Settings (migration started, paused, cancelled, completed or failed, re-sync summaries, scheduled-run reminders and Square API health alerts) are now included with the One-Time Migration plan. Until you purchase, the Notifications section shows switched off with a link to the plan, and no optional emails are sent. Anything you saved earlier is kept and starts working again as soon as you purchase. The service emails that relate to your account, like install, uninstall and disconnect notices, are not affected.
URL Redirects can now also redirect your old Square category pages (/shop/...) to the Shopify collections unSquared migrated for them. There's a new "Include collection redirects" switch above Ready to Migrate, on by default and turned off (with a note) when no collections have been migrated yet. The top of the page has a new Collections count, and two green "Already in Shopify" boxes show how many eligible product and collection pages already have the right redirect in Shopify. The Full Preview (CSV) shows which category pages get a redirect, and the report marks them as Collection.
After every redirect is created, the progress card now shows a "Verifying…" step with its own count while unSquared checks each new redirect on your store, instead of sitting at 100% "In Progress". If your online store is password-protected (every development store), the page now says the redirects couldn't be checked rather than flagging them all as needing attention. Skipped products now come with their real reasons, both on the progress card and on each report row. Product names with punctuation (like "10.2-inch") now match their Square Online page exactly instead of landing in "Needs review". Re-running is much quicker when most redirects already exist, and still never creates duplicates. Square category pages are no longer listed as failed rows in the report; the Full Preview (CSV) lists them instead.
Product Settings has a new option, "Continue selling when out of stock". It is off by default, so nothing changes unless you turn it on. Square has no matching setting to copy, so it is your choice: when it is on, every product variant a migration creates or overwrites is set to keep selling in Shopify when its stock reaches zero, which suits made-to-order and backordered items. When it is off, Shopify's own default applies and a variant stops selling at zero. The Ready to Migrate step shows a badge when it is on, and the migration report records your choice. For products already in Shopify, save the setting and run Re-sync Products on your entire Square catalog, or change them in Shopify admin.
The Get Started screen now ends with two buttons, and you click one to finish setup: Skip to Dashboard, or Preview Data. Preview Data reads a small sample of your own Square data - about 15 products with one collection and one discount, 10 customers, your active gift cards and a few URL redirect examples - and shows how each would look in Shopify: a Shopify-style page for every product, variant and customer, with every metafield unSquared can save (empty ones are marked). It is free, needs no plan, only reads from Square and creates nothing in your store. Setup is finished from the button at the bottom of the preview, and if you close the app first, Get Started shows again with your choices ticked. If your account has no Square Online store, the redirects part just says so. Settings also has a Preview Data card for a view-only second look later.
Square keeps only one unSquared connection per Square account. If the same Square account is connected to unSquared on another Shopify store, the store connected before loses its connection. unSquared now handles this for you: the earlier store is disconnected right away (its pending scheduled migrations are cancelled and any running migration is stopped), the store you just connected shows how many stores were disconnected, and the earlier store's Connect to Square page explains why instead of saying access was removed in Square. Before you connect, unSquared also warns you if this store's last Square account is already connected somewhere else.
If unSquared is disconnected from your Square account's App Integrations page, unSquared now disconnects itself instead of still looking connected with no Square data. Square notifies unSquared right away (and unSquared also checks when you open the app). Pending scheduled migrations are cancelled, a running migration is stopped and marked failed ("Square access was revoked"), and you see the Connect to Square page with a "unSquared was disconnected from Square" banner. Nothing already migrated to Shopify is touched, and reconnecting the same Square account brings your Location Mapping back automatically.
With "Extra Variant Images" ticked in Field Mapping, each variant's other Square images are now saved as square.extra_images - a list of images (List: Image) on the variant, pointing at the same pictures already in the product gallery. You can see and reorder them on the variant in Shopify admin, themes can show them with Shopify's own image sizing, and they're hosted by Shopify, so they keep working after you leave Square. This replaces the comma-separated links (square.extra_image_urls); products migrated before this change keep those links.
Migrations with more than 2,000 products now send products to Shopify in batches of 500 instead of 5,000, so Cancel takes effect much sooner - it only waits for the current batch to finish. If Shopify won't accept a product's stock at a location, the report now says so on that product's row ("Created, but stock could not be fully set in Shopify") instead of just "created" - run Sync Inventory to fix it. And if unSquared's servers restart in the middle of a batch, unSquared now checks with Shopify exactly which products that batch had already created, gives them their stock and sales channels, and lists each one in the report only once before continuing.
When "Create Shopify collections from Square categories" is on, Migration Settings now warns you if "Tags" is unchecked in Field Mapping, since collections add products by their category tag and would otherwise be created empty. A short note also explains that Shopify's newer collection options (excluding products, sub-collections, or more than one source) aren't supported yet: a collection that uses them is invisible to unSquared, so a re-run would create a duplicate and URL Redirects couldn't match it.
Products now carry more of what Square knows about them, as metafields: vendor details (name, SKU, account number, note, address and contacts), per-location stock tracking and low-stock settings, which locations each variation is available at (by name), the buyer-facing name, the HTML description, online visibility, and each variation's own timestamps and version. The low-stock threshold is now also picked up when Square only stores it per location. Open "View all fields" on the Products page to see the full list.
On a new store, "Migrate to Shopify" now stays disabled - with a warning above it - until you've reviewed Field Mapping and clicked "Save Field Mapping" once, even if you keep every field at its default. The Save button is now clickable right away while Field Mapping says "Not saved yet". You only need to do this once; Migration Settings still needs to be saved too.
The "View all fields" window on the Products page now has filters for Migrated and Not migrated fields, a search box, and clear labels, so it's easy to see what carries over to Shopify and what stays behind (for example Square's Shipping box, buyer-facing name, Food & Beverage details, and per-location inventory alert settings).
The Disconnect window now checks whether a migration is currently running or any scheduled migrations are pending and tells you before you confirm. Disconnecting also now cancels your pending scheduled migrations (schedule them again after reconnecting) so they don't fail later. Anything already migrated to Shopify is never touched. After you confirm, the Shopify admin page briefly refreshes so your sidebar updates - that is expected.
If you've connected more than one Square account over time, every product, customer, and discount unSquared creates now gets a second tag alongside the usual square_migrated marker - square_account-<last 6 characters of that account's merchant ID>, e.g. square_account-3xyz99. Search or filter by it in Shopify Admin to isolate everything that came from one specific Square account. Applies going forward only - items migrated before this shipped keep just the plain square_migrated tag.
Uninstalling unSquared used to delete your migration history and settings almost right away, as part of Shopify's standard post-uninstall process. Now, that data is kept for a short grace period first (about 9 days from uninstall) - so if you uninstalled by accident, reinstalling within that window keeps your migration history and settings (you reconnect Square, and since November 2026 an uninstall also resets your purchase, so the plan charge is approved again). After that window, your data is permanently deleted, still well within Shopify's own data protection requirements. This never affects anything already migrated into your Shopify store, on any timeline.
Product variants tagged to a Square team member now also save that person's name (square.team_member_names), not just their internal ID, making the data usable directly in Shopify without a separate lookup. We also improved what happens if you disconnect and connect a different Square account: your "What You're Migrating" selection and related settings now reset instead of carrying over the previous account's choices, and migration history/dashboard status are scoped to whichever account is currently connected going forward.
The first release: full Product Catalog migration - with Collections and Discounts bundled in automatically - plus independent Customers, Gift Cards, and URL Redirects migrations, with optional scheduling for Gift Cards. Also included: ongoing tools such as Inventory Sync (with scheduling), Re-sync Products, Re-sync Customers, and Product Weight + Online Price updates.