How Products in an Online Catalog Become Findable and Comparable

product catalog

Table of Contents

Each item in an online product catalog works best as a structured record, with a stable identifier, a defined unit of sale, variants, typed attributes and a price, and the page a shopper sees should be generated from that record rather than written as standalone copy. The field that decides whether two listings can be compared at all is the one most stores leave buried in the title: what exactly one unit of sale includes.

The Moving Parts Behind a Product Record

Start with the identifier. A SKU (stock keeping unit) names one thing a customer can put in a cart, which means one SKU per sellable variant, not one per page. A silk blouse offered in four sizes is one product page and four SKUs. A wheel-and-tire package sold only as a full set is one SKU, even though four wheels ship.

Above the SKUs sits the parent record. The parent holds what every version shares: brand, material, the long description, care instructions, the photo set. Each variant holds only what differs, such as size, colour or finish, plus the three fields that change most often: price, stock and the identifier itself. When a shopper picks "Medium" on a product page, the page is swapping in a different variant record, not loading a different product.

Attributes are where a catalog becomes queryable. A useful attribute is typed: either a number with a declared unit (wheel diameter in inches, rim width, garment length in centimetres) or a value chosen from a fixed list (colour family, fabric, finish). Free text looks fine on a page and is useless to a filter, because a filter can only match values it can predict.

The unit of sale is its own attribute, and it deserves a dedicated field rather than a parenthetical. "Set of 4", "frame only", "per metre" and "sample size" each change what the price means. A catalog that stores quantity and contents as data can sort by price per wheel, flag that a bike frame ships without fork or wheels, and keep a trial-size item from masquerading as the cheapest version of the full product.

Collections, search and the product page all read from these same fields. Google's Merchant Center Help keeps a page titled Tips to optimize your product data, and the title alone tells you how the listing is being treated: as product data, not prose. Any online store to buy products from runs on the same logic, whether or not anyone designed it that way.

Why Page-First Catalogs Fall Apart

The usual approach builds the page first and lets the record be whatever the page needed. Facts end up in titles and descriptions because that is where the writer was typing. "Polished Silver Multi-Spoke Wheel Set (Set of 4)" reads clearly to a person and gives a filter nothing to work with, since quantity, finish and spoke style are all trapped in one string.

Shared field names cause the next leak. In a catalog that spans categories, a single "Size" field can mean wheel diameter on one product, dress size on another and pack weight on a third. Any filter built on that field returns a meaningless mix, and sorting by it is worse. The fix is category-specific attributes, which page-first catalogs rarely have because nobody planned the schema before the first listing went live.

Stock is where shoppers feel the breakage directly. Availability belongs to the variant, yet page-first catalogs often display one status for the whole product. A buyer checking alloy wheel set stock availability online sees "In stock" because a different finish is available, adds the set to the cart and only learns otherwise at checkout or after paying.

Hand-curated collections decay on their own. A "New Arrivals" or "Black Tops" collection maintained by dragging products into it is correct on the day it is built and wrong the first time someone adds a product and forgets the folder. Rule-based collections stay accurate because they are recomputed from attributes, but they only work if those attributes exist and are spelled consistently.

Building Product Records That Filter and Compare Cleanly

  1. Write the unit of sale for every product before touching photos or copy. Record the quantity, what is included and what is excluded, as fields. Shoppers who are used to reading the unit before the price (reading the unit before the price is a habit worth building) will find it immediately; shoppers who are not will still be protected by it.
  2. Split each product into a parent and its variants. Shared facts go on the parent once. Size, colour, finish, price and stock go on each variant, so updating one blouse size never touches the others.
  3. Give every variant its own SKU and treat it as permanent. If a product is reworked enough that an old review or old order would describe something different, it gets a new SKU rather than an edited one.
  4. Convert every fact a shopper might compare into a typed field. Numbers carry units, choices come from a fixed list, and each category gets its own attribute set so wheel width and garment size never share a column.
  5. Define collections as rules over those fields. "Clothing, colour family black, in stock" maintains itself; a manually filled folder does not.
  6. Generate titles from fields instead of writing them freehand. A pattern such as brand, product type, key attribute and unit keeps titles consistent and makes a missing field obvious the moment a title renders with a gap.
  7. Attach reviews to the parent and capture fit feedback as data. A shopper reading black blouse reviews online shopping for sizing guidance gets far more from a "runs small / true to size / runs large" field summarized across all sizes than from scrolling for the one review that mentions it.
  8. Set a refresh schedule for price and stock separately from everything else. Descriptions change rarely; availability can change hourly, and those two fields need their own update rhythm.

Mistakes That Quietly Break Comparison

Listing each size or colour as a separate product feels simpler at upload time and costs you everywhere afterwards. Reviews scatter across five near-identical pages, descriptions get copied and then drift apart, and a collection page looks padded with duplicates. Search engines and on-site search both see competing pages for what a shopper considers one item. Consolidate them under one parent and keep the differences in variant fields.

