Built for Shopify

Sort your collections. See why. Prove it worked.

QSortby re-ranks every collection by live demand on a rule you write — the signals and their weights, in plain words — and A/B-tests it against your current order. You preview the new order before it publishes, so nothing goes live behind your back. No theme code.

Free plan forever · 10 days full access on install · No card · GDPR-ready

Illustration — on your store it is your products, your signals and your numbers.

Ways to sort 11+ per-visitor
Ranking window 1hto 1 year
Ranking signals 10you set the weights
Upsell surfaces 6cart to thank-you
Watch

Watch it sort the collection — then grow the order.

A minute and a half, no signup: the collection re-ranks itself on live demand, then the same engine goes to work on the basket — bought-together on the product page, a free-shipping nudge in the cart, and an offer at checkout and after it.

Why not the built-in sort

Shopify can sort by best selling. It can't tell you what that cost you.

Shopify's native sort is one fixed rule applied blindly to everyone, forever. That's the bar QSortby is measured against — so here it is, side by side.

Shopify “Best selling”
  • One sort key for the whole collection — no window you can tune
  • Sold-out products hold their position until you step in
  • Same order for every shopper, first visit or fiftieth
  • No margin, conversion-rate or stock-cover option
  • Products that belong together scatter across the grid
  • No before/after — you reorder and find out once it's live
  • No attributed revenue — you can't tell whether it worked
QSortby
  • A window you choose — an hour for trends, a year for stability, or a set month
  • Sold-out demoted within minutes of hitting zero, promoted back on restock
  • Optional per-shopper feed — each visitor gets their own order
  • Eleven signals: velocity, revenue, margin, conversion, trend, selling-fast, reviews
  • Pairing rules keep matching products side by side — shirt, trousers, then shoes
  • Preview the exact new order side by side, approve it, then publish
  • Every sort A/B-tested with attributed revenue and a significance verdict

The engine, live

Choose what "best" means. The storefront rearranges itself.

Same catalog, every angle. Pick a signal — or a shopper — and watch QSortby re-rank the collection in real time.

Sort by

Ranked by best sellers

your-store.com · Bestsellers live
Ranked by Best sellers · rolling 24h
Conversion rate2.6▲ +0.7
Proof Every sort is A/B-tested. QSortby splits traffic and reports the revenue each order actually drove — not clicks. B wins · illustrative
Nothing happens in the dark

Plenty of apps re-order a collection. This one shows its work.

Auto-sorting and sold-out demotion are the whole category now, ours included. What is not the category is being able to check any of it. Every answer below is on screen inside the app.

Why this order

The rule is yours to read

You pick the criteria and how much each one counts, in plain words, and you can change either. On any product, the Similar tab goes further and names the signal behind every match — same type, shared tags, similar price. You read the reasoning instead of taking a score on faith.

On every plan
Before it publishes

See the exact new order

A side-by-side of what is live now against what the next run would produce — real product cards, not row numbers. Added, removed and reordered are counted for you.

On every plan
Your call

Approve, then push

Switch auto-publish off and a new order waits for your approval instead of going live. Or keep the collection manual: you choose which products belong in it, QSortby only decides their order.

On every plan
Right now

Is it still running?

The app home carries the last run alongside the state of the pixel and the catalogue sync. A sort that quietly stopped is the failure that costs the most and takes longest to notice — so the app tells you, rather than leaving you to spot it on your own storefront.

On every plan
After the fact

Every change on record

Config history keeps every ranking change with its date, so “which rule was live on the 12th, and what did that week earn” is a question with an answer rather than a guess.

On every plan
Is the number real

Attribution that says what it is

Revenue is credited last-touch, and the app calls it influenced — never caused. A test result is directional, never proven, and the minimum sample per arm stays on screen whether or not you have reached it. You always know what the number is, and what it is not.

On every plan

Sold-out demotion is the one thing that never waits — a product that hits zero sinks within minutes, and climbs back to its earned position on restock.

Illustration of the experiment report, not a result claim. Every sort can be A/B-tested against your current order; QSortby tracks clicks → add-to-cart → attributed revenue and calls significance, so the numbers you act on are your store's own.

See exactly how it ranks

Everywhere else

The same ranking, in the other slots.

A collection page is not the only place your store picks products for somebody. Each surface below is filled from the same live ranking, so none of them is a second list to keep up to date.

For youCollection page & feed

Each visitor can get their own order of the same collection, built from what this visit is doing — no login, no purchase history.

