A store-wide sale says the same thing to everyone: everything is cheaper, for a while. The customers who were going to buy anyway get a discount they did not need. The customers who were waiting learn to wait. And the sale ends with the whole store repriced in people's heads.
Randio says something different, to one person at a time: here are a few products picked for you, at prices that are yours, until this date. Nobody else sees that page. The rest of the store stays at full price.
What a catalog is
A catalog is a small set of products with a discount on each one, built for one customer and valid for one run of a campaign. It lives on its own page in your Online Store, arrives by email, or shows up in a block on your storefront, depending on the campaign type.
Small is the point. A catalog holds between 2 and 12 products. It reads as a selection, not a sale list, and each product carries one price for that customer. Another customer's catalog holds other products, or the same product at a different price.
What the engine does
You describe the offer once, as a strategy. A strategy is a handful of pools, each a collection or a single product, each with its own rule:
- Guaranteed pools go into every catalog. This is where the products you want everyone to see live.
- Chance pools go into some catalogs. A pool at 25% chance reaches roughly one customer in four.
- Limited pools go in until they run out: you set how many customers can receive them. This is where the deepest deals belong.
Each pool also carries its discount: one fixed percentage, or a range with a setting for how often a draw lands near the top. When a campaign run starts, the engine draws a catalog for every customer in the audience, draws each product's percentage from its pool's rule, and freezes the result. Nothing about that catalog changes until the run ends, whatever you edit in the meantime.
The strategy editor tells you how many distinct products your pools need so that catalogs stay mostly unique across the audience. With enough products, two customers comparing notes find different pages.
How a price reaches the checkout
The catalog page and the email show the original price, the personalized price and a label. When the customer adds a product, the cart line is marked as coming from their catalog. An invisible app embed in your theme keeps a signed token in the cart, and at checkout a Shopify Function reads that token and prices every Randio line at the customer's price. The discount appears as a line discount on the order, nowhere else.
Three rules keep this contained. One discounted unit per product per catalog by default; extra units are charged at full price. A cart follows one catalog at a time. And a catalog dies with its run: after the end date the token stops validating, and anything still in a cart simply goes back to full price. The item is not removed; the customer decides.
Two ways to deliver it
An Outreach campaign emails a customer group. Every reachable member gets a personal catalog and a link to it, with an optional reminder before the run ends. You choose the group, so you choose who hears about the offer, and nobody outside it does.
A Storefront campaign shows catalogs on the store itself. In Logged In mode each signed-in customer gets a personal catalog. In Guest mode anonymous visitors are served from a shared pool, and the same visitor keeps seeing the same catalog for the length of the run.
Both can run at once. A customer holding a live catalog from one campaign is not emailed by another until it ends, so offers do not pile up on one person.
What it protects
Margin, because every pool has its own floor and you decide which products ever get the deep end. The price list, because a personal catalog is not a public event and does not train customers to wait. And attention, because a page with six products and one deadline asks a clearer question than a storefront banner.
What it costs to try is a flat monthly fee plus the outreach emails you send; the arithmetic is in Budgeting a month of Randio. The pieces you set up, in order, are in Setting up your first campaign.