A shopper sorting wheels by price shows the next problem clearly. Someone who wants to buy alloy wheels online as a set of 4 will see a single-wheel listing sort below a full set and assume it is the bargain, when the set may cost less per wheel. Mixed units inside one sortable collection make the sort actively misleading. Either standardize the unit within a collection or store a per-unit price and sort on that.

"Black", "black", "Jet Black" and "Noir" are four filter values to a machine and one colour to a person. Free-text attribute entry produces exactly this, and the result is a colour filter where half the black garments are missing from the "Black" option. Keep a controlled vocabulary for filterable fields and put the poetic name ("Noir") in a separate display field.

Reusing an identifier after a product changes corrupts its history. Old reviews now describe a different item, past order data mixes two products, and any external feed that matched on the SKU starts sending shoppers to the wrong thing. New version, new SKU.

Samples and trial sizes cause a distortion that is easy to miss. When a sample is added as a variant of the full product, the product's "from" price drops to the sample's price, and a price-sorted collection pushes it to the top as the cheapest option. The same happens when a frame-only bike listing sits beside complete bikes: a shopper trying to buy a BMX bike frame online cheap may find exactly what they want, while a shopper wanting a rideable bike is misled by the sort. Anything with a different unit of sale belongs in its own record, clearly labelled.

What Catalog Documentation Says About Update Speed

The Google Cloud Retail documentation says catalog changes can be uploaded as often as needed, and ideally every day for catalogs with a high rate of change. That framing is useful because it separates catalogs by how fast they change rather than by how big they are. A small store with limited-run pieces can be a high-change catalog; a large store of staple items may not be.

Even infrastructure designed for frequent updates does not reflect every change the instant it is made. For a merchant, that argues for treating stock shown on any downstream surface as slightly behind reality, especially on one-off items where a single sale empties the shelf.

For shoppers, the practical reading is simple. Price and availability are the fields most likely to be briefly out of date, so the cart and checkout, which read the live record, are the place to confirm them. Whether you are trying to buy a black blouse online cheap or confirm a high-value wheel set is still available, the final confirmation step matters more than the collection grid.

How Wood R Us 69 Runs Its Own Catalog

Wood R Us 69 is an e-commerce store hosted on Shopify (myshopify.com subdomain). Every product in our catalog carries a listed price. Our collections page lists all products in one place, so you can see the full range without guessing which folder something was filed under. We also offer product samples, such as Gummy Bears - Sample.

Our catalog mixes unrelated categories: auto parts, clothing, food and flowers. That range is the point of the store for eclectic, premium shoppers, and it is also exactly the setting where a shared field like "size" can mean different things on different items. So read each product's name and unit on its own page: a wheel set, a blouse and a bike frame each define their unit differently, and we would rather you know precisely what one unit buys before you add it to your cart. Our blog mixes gummy bear and wood craftsmanship topics, so expect the reading to be as eclectic as the shelves.

Who should shop elsewhere? We have no pricing tiers, only individual product prices. Buyers who need volume or tiered pricing will want a store built around that model, and shoppers who want a deep catalog devoted to a single category will find our mixed range less suited to them. If you want distinctive pieces across categories at clear individual prices, start with our collections page and work from there.

  • How to Read Customer Reviews Against the Listing Before You Buy
  • Prices for Items: How to Judge Them Against the Unit and the Catalog

Frequently Asked Questions

What fields should every catalog product have?

At minimum: a SKU for each sellable variant, a parent record holding shared details like brand, material and description, a defined unit of sale stating quantity and what is included, typed attributes for anything a shopper might filter or compare, and a price and stock status on each variant. Typed means a number with its unit, or a value from a fixed list, rather than free text. With those in place, collections can be built as rules, titles can be generated consistently, and filters return what shoppers expect instead of a partial or mixed set.

Should each size or colour be listed as a separate product?

No. Keep one parent product and record sizes and colours as variants, each with its own SKU, price and stock. Separate products for each size scatter reviews across near-duplicate pages, let copied descriptions drift apart and make collection pages look padded. The exception is anything with a different unit of sale, such as a sample or a frame sold without parts. Those deserve their own records so they do not drag the parent's starting price down or confuse a price sort.

How often should an online catalog be updated?

Update according to how fast the catalog changes, not how large it is. Google Cloud Retail documentation suggests daily uploads for catalogs with a high rate of change. Price and stock usually need a faster rhythm than descriptions or photos, so schedule them separately. Also expect some lag: cached catalog data on downstream surfaces can trail the live record, which is why one-off or limited items need the most frequent stock updates and why shoppers should confirm availability at checkout.

Why does a product not show up when I filter a store's catalog?

Usually because the attribute the filter relies on is missing, misspelled or stored as free text. A blouse entered as "Jet Black" will not appear under a "Black" filter unless the store maps that name to a colour family. In mixed-category stores, a shared field such as size can also hold values the filter does not recognize. Browsing the full collections page or searching by product name will often surface items a filter misses.

Sources

  1. Google Cloud Retail documentation