Home Bilby — store monitor Free store scan Free tools AI apps Navaal SEO app Blog Services Studio Contact Sign in

A catalogue of 10,304 products, made shoppable.

EBS Bathroom and Plumbing Supplies sells 10,304 products across 27,409 variants, 36 brands and 935 collections. This page is what that actually took: a data layer that knows which parts fit together, 6,924 catalogue defects found and worked through, a supplier range migrated with zero data loss, and trade quoting that produces a PDF instead of a cart.

Disclosure: this store is owned by this studio’s owner. It is a real build with real numbers and it is not an arm’s-length client reference — both are true, and you should weigh the page accordingly. Status: built, in final checks before launch. Figures read 14 October 2026.

// The scale

The numbers the build had to survive.

10,304products
27,409variants
36brands
935collections
84.06% → 88.38%catalogue healthacross 6,924 logged defects

Why scale changes the job

At fifty products a person can hold the catalogue in their head and check it. At 10,304 products and 27,409 variants nobody can, so the knowledge has to live in the data: which top fits which vanity, which basin a top can take, which finish matches which tap. The theme then renders what the data says and computes nothing itself — which is the only way a change to a matching rule can be made by someone who does not write Liquid.

Catalogue health is the measure of that data. 6,924 individual defects were logged and worked through — missing dimensions, empty descriptions, variants that could not be matched, products whose own data did not say what they were — moving the score from 84.06% to 88.38%. The rest is mostly supplier data that does not exist yet, and we would rather show a store with 88.38% and an explanation than claim 100%.

// The migration

Moving a supplier range without losing anything.

The Lukka Bathware range: 479 products and 1,767 SKUs, with zero data loss, 92 redirects and 45 duplicate product families merged rather than carried across.

Lukka, before 479 products1,767 SKUs Compare as a set every product, SKUimage and price Merge duplicates 45 familiesmerged, not carried Map every URL 92 redirects301, each tested In the store zero data lossverified afterwards The two steps in the middle are the ones a migration skips when it is in a hurry, and the two nobody can check afterwards. A duplicate carried across is permanent. A URL nobody mapped is a 404 that was earning traffic last week.
How the Lukka range moved. “Zero data loss” is a claim about a comparison, not a feeling: the set afterwards equalled the set before.
479products moved
1,767SKUs
zerodata losscompared as a set, not spot-checked
92redirects301, each one tested
45duplicate families merged
// The storefront

What it looks like.

Screenshots of the live storefront, taken on the day this page was published. Not mockups, and not a render.

The EBS storefront homepage: the range navigation, a search field and the first rows of products.
The storefront homepage.
A collection page for vanities, with filters down the left and product cards showing finish and size attributes.
A collection page. The facets come from the catalogue’s own data — which is why they can be trusted across 10,304 products.
The same homepage on a 390 pixel wide phone screen.
The same homepage on a phone, where most of the traffic is.
// Trade

A quote, not a cart.

A plumber specifying a bathroom does not want a checkout. They want a quote they can hand to their own client, with the right products and the right prices on it.

So the store builds a Shopify draft order from a selection and produces a PDF from it: the same catalogue, the same prices, on paper, without a retail checkout in the middle. It uses Shopify’s own draft-order mechanics rather than a parallel quoting system, which means a quote can become an order without anybody retyping it.

// Questions

Straight answers.

Is this your own store?

Yes. EBS Bathroom and Plumbing Supplies belongs to this studio’s owner, and we say so at the top of the page rather than in a footnote. It is a real build with real numbers and it is not an arm’s-length client reference — both of those things are true at once, and you should weigh the page accordingly.

Is the store live?

Built, in final checks before launch. Everything on this page describes work that is done and measurable today; the launch date is the owner’s to announce. The screenshots are of the live storefront, taken the day this page was published.

What does “catalogue health” mean?

A score over the whole catalogue, built from the defects that actually cost a sale: a missing or wrong dimension, an empty description, an unmatched variant, a product that cannot be filtered because its data does not say what it is. 6,924 individual defects were logged and worked through, which moved the score from 84.06% to 88.38%. The remaining gap is mostly supplier data that does not exist yet.

Why does a catalogue this size need different work?

Because the failures are different. At fifty products a person can check the catalogue. At 10,304 products and 27,409 variants, nobody can, so the data has to carry the knowledge: which top fits which vanity, which finish matches which tap, what is in the box. That is a data problem with a rendering layer on top, and treating it as a design problem is why big catalogues end up with 935 collections nobody maintains.

What were the trade quotes for?

A plumber specifying a bathroom wants a quote, not a cart. The store builds a Shopify draft order from a selection and produces a PDF the trade customer can take to their own client — the same products, the same prices, on paper, without a retail checkout in the middle of it.

Can you do this for a catalogue you do not own?

Yes, and that is the point of publishing the numbers. The work is the same whether the store is ours or yours; what the ownership changes is how much weight you should put on this page as a reference, which is why it says so up front.

A catalogue like this, or a migration like that.

Shopify builds start at A$4,900 and a migration at A$4,500, both ex GST. The cost guide prices your own build with the hours shown, and its form carries the estimate into the message.