/ Research · Shopify · October 2026

What is a supplier catalogue missing for Shopify?

An engine spare parts distributor gets its products as PDF catalogues, another shop’s listing and a price list. No supplier has an API. I counted what each file brings, field by field, across 37,948 products, and compared it with what Shopify and Google need to sell them.

Company
One distributor of engine spare parts in Spain, anonymous
Sources
5: three PDF catalogues, one online shop listing and one market price list
Products
37,948, after filtering out what is not an engine part
Compared with
Shopify CSV import, Search & Discovery and Google Merchant Center
Measured
25 Oct 2026, on the full files
Data
CSV · JSON

Not on this page: supplier names, the company’s name or any single product. Only counts.

The numbers

0products with a photo, barcode or weight
3.8%arrive with a description
1,179distinct models to filter by; a filter shows 100
24.7 MBfull CSV; Shopify takes 15 per import
65%of listings get a generic image

What data arrives from suppliers

Every product has a name and 91% end up with a price. Only 3.8% come with a description and compatible engines, all from the PDF catalogues. No file brings a photo, barcode, weight, stock, lead time, cost or cross-references.

What each product arrives with

Share of the 37,948 products. Price counts after joining sources by reference.

  • Name100%
  • Family99%
  • Price91%
  • Description3.8%
  • Compatible engines3.8%
  • Photo0%
  • Barcode (GTIN)0%
  • Weight0%
  • Stock0%
  • Lead time0%
  • Cost price0%
  • Cross-references0%
Most productsUnder halfNo product at all

What each missing field means in Shopify

Each empty field has consequences in the shop: it changes how orders ship, how customers filter and whether Google shows the product. For each one, what Shopify does with it and what the tool decided.

PhotoNone

Product media. Google Merchant Center rejects placeholders such as “coming soon”, but allows a generic image or illustration in Vehicles & Parts (category 888).

One generic image per part family on 22,211 listings, with “indicative image” in the alt text. The rest go without.

Barcode (GTIN)None

Barcode column. Without a GTIN, Google ranks the product lower but accepts brand + MPN instead.

The supplier reference goes into the SKU, ready to be used as the MPN. Barcode stays empty instead of invented.

WeightNone

Shipping. Weight-based rates and carrier-calculated rates need a weight on every variant.

Weight column ready but empty. Shipping has to use flat or price-based rates until a supplier sends weights.

Stock and lead timeNone

Inventory. Tracked inventory stops selling at zero. Untracked, the product can always be bought.

Inventory not tracked, continue selling, and an availability metafield set to “Ask”, with the shop phone in the description.

Cost priceNone

Cost per item. Feeds Shopify’s margin and gross profit reports.

Empty. Prices come from the market, not from a tariff, so there is no cost to report yet. The column fills itself once a tariff arrives.

Description3.8%

Product page and SEO. Title, body, SEO title and meta description.

Titles rewritten and translated from the name. SEO title and meta description generated for 34,339 of 34,339 listings.

Compatibility3.8%

Metafields and filters. Make, models and engine codes as list metafields that Search & Discovery can filter on.

Written to three metafields. Section 04 shows why a plain filter will not hold them.

Family99%

Product type, tags and collections. Automated collections pick products by tag.

134 product types and one tag per engine system, so 15 automated collections fill themselves.

The five sources

Source C, an original parts listing saved from an online shop, has 107,632 rows. 71,118 are dropped as not engine parts. The remaining 36,514 are 96% of the catalogue and bring a name, a reference and a price, with no description, no engines and no family: the tool works out the family from the name for 35,970.

Where the 37,948 products come from

C · online shop listing · 36,514 (96%)A, B, D, E · 1,434
Name, reference and price onlyPDF catalogues with description and engines

The PDFs are the opposite: descriptions and engines, no prices. B and D take their price from list E by joining on the reference: 1,259 of 1,289 and 135 of 137.

SourceFormatRows readKeptPriced after joiningWith description
A · Gasket cataloguePDF8808
B · Catalogue by engine makePDF1,2891,2891,2591,289
C · Original parts listing from an online shopWeb107,63236,51432,9850
D · Piston cataloguePDF137137135137
E · Market price listWeb1,4261,4261,3940

Vehicle filters in Shopify

Search & Discovery can filter on list text metafields, but a filter shows at most 100 values in the shop and a group holds 200. Vehicle make fits: 10 values. Models and engine codes do not: 1,179 models on only 559 listings, and 707 codes on 450.

Distinct values per filter

  • Vehicle makes
    on 34,333 listings
    10
  • Engine codes
    on 450 listings
    707
  • Models
    on 559 listings
    1,179
100: most values a Search & Discovery filter shows in the shop

Make does not narrow much either: one make is on 97% of listings. What works from day one are the 15 automated collections by engine system. Searching by model or engine needs a fitment search (an app or metaobjects), and first, more compatibility data from suppliers.

Generic images per family

With no photos, each listing gets its family’s generic image when there is one: 22,211 listings, 65%. Google accepts it because the parts sit in the Vehicles & Parts category. A gasket looks like the next gasket; a sensor or a workshop tool does not, and there coverage drops to almost zero.

Listings per system, and how many get an image

Bar length: listings, out of 34,339. Percentage: share with a generic image.

  • Fuel system70%
  • Gaskets and seals98%
  • Pipes, fittings and connections87%
  • Cylinder head and timing21%
  • Bolts and fasteners61%
  • Pistons, rods and crankshaft41%
  • Turbo, intake and exhaust73%
  • Cooling system56%
  • Repair kits and sets84%
  • Lubrication system24%
  • Electrical system and sensors6.4%
  • Workshop tools0.7%
  • Filtration75%
  • Hydraulics62%
  • Other engine parts15%
With generic imageWithout image

Shopify's import limit

The full import file weighs 24.7 MB and Shopify takes 15 MB per CSV. It has to go in two or more parts, or as samples, which is how the tool starts.

Full import file

  • 34,379 rows24.7 MB
15 MB: largest CSV Shopify accepts per import

Updating prices has its own trap. With “Overwrite products with matching handles” on, a blank cell clears the value in the shop. That is why price changes go in a separate CSV with only 7 columns, matched by SKU: title, URL handle, option name and value, SKU, price and cost.

Two changes tested and not applied

Both improved a number, but checked by hand they made the shop worse.

Image by name

22,211→25,311

Looking up images by words in the name gives 3,100 more listings a picture. In a hand-checked sample, 14 of 15 showed the wrong part. A wrong photo breaks Google’s rule that the image shows the product.

Off by default

Filtering by whole words

37,948→37,183

Cleaner on paper. On the full files it removes 840 products, 420 of them springs, and lets in 75 that are not engine parts, such as cable grommets. What the shop sells is the client’s call.

Not shipped

How it was counted, and its limits

  • One company, five sources. It describes this case, not the whole sector.
  • Counts come from the tool itself on the full files, run on 25 October 2026. A field counts as present when it is not empty.
  • Sources anonymised as A to E. Product-level data is the client’s; the downloadable files only hold the counts on this page.
  • Market prices from source E and the online shop listing, not the distributor’s tariff.
  • The image test was checked on 15 listings: enough to see the problem, not to size it exactly.
  • Shopify and Google limits taken from their documentation on 26 October 2026.

Sources: Shopify: importing products with a CSV file · Shopify: Search & Discovery filters · Google: image link · Google: product identifiers

How the tool that did the counting was built: the case study.

/ Next

I check before I publish.

The counts come from the tool I built with help from Claude. What to count, the manual review of the samples and which changes not to ship were my call. If your team has a catalogue that does not add up, email me.