Growth
Best sellersAny theme block

A block that ranks itself on live demand and stays ranked.

Free
Cart drawer & cart pageCart

What is selling fastest right now, minus whatever is already in the cart.

Free
Free-shipping progressCart

How far the cart is from your threshold, and a product that actually closes the gap.

Free
Frequently bought togetherProduct page

Real co-purchase pairs from your own orders — and labelled as padded when there are not enough yet.

Starter
Thank-you pageAfter payment

The order is already placed, so an offer here cannot cost you the conversion.

Starter
PopupAny page

Fires on a moment you choose, behind AND/OR rules so it does not fire at everyone.

Pro
In-checkoutCheckout

Runs before payment, so an accepted offer joins the same order. Shopify limits this surface to Plus stores.

Growth

How the per-shopper feed reads a session →

Pricing

Start free. Upgrade when your numbers say so.

Every install opens with 10 days of full access — then settles onto the Free plan and keeps running. The app is never locked or switched off. Each step up adds exactly one thing.

Free
$0/ month

Real ranking, running forever. Not a trial.

  • Real-time best-sellers ranking, 1 collection
  • Sold-out auto-demotion
  • Keep paired products side by side
  • Cart upsell + free-shipping bar
Install free
Starter
$29/ month

For stores ready to sort by more than one signal.

  • Everything in Free, 5 collections
  • Personalized “For You” feed
  • Bought-together + thank-you upsells
  • 3 sort rules, 5 visitor types each
Start free
Most popular Pro
$99/ month

For growing brands that want the numbers behind every sort.

  • Everything in Starter, unlimited
  • Popup upsells + AND/OR display rules
  • Customer events & analytics
  • AI authoring — taxonomy + sort logic
Start free
Most advanced Growth
$199/ month

For stores that want a storefront tuned to each shopper.

  • Everything in Pro
  • Live per-visitor personalization
  • Personalized offers in cart, popup, checkout & thank-you
  • In-checkout upsell (Shopify Plus)
Start free

Compare all four plans in full → Billed via Shopify · cancel anytime

01InstallAdd QSortby from the App Store. No code, no card.
02Switch it onFlip the QSortby embed on in your theme editor. One toggle.
03Pick a signalChoose how each collection sorts, preview the before/after, done.
Questions

Good to know

