v0.54.0 — August 17, 2026
Added
Added
- You can now sell subscriptions in person with Shopify POS. Your staff can add a subscription plan to a sale from the POS home screen, from a line already in the cart, or from a product’s page. Checkout is the normal POS checkout — nothing new to learn. Needs a supported version of Shopify POS and an online device; one-off products without a plan are left untouched.
- One bundle can now offer several sizes, each at its own price — 3 items for €30, 5 for €45, 7 for €60. Before, that meant building three separate bundles. Your customer picks a size on the product page, and checkout unlocks only at a size you priced; at an in-between count they see what the next size up costs. Bundles you already have keep working exactly as they are.
- A bundle can be limited to one market, under Where it sells on the bundle form. Picking a market also sets its prices in that market’s currency. Leave it on all markets and it sells everywhere — which is what every existing bundle does.
- Bundles missing from your Bundles list can be recovered. If a bundle exists in your store but never shows up in the app, Migrate bundle data now brings it back so you can edit or delete it normally. Bundles with no readable price are reported rather than guessed at.
- The back button now returns you to the queue you came from. Open an item from the fulfillment, returns or payments queue and you go back to that queue with your filters, search, sorting and page still in place — instead of landing on the Rentals overview and setting it all up again.
Changed
Changed
- Each section now opens on the page you use daily, not a settings page: Subscriptions opens on Subscriptions, Rentals on Rentals, Bundles on Active bundles. The other tabs are still there, just no longer first. Saved links keep working.
- Clearer tab names in Subscriptions — “Contracts” is now Subscriptions, and “Plans” is now Your plans. Page titles match the tabs. Only the names changed.
Fixed
Fixed
- An order that was retried can no longer be invoiced twice. Before, the same sale could occasionally produce a second invoice.
- Your monthly commission cap now holds when several charges land at once. Before, charges processed at the same moment could each pass the check separately and together go over your cap.
- A bundle that stopped appearing on your storefront is now fixed by saving it again. Before, the save could quietly do nothing, and only Migrate bundle data could repair it.
- “Return this item” now works on a customer’s bundle page. Before, the button showed on every item and failed every time with nothing on screen to say why. It now appears only on items that can genuinely be returned.
- Both bundle cards work when a product is in two bundles. Before, only the first one did — the second looked completely normal but never counted items or changed its button. Swapping now also offers every size and colour of an eligible product, not just the first.
- Bundle price warnings use your own currency instead of always being written in euros.
v0.53.0 — August 10, 2026
Added
Added
- See which subscriptions are still waiting for a unit. They now show up in Operations as a list you can work through, instead of one subscription at a time. You only see this if you track serial numbers.
- The start date your customer picked now shows on the subscription. Before, only the order showed it. The first charge still happens at checkout, as always.
- Cancel an order in Shopify, and Circuly can cancel its subscriptions too. Off by default — turn it on in Settings → Automation.
- Cancelled subscriptions where the customer still has the goods now have their own tab in the returns queue. Hit “Mark received” when the item comes back.
- Write your own add-to-cart button text for each purchase option — “Rent Bit Now” instead of “Pick a start date”, for example. Leave one blank and we use ours.
- Put the purchase selector on your home page or a landing page, using a Featured product section. Two selectors on one page each stay tied to their own product.
- New setting: hide your theme’s own buy buttons. Those buttons skip the selector’s rules, so a customer could add a rental without picking dates. Off by default — we recommend turning it on. Hide your theme’s Buy buttons block instead of deleting it; the selector needs it.
- New setting: collapse the options your customer hasn’t picked, so a product with several purchase options reads as a short list. On by default — turn it off to keep every option expanded.
- The bundle form now has the same checklist and live preview as the plan form.
Changed
Changed
- Operations tabs now look and behave like the rest of the app — no blank flash while the page loads, and you can middle-click or open a tab in a new window.
- The customer accounts block is now called View subscriptions (order action) in Shopify’s picker, instead of its old placeholder name.
Fixed
Fixed
- The date picker submitted the day before the one your customer clicked if they were in a timezone ahead of UTC — Germany included. It now submits the date shown.
- Ending a rental put back more stock than it took, which could leave a rental stuck or quietly take units from your other rentals. It now returns exactly what it reserved.
- Shopify notifications no longer go missing when the database briefly drops a connection.
- Some return notifications arrive from Shopify empty. We were counting those as handled. They are now flagged so we can look into them.
- Creating a plan no longer opens with fields already marked red. A checklist in the sidebar tells you what’s still missing, and clicking a line takes you straight there — so you always know why Save is greyed out.
- Two visual fixes in the purchase selector: white stripes around the selected option, and a squeezed start-date tooltip that broke onto one word per line.
- Problems that used to fail quietly — bundle pricing not reaching checkout, a plan not being created, a half-finished Klaviyo sync — now alert us.
v0.52.0 — August 3, 2026
Added
Added
- Rental lifecycle: safer cancellations, confirmed completions, and delivery fulfilment. Cancelling a rental no longer refunds the customer automatically — you decide in Shopify what is owed, and the cancel dialog says exactly that. Cancelling is only offered while a rental is still being prepared; once delivered, the units are with the customer, so the cancel button is disabled with an explanation and the way to end the rental is completing it. “Mark received & complete” is now Mark as completed and asks for confirmation first — if the rental was scheduled to run longer, the dialog warns that completing now ends it early and by how many days. “Mark handed over” is now Mark as delivered, and it creates the real Shopify fulfilment for the rental’s order line, so the order shows as fulfilled and Shopify sends its usual shipping notifications. If the fulfilment cannot be created, the rental still moves forward and you get a warning instead of a blocked action.
Fixed
Fixed
- Some of Shopify’s return-closed notifications arrive in a minimal format that omits the return’s full identifier. Those failed to record, so the affected return never showed as closed in the Customer returns view. Circuly now derives the identifier from the minimal form, and two notifications about the same return arriving at the same moment no longer collide.
v0.51.5 — August 1, 2026
This entry retroactively covers v0.51.3, v0.51.4, and v0.51.5, which shipped as hotfixes without their own changelog entries.
Added
Added
- Bundle templates can be duplicated in one click, so a new bundle can start from an existing one instead of being rebuilt from scratch.
- When a store installs Circuly we now record whether it runs multiple locations, so setup and support can account for that from day one.
Fixed
Fixed
- Subscriptions with overdue or failing charges are billed more reliably: the app no longer asks Shopify for billing history from before a subscription existed (which blocked charging young subscriptions entirely), a charge that fails with an unexpected error is recorded with a proper reason — and a store that has closed or been frozen stops being retried every hour — and retrying an overdue billing cycle now charges the intended cycle instead of being rejected by Shopify.
- Fixed a class of background crashes that occurred when an outbound call to a connected integration was cut off mid-request.
- Rentals refinements: clearer inventory status colours, working list pagination, a tidier booking detail page, and fleet resizing bounded to safe values.
- When a cross-sell item cannot be added to the cart on the storefront, the customer now sees why instead of nothing happening.
v0.51.0 — July 27, 2026
This release also covers v0.50.1 (18 July) and v0.50.2 (20 July), which shipped without their own changelog entries. Their changes are included below.
Added
Added
- Operations gains a Payments tab listing every subscription with an overdue invoice, split into “Needs decision” (retries exhausted — it’s waiting on you) and “Retrying” (Circuly will try again automatically). Each row shows the customer, amount, attempts so far, next retry, and how long it has been overdue, and you can skip the cycle, change the billing date, cancel, or copy the customer’s email without leaving the list. The tab appears for any store with subscriptions — rentals are no longer required to use the Operations hub.
- Two new payments-queue actions: Retry payment now charges the customer immediately instead of waiting for the next scheduled attempt, and Send payment-update email sends them Shopify’s own secure link to update the card on that subscription. Both confirm first, and repeated clicks on Retry won’t double-charge.
- Operations opens on a Today agenda of what actually needs clearing: four urgency-ordered groups — Money, Out the door, Coming back, Health — each reading “N to clear today”. Groups you don’t use stay hidden, so a subscriptions-only store sees payments and returns with no empty rental section. It covers overdue payments, rentals due out or expected back today, overdue handovers and returns, returns awaiting your confirmation, inventory sync problems, and unpaid bookings whose start date is here or close. Home’s attention card is replaced by a single “N items need attention” pointer into Operations, so there is one place to look.
- Bookings and Rentals merge into one Rentals list and one page per rental, with a progress stepper across the top: In cart → Awaiting payment → Preparing → Out with customer → Completed. The status wording is now the same everywhere — “Preparing” instead of the old “Converted”/“Confirmed” jargon — and the activity feed shows the whole story in one timeline, from the customer holding dates in their cart through handover and return. Filter by status, asset, or date range, and search by customer email or order number. Existing links and bookmarks keep working.
- A product can now belong to several bundles at once. Adding a product to a second bundle used to silently overwrite the first, and the original stopped showing on that product page with no warning. A product page now stacks one card per bundle it belongs to, oldest first. Customers still build one bundle at a time in the cart — nothing about checkout changes — and removing a product from one bundle leaves its other bundles intact.
Changed
Changed
- Confirming a returned rental now runs the same steps whether you scan it, confirm it from the subscription page, or clear it from the Operations agenda. If the subscription is cancelled in Shopify but the local cleanup afterwards fails, you get a clear “cancelled but cleanup failed” message instead of a generic error that made it look like nothing happened.
- On the inventory hub, the product name is now plain text with an explicit “View product” action that opens Shopify in a new tab, and “Return to available” is promoted to the row’s main button.
Fixed
Fixed
- The Operations fulfilment queue listed rental contracts from other Circuly stores — including order names and customer emails — while the per-tab counts beside them were correct for your store, which made it easy to miss. The queue is now scoped to your store only. Nothing was editable across stores, and the returns queue was never affected.
- Markets that inherit their currency from Shopify rather than setting their own were skipped entirely, so they never appeared in market lists, per-market pricing, or coverage warnings. They now sync. B2B, POS, and channel markets are no longer synced at all, where before they could show up looking like your catch-all market.
- On stores where payment captures instantly, a paid rental booking could stay stuck at “Awaiting payment” forever — no rental created, and the booking expiring on its own start date even though the customer had paid. The paid step now waits for the order step to finish, and a new hourly safety net picks up any paid booking that still has no rental.
- A booking waiting on payment displayed as “Pending”, and the greyed-out “Mark as confirmed” button explained itself with “Cannot move from Pending to Pending”. Such bookings now read “Awaiting payment” everywhere, and every disabled action explains itself in plain language.
- Switching between variants on a rental product could latch the buy button into a permanent “Sold out” state even when the variant was in stock, with a full page reload the only way out. Every customer switching variants on a multi-variant rental product hit this.
- Multi-currency shops: the home dashboard no longer adds different currencies together. Lifetime value is shown per currency, the same way monthly recurring revenue already was, and the MRR tooltip agrees with the figure on the card above it.
- Analytics counts subscriptions from the date their order was placed rather than the date Circuly first imported them, so a migrated subscription base no longer collapses onto a single import day. “Subscriptions by type” counts the same subscriptions as the status chart beside it, both distribution charts are labelled “all time”, and charts with no data say so properly instead of looking broken. Section headings no longer share a row with the chart below them.
- Native-first inventory: stock changes never actually reached Shopify, and rental products set up before a recent fix read as zero availability. Both are fixed, and growing or shrinking a rental pool now moves units between Shopify and the pool instead of double-counting them. New installs have defaulted to this engine since v0.50.0 (17 July), so if you installed between 17 and 18 July, check the Inventory movement log for entries stuck at PENDING; stores on the older engine were never affected.
v0.50.0 — July 17, 2026
Added
Added
- Price rentals as a percentage of each variant’s own product price, instead of one flat rate that billed a €500 and a €1,200 variant identically. Pick “Variant price” mode, set one daily percentage, and every variant prices itself from its own Shopify price. The deposit stays a fixed amount either way, and the price shown on the date picker is exactly what checkout charges. Existing templates keep their current flat rates until you switch them over.
- Rental pricing templates now default to your store’s own currency instead of always starting at EUR, and the currency picker only offers currencies your store can actually charge in. Optional fields (weekly and monthly rates, deposit, minimum reserve) can now be cleared — emptying one and saving actually removes it. Minimum reserve is a simple on/off toggle with an input.
- The subscription plans list shows each plan’s buy-out mode — Dynamic, Fixed, or Off — at a glance.
- Stores installing the app from now on start on the new native-first inventory engine, where rental availability draws on your regular Shopify stock rather than a separate rental-only pool. Existing stores are unaffected and keep their current setup.
Changed
Changed
- Rentals, Subscriptions, and Bundles each opened on an “Overview” tab that was just a grid of links to the tabs sitting right below it. That tab is gone — clicking a hub in the sidebar takes you straight to its first real page. Existing links and bookmarks keep working, and the Operations Overview stays, since it’s a real dashboard.
- Removed an “Inventory mode” choice from the add-product wizard that did nothing, along with the outdated “Shared mode coming soon” promise in the documentation.
- Internal reliability: rental duration and price-preview logic now share one implementation, automatically checked against the real server price across hundreds of generated cases.
Fixed
Fixed
- The inventory stock number is now labeled “Available (Shopify)” to match the column of the same name in your Shopify admin — the old “on hand” label meant something different in Shopify than what we were showing.
- The inventory movement log now reads in plain language: product names instead of internal IDs, clickable order links, and understandable status and error text.
- Flipping the minimum-reserve toggle on and back off no longer leaves the Save/Discard bar stuck on screen when nothing has changed.
- When adding a rental product whose variants aren’t set up to keep selling once out of stock, the message now explains what’s actually needed — and a “Fix inventory settings & add” button applies the change and adds the product in one click. Previously it advised turning off inventory tracking, which was itself blocked.
- Stores not yet on the new inventory engine no longer see an Inventory navigation item that only led to a dead-end page.
v0.49.0 — July 13, 2026
Added
Added
- Customers can return one item from a subscription bundle themselves: they request the return from the bundle page, you approve it, and Shopify emails them a prepaid return label. The rest of the bundle and the recurring price stay untouched — once the item arrives the slot frees up and a replacement can be swapped in. You control whether returns are offered and the return window from your Returns settings.
- Drive rentals through their whole lifecycle from the Operations hub: mark items handed over to the customer, then mark them received when they come back — one at a time or in bulk from the fulfilment and returns queues. Received units automatically free up for the next booking.
- For products tracked as individual units, inspect each unit on return and record its condition — good, needs cleaning, needs repair, damaged, or missing. Units routed to cleaning or repair are held out of bookable stock until they’re ready, and you can mark them ready from the unit’s detail page.
- Remove a product from rentals by row, in bulk, or from its detail page. History is preserved, and removal is blocked with a clear reason if any units are still out with customers.
- Rent-to-own buy-out prices can be set per market and overridden per product, with a warning when a newly added market has no price configured yet.
- Charge an early-termination fee when a customer cancels: the fee is invoiced automatically and the customer gets the invoice link.
Changed
Changed
- Rental product names and photos now resolve from Shopify at read time, so they stay current across every rental table and detail page.
- Your Shopify session access token is now encrypted at rest, and the app uses expiring, automatically refreshed access tokens ahead of Shopify’s 2027 requirement for public apps.
- Rental tracking modes are now labeled “Pooled” and “Individually tracked”.
Fixed
Fixed
- The dashboard revenue trend chart grouped its newest month incorrectly depending on server timezone; months now align with the revenue they report.
- Quieter, more accurate error alerting — expected storefront rejections no longer raise alerts.
v0.48.0 — June 19, 2026
Added
Added
- Rentals are ready to go live: real date-by-date availability tracking, a guided 3-step product-setup wizard, automatic public-holiday blackouts, and an admin action to cancel a rental and refund the customer in full.
- Behind-the-scenes monitoring so rental booking conflicts and refunds are caught and resolved early.
- Membership bundles that include rentable products now correctly reserve those units against rental availability.
- Attach subscription plans to specific product variants, not just whole products.
- App commission is now charged on rental order subtotals.
- Preview the bundle and rental storefront widgets from inside the admin before going live.
- Choose how each subscription plan’s buy-out price is calculated: Dynamic (from the live retail price), Fixed (a price you set), or Off. Both modes subtract what the customer has already paid.
Changed
Changed
- Rentals are now labeled “Rental” / “Rentals” across the admin for clarity (previously “Rental Contract”).
- Settings navigation is grouped, and Bookings and Rentals are split into clearer separate pages.
- Reliability and safety hardening across the rental engine.
- New merchant documentation for setting up and running rentals.
Fixed
Fixed
- Corrected rental buyout pricing and consumption tracking.
- Rental availability now respects day boundaries correctly.
- Subscription price pills update correctly when switching product variants.
- Internal reliability: the rental inventory ledger test suite now runs automatically in CI.
v0.47.0 — June 12, 2026
Added
Added
- Multi-market support: scope subscription plans to specific Shopify Markets, so you can offer the right plans per region. Plans bind to markets, the storefront filters by market, and market data syncs automatically.
- Per-currency rental pricing: rental pricing now shows the correct local price per currency for multi-market catalogs.
- Bookings and rental contracts now record the market they were created in, for accurate per-market reporting and currency handling.
- The subscription-plans list shows which market each plan is bound to, at a glance.
- A read-only Market status panel on General settings shows which markets are detected and active.
- Bundle storefront surfaces use a clean neutral theme by default, before you customize them.
Changed
Changed
- Settings are consolidated into a single store with a reordered settings navigation.
- Behind-the-scenes reliability improvements for market and selling-plan-group syncing, plus internal code organization cleanups.
Fixed
Fixed
- Editing a plan that spans multiple markets now saves correctly instead of silently failing.
- Multi-market lists, gates, and badges now populate correctly instead of appearing empty.
- The plan editor keeps your selected products and variants when editing, the Edit button is reliable, and the list refreshes after saving.
- Selection stays in sync across purchase options on the product page.
- The sidebar highlights the correct page and the rental-contracts tab shows an accurate count.
v0.46.0 — June 8, 2026
Added
Added
- 14-day free trial: new subscribers now get a 14-day free trial on any paid plan. The pricing page shows the trial note when you upgrade (Shopify grants the trial once per merchant).
- Annual billing: choose annual billing on any paid plan to save versus paying monthly. A monthly/annual toggle on the pricing page lets you compare both.
- Onboarding now captures what you sell — subscriptions, rentals, or bundles — in the welcome wizard so setup can be tailored to your store.
- Preview the storefront product-page subscription widget directly inside the app, without leaving admin.
- A refreshed, reusable setup guide walks you through the steps to get live.
Changed
Changed
- Rentals are out of developer preview — now available to all merchants (within the free-tier rental cap).
- Subscription bundles are now a Pro plan feature — available to merchants on the Pro plan and above, in the admin and on the storefront.
- Settings are reorganized into clearer sections with free-plan cleanup, and you can now see your usage against your plan’s limits.
- The support area has a refreshed layout with tabbed navigation and open-ticket counts.
- All storefront purchase options continue to render from a single product-page block, with improved bundle rendering.
- Behind-the-scenes reliability and consistency improvements across webhooks and shared app code.
Fixed
Fixed
- Bundle discounts now self-heal if activation silently fails, and you can bulk-delete bundles from the list.
- Assigning many products to a bundle is faster and shows save progress as it works.
- Webhook processing now recovers from dropped database connections and handles closed shops gracefully.
v0.45.0 — May 27, 2026
Added
Added
- Subscription bundles (developer preview): merchants can bundle multiple products into one subscription that customers buy and manage as a single unit. Storefront PDP shows the active bundle, a manage page lets customers edit or remove it, and discounts activate automatically via a discount function.
- Rental engine — individually tracked assets (Phase 4): rental contracts can now allocate to a specific physical unit instead of a pooled quantity. Each unit has its own retire/lose/recover lifecycle, and fulfillments activate per-line subscriptions on the matched unit.
- Rental engine — inventory bridge (Phase 5b): the rental admin can resize the fleet inline, and the app projects rental inventory into Shopify so the storefront stops over-selling sold-out units. Storefront calendar paint also tints weekends and follows the admin’s holiday country.
- Operations hub: a dedicated top-level section for warehouse and fulfillment teams, covering a daily fulfillment queue, returns queue, and an asset overview.
- Unified Purchase Selector storefront block: one product-page block that surfaces every purchase option (one-time, subscription, rental, bundle) with dynamic add-to-cart, includes/trust copy, and full accessibility + mobile support. Replaces the legacy per-mode blocks behind the UNIFIED layout flag.
- Subscription delivery constraints: merchants can configure lead time, delivery horizon, and blackout dates on selling plans, and the storefront enforces them at purchase time.
Changed
Changed
- Subscription plans and contracts are now consolidated into a single Subscriptions hub with three tabs (Overview, Plans, Contracts). Shopify Admin deep links continue to work.
- Admin UI polish across rental and subscription pages: every admin page is now full-width, App Bridge SaveBar replaces inline Cancel/Save buttons everywhere, and the asset detail / scanner / inventory pages got a layout pass.
Fixed
Fixed
- Rental cart subtotal now uses the discount function instead of cart-line repricing (which Shopify rejects when a selling plan is attached). The fleet resize modal also closes cleanly on save.
- App Bridge SaveBar now clears on navigation, and the post-sync toast no longer loops.
- Rental-inventory detail pages no longer 404 after edits, and pricing template updates redirect to the index after save.
v0.44.0 — May 18, 2026
Added
Added
- Subscription plan creation is no longer gated by billing tier — every merchant can create plans regardless of their plan.
- Rental admin surfaces landed (developer preview): inventory, pricing templates, bookings (index, detail, create), rental contracts (index, detail), blackouts (calendar view, holidays, range add), and booking & rentals settings. Hidden behind a developer-merchant gate until GA.
- Rental storefront integration (developer preview): Liquid date picker block on product pages, live availability paint, and a public Add-to-cart flow that creates a pre-pay Booking tied to the cart.
- Rentals Phase 3 — the post-payment lifecycle. When a paid order matches a Booking, the app creates a Rental Contract, hooks into orders/create/paid/cancelled/edited webhooks, and refunds the customer end-to-end when an upstream cart conflict cancels the booking.
- Pricing-template assignment from the rentals admin: mark a product as rental and pick which pricing template applies. Storefront and admin always stay in sync.
- Rentals demo mode: storefront block and admin pages can render mocked data for sandbox stores and merchant demos.
- Theme-extension diagnostics banner surfaces extension health on the storefront so merchants can spot widget issues without inspecting the page.
- Rentals are gated to developer merchants while in preview. Non-developer merchants see no rentals UI yet.
Changed
Changed
- Rental admin pages now use the full admin width so tables with many columns no longer scroll horizontally at default width.
Fixed
Fixed
- Theme widgets now render only Circuly’s selling plan groups — native Shopify subscription groups no longer leak into the Circuly widget on storefront product pages.
- When a rental booking is auto-cancelled because the dates were lost to a faster checkout (layer-3 conflict), the refund now covers the shipping charge as well as the rental — the buyer never received the rental, so the shipping is refunded in full.
- Storefront app-proxy routes are now aligned with how Shopify strips the proxy path before forwarding to the app — rentals storefront requests reach the right handler.
v0.43.0 — May 11, 2026
Added
Added
- Foundation for short-term rentals — booking lifecycle, availability calendar engine, and a public availability API. No admin UI surface in this release; merchant-facing screens follow in v0.43.1.
- Phase 1 shared rental inventory layer (foundation that Phase 2 builds on).
- Suspended merchants are now blocked from authenticated traffic so they cannot keep using the app while their account is on hold.
Changed
Changed
- Internal type cleanups across subscription settings and refund enums to reduce future regressions.
Fixed
Fixed
- Billing cron no longer silently skips merchants or misclassifies cycle-mismatched contracts.
- Selling plan edit page no longer adds phantom variants when the catalog spans multiple pages.
- Analytics now captures page-leave events for more accurate engagement measurement.
- Klaviyo integration: the in-app “Klaviyo reference guide” link is restored and now opens the hosted docs (event properties, advanced flow patterns, segment prompts).
v0.42.0 — April 30, 2026
Added
Added
- Brand-new Analytics page with key metrics and per-page metric strips on related screens
- Shopify Flow integration with 14 subscription lifecycle triggers — automate workflows when subscriptions are created, paused, cancelled, billed, and more
- Redesigned subscription plan Review step with at-a-glance stat tiles for cleaner pre-save validation
- Slimmer, modern cross-sell widget that mirrors the parent plan’s billing exactly
- Cross-sell rules now support a per-row Purchase mode override (one-time vs subscription)
Changed
Changed
- Tabbed widget variant polished further on the storefront
- Internal type and diagnostics improvements from review follow-ups
Fixed
Fixed
- Custom date range in analytics is now re-pickable, and future-date selections no longer cause crashes
- Plan-edit tables now show the pagination range label
- Top Products list now tiebreaks by MRR when active subscriber counts match, surfacing the most valuable products first
v0.41.0 — April 24, 2026
Added
Added
- Choose your widget layout during onboarding in the new Appearance step
- Onboarding now advises previewing your theme before going live
- New tabbed widget variant and a dedicated Theme settings page in the admin
Changed
Changed
- Onboarding is shorter — the “Your Features at a Glance” step has been removed
- Shopify extensions upgraded to the latest UI platform versions
- Shopify dependencies updated to the latest 2025-07 patches
Fixed
Fixed
- Pricing adjustments no longer revert to the Variant price unexpectedly
- Smoother first render and more reliable local setup scripts
- Invoice template previews show your uploaded logo; WebP is no longer accepted
- Product prices use Shopify’s current API for better accuracy
- Customer account layout renders correctly again
- More reliable navigation inside the customer account extension
- Fewer background processing hiccups on order and payment events
- Recent Activity list rows line up consistently across entries
- Pro plans can now downgrade to Free with a clear confirmation step
v0.40.0 — April 17, 2026
Added
Added
- Subscription limit indicator showing how many subscriptions you’ve used vs your plan cap
- Free plan no longer charges commission fees
- Customers can retry failed payments directly from the customer portal
- Contextual help links added throughout the app for quick access to documentation
- Selling plan form simplified with a new tabbed layout
- Create assets directly from the asset page without leaving the screen
- Onboarding now detects your theme extension and guides setup per template
- New “About You” step during onboarding to personalize your experience
Changed
Changed
- Subscription type “Normal” renamed to “Rental” — existing data migrates automatically
- Replaced hardcoded values with proper enums across the codebase
- Unified brand color consistency throughout the app
- Development and production app configurations aligned
Fixed
Fixed
- Contact Sales link now opens correctly outside the app
- Billing date editing now uses Shopify’s authoritative cycle range
- Metafield values are properly validated for uniqueness
- Billing date restrictions on the client side removed for flexibility
- Skip and unskip operations now use accurate locally computed dates
- Subscription eligibility diagnostics improved in the troubleshoot page
- Store subscription eligibility now correctly reflects merchant status
- FAQ section repositioned below the support form for better flow
- Fixed a rendering loop in the admin query hook
v0.39.0 — April 13, 2026
Added
Added
- Cancel subscriptions directly from the admin panel as a merchant
- Explore the app in demo mode and access developer settings for testing
- Onboarding setup guide is now clearer with improved steps
- Open a support ticket directly from the troubleshoot page
- Your current Shopify plan is now tracked for better support
- Polished onboarding completion screen with clearer next steps
Changed
Changed
- Updated to the latest Shopify platform version for improved compatibility
Fixed
Fixed
- “Deliver every” label no longer shows for non-consumable subscription products
- Subscription cycle information text is now accurate
- Selling plan pricing options and number inputs are cleaner and more intuitive
- Auto-assign rules can no longer be accidentally submitted twice
- Improved data privacy compliance when stores are removed
- Improved webhook security and removed unused event handlers
- Subscription interval validation now prevents invalid values during setup
- Error messages are now clearer and more helpful
v0.38.0 — March 24, 2026
Added
Added
- Migrate existing subscriptions from other apps into circuly
- New merchants can explore the app in demo mode before setting up
- Cleaner frequency dropdown and commitment details in the customer portal
- Migration tool is now available exclusively on the Custom plan
- Commission charges now only apply to subscriptions created through circuly
- Faster subscription plan lookups with local data storage
- Better visibility into automatic billing with attempt tracking
Changed
Changed
- Updated and corrected merchant-facing documentation
- Expanded help documentation with 5 new pages
Fixed
Fixed
- Payment options display now works reliably across all Shopify themes
- Improved app loading performance by removing redundant operations
- Corrected App Store listing links and logos
- Changelog sections now display expanded by default for easier reading
v0.37.1 — March 19, 2026
Added
Added
- Commission charges now only apply to subscriptions created through circuly — orders from other subscription apps are automatically excluded
v0.37.0 — March 12, 2026
Added
Added
- Scan barcodes or look up serial numbers directly from the app
- Troubleshoot wizard to diagnose why a product isn’t eligible for subscriptions
- Automatically assign products to subscription plans by tag
- Clickable attention cards for faster navigation to issues
- Your contact email now syncs automatically from Shopify
Changed
Changed
- Redesigned selling plan form for a cleaner, more intuitive setup experience
- Subscription status badges now use consistent, easier-to-read colors
Fixed
Fixed
- Subscription discounts now apply correctly when swapping products or variants
- Skip and unskip cycle tracking now works reliably
- Navigation menu correctly hidden for users without an active plan
- Overdue contracts are now included in automatic billing
- Clickable rows work consistently across all list pages
- GDPR compliance webhooks now handled correctly
- Creating subscription plans now respects your current plan tier
- Reactivate banner no longer shows for cancelled subscriptions
v0.36.0 — March 4, 2026
Added
Added
- Step-by-step onboarding flow to help you get started faster
- Refresh button on all list pages for quick data updates
- See what’s new with the built-in changelog page
- Simplified setup banner in the extension
- Filter assets by status and copy serial numbers with one click
- Subscriptions list page now has a cleaner, more polished layout
- Error pages now include a direct link to open a support ticket
Changed
Changed
- Internal code improvements for settings pages
- Dashboard cards have a fresh, polished look
- List pages now have better sorting and selection features
- Internal code quality improvements
Fixed
Fixed
- Downgrade button now clearly warns before changing plans
- Clicking a row in list pages now navigates correctly
- Description field help text is now accurate
- Selling plan form labels and help texts are clearer
- Fixed a rare crash when dismissing the What’s New card
v0.35.0 — March 2, 2026
Added
Added
- View billing history directly in the customer portal
- Search and filter contracts in the customer portal
- Upgrade prompts now show which features require a higher plan
Changed
Changed
- Billing cycle actions are now more compact and easier to use
- Variant picker only shows products assigned to the selling plan
- Internal code improvements for consistency
Fixed
Fixed
- Invoice logos now fit properly with a preview before saving
v0.34.0 — February 26, 2026
Changed
Changed
- Internal database cleanup for better performance
- Pricing page descriptions are clearer and easier to understand
Fixed
Fixed
- Improved app startup reliability
- Improved app stability during high traffic
- Better error display when something goes wrong
v0.33.1 — February 26, 2026
Fixed
Fixed
- New users are now properly guided to choose a plan on first install
v0.33.0 — February 25, 2026
Added
Added
- New pricing page with side-by-side plan comparison
- Upgrade prompts appear when accessing features not included in your plan
v0.32.0 — February 25, 2026
Added
Added
- New tiered plan system with different feature levels for each plan
Fixed
Fixed
- Invoice template correctly resets to defaults when requested
v0.31.2 — February 24, 2026
Changed
Changed
- Faster loading of the subscription widget on your storefront
- Product rows are now fully clickable for easier navigation
Fixed
Fixed
- Improved app stability and error handling
- Improved app reliability on startup
- Cross-sell product rows are now fully clickable
- Cross-sell layout works better on mobile and syncs with cart
- Improved app reliability during initial setup
v0.31.1 — February 23, 2026
Fixed
Fixed
- App loads faster with reduced memory usage
- One-time purchase price updates correctly when switching variants
- Subscription dropdown highlights the correct option when switching variants
- Cancellation notice only shows for active subscriptions
v0.31.0 — February 20, 2026
Changed
Changed
- Invoice template editor now has tabs for preview, editing, and settings
- All settings are now on a single page with side navigation
Fixed
Fixed
- Dashboard cards and invoice filters are better aligned
- Reactivation no longer applies to terminated subscriptions
- Resolved billing and swap timing issues
- Performance improvements