Shopify already sorts by best selling — why do I need this?
Because the built-in sort is one fixed rule with no window you control, no sold-out handling, no per-shopper variation, and — the part that matters — no way to tell whether it earned you anything. QSortby lets you choose the signal and the window, demotes sold-out products automatically, can give each shopper their own order, and A/B-tests the result against your current sort with attributed revenue behind it. Install the Free plan on one collection and compare for yourself.
There are a lot of collection sorting apps. How is this one different?
Most of the feature list is the same on all of them, ours included — automatic sorting, sold-out demotion, rules on sales, margin and stock. Treat that part as a tie. What differs is whether you can check the result. QSortby lets you read and edit the rule itself — the criteria and how much each counts — and names the signal behind every similar-product match; it keeps every configuration change on record with its date, so you can tell which rule was live in any week; shows the last run beside your pixel and catalogue-sync state on the app home; and labels revenue influenced — never caused — with the minimum sample per arm on screen whether or not you have reached it. None of that is a paid tier. Install Free on one collection and look at it.
Is there really a free plan, or is it a trial?
A real plan. Every install starts with 10 days of full access to every feature, then drops to Free — one managed collection with real-time ranking, sold-out demotion and revenue attribution, running indefinitely at $0 with no card. Paid plans add collections, personalization and analytics; they don't turn the core back on, because it was never off.
What algorithm does QSortby use to maximize conversion value?
There's no single black-box formula. You pick the ranking signal per collection — sales velocity, revenue, margin, conversion rate, trending momentum, selling-fast, repeat-purchase, engagement or newest — and QSortby scores your catalog in real time, keeping in-stock products first. The part that answers "maximum conversion value": you can A/B-test any sort against your current order, and QSortby measures the funnel it drove (clicks → add-to-cart → influenced revenue, via last-touch attribution) and reports statistical significance — so the winning sort is the one the data proves, not a guess.
What can QSortby sort by?
Eleven live signals: sales velocity, revenue (GMV), margin, conversion rate, trending momentum, selling-fast (velocity vs. remaining stock), repeat-purchase rate, engagement (clicks / CTR / dwell / add-to-cart), review score — read straight from the review app you already run, with nothing to set up — or newest, over a rolling or fixed window you choose. Save any signal-and-window pair as a named preset and point other collections at it. Per-visitor "For You" ranking blends weighted signals per shopper. Or order any collection by hand.
How do I know it actually lifts sales?
QSortby runs an A/B test between the new sort and your current order, then attributes downstream orders (last-touch) to the feed a shopper interacted with — reporting click-through, add-to-cart and influenced revenue per variant with a significance verdict. You see the lift on your own store, you're not taking it on faith.
Will QSortby change my collections without me seeing it first?
Only if you want it to. Every collection has a before/after preview — the exact order the next run would produce, side by side with what's live, as product cards with added, removed and reordered counted. You can switch auto-publish off entirely, so a new order waits for your approval, or keep the collection manual and let QSortby decide only the order of products you picked yourself. Every published order is stored with the configuration behind it, so you can always see what changed and when. Preview, manual order and exclusions are on every plan, including Free.
How do I know it is still running?
The app home carries the last run next to the state of your pixel and catalogue sync, so a sort that has stopped shows up there instead of on your storefront. Every published order is stored with its timestamp and the configuration that produced it, so “when did this collection last change, and to what” has an answer you can read rather than infer. Sold-out demotion is the one thing that never waits — a product that hits zero sinks within minutes and climbs back to its earned position on restock.
How does the per-shopper feed decide what to show?
Two halves, and you can inspect both. On the product side, QSortby drafts a fit tag for each item — comfort, gifting, reassurance, effortless, classic and so on — and you approve or rewrite them; you can open any product and check its tag. On the session side, it reads what this visit is actually doing — pace, dwell, revisits, comparisons, hesitation before the cart — and leans the feed toward the matching tags. You set the signals and their weights yourself, so the rule behind any order is one you can read and edit — never a black box. Pro gets the read as a report while your storefront stays untouched; Growth applies it live per shopper, behind the same A/B test and attribution as everything else. Cost is capped per store: reads are cached per behaviour pattern and there's a daily ceiling, past which the rule-based classifier answers instead — the feed never degrades.
Is this a sorting app or an upsell app?
Both, and they run off the same engine — that's the point. The ranking decides which products a shopper meets; the upsell surfaces decide what else goes in the basket. Because the offers are fed by the same live signals, they suggest what's actually selling and actually in stock instead of a static list you have to keep updating. Six surfaces: cart drawer and cart page, a free-shipping progress bar, frequently-bought-together on the product page, a thank-you-page offer, popups with AND/OR rules, and an offer inside checkout itself. The first two are on the Free plan.
Will the upsells slow my storefront down?
No. Suggestions come off a pre-ranked pool rather than a fresh catalog scan, the per-shopper step is a cheap reorder of that pool, and nothing is added to your theme's critical path — the widgets render after the cart, not before it. If a request fails, the section simply doesn't appear; a cart never blocks on an offer.
Do I need to edit my theme?
No code. QSortby maintains standard Shopify collections — add them like any other. One step does happen in the theme editor: flip the QSortby embed on so we can read the behavioral signals that drive ranking and attribution, and drop in a block if you want the personalized or best-seller feeds rendered on a page. Toggles only — nothing to edit.
What happens when a product sells out?
It drops to the bottom automatically, and returns to its earned spot once restocked.
Will the product feeds look like the rest of my store?
Yes — because they are rendered by your own theme, not by us. The best-seller and For You blocks can hand Shopify your theme's product-card snippet, so the cards come out with your markup, your CSS and your badges: a QSortby feed is indistinguishable from a native collection grid. Nothing to restyle, and nothing to redo when you change theme. Most apps ship their own card markup, which is why they never quite match.
Can I keep products that belong together side by side?
Yes. Pairing rules group products by vendor, product type, tag or a metafield you choose, and hold the group together when the collection re-sorts — in an order you set inside the group, so the shirt leads, then the trousers, then the shoes. You also choose what happens when one of them sells out: keep the group as it is, hide the missing item, demote it, or split the group. Write the rule once and point any collection at it.
Can I see what a sort did after the fact?
Yes. Every published order is stored together with the configuration that produced it, and orders are attributed back to the feed a shopper actually interacted with. So “what did this collection look like on the 12th, which settings produced that, and what did that version earn” is a question with an answer — not a guess from memory.
Get started

Let your storefront optimize itself — and prove it did.

Install free, run it on one collection, and read the attributed revenue in your own dashboard.

10 days full access Install free