Shopify product catalog glossary

The fields, objects and concepts behind a Shopify catalog, defined in plain English. Every term links to itself, so you can point someone straight at a definition.

Product data

Variant
A variant is a single purchasable version of a Shopify product, defined by its option values such as size and colour. Price, SKU, barcode, inventory and cost all live on the variant rather than the product, so a product with twelve variants has twelve independent sets of those fields to keep track of.
Product options
Product options are the axes a Shopify product varies along, such as Size, Colour or Material. Each combination of option values produces one variant, which is why adding a third option can multiply a product's variant count without any obvious change to the product itself.
See also: Variant
SKU
A SKU (stock keeping unit) is the merchant's own internal identifier for a variant. Shopify does not generate or validate SKUs and does not require them to be unique, so a SKU silently overwritten by an import or a feed app can break warehouse picking, accounting and reporting at once.
See also: Variant, Barcode
Barcode
A barcode is the external identifier on a Shopify variant, typically a UPC, EAN or ISBN. Marketplaces and shopping feeds match products on this field, so an incorrect or blanked barcode usually shows up as a rejected listing rather than as a visible problem in the Shopify admin.
See also: SKU, Product feed
Handle
A handle is the URL slug Shopify derives from a product or collection title, as in /products/blue-canvas-tote. Editing a title can change the handle, which changes the live storefront URL and breaks any link, ad or feed entry pointing at the old one.
See also: SEO fields
SEO fields
Shopify's SEO fields are the page title and meta description shown under a product's search engine listing section. They default to the product title and description, and because they are edited separately they are among the easiest fields for an app or a bulk edit to overwrite without anyone noticing.
See also: Handle, Metafield
Tags
Tags are free-form labels on a Shopify product, used for filtering, search and automated collection rules. Because automated collections can be built on tag conditions, removing a single tag can quietly drop a product out of a collection and off a storefront page.
Metafield
A metafield is a custom field attached to a Shopify resource such as a product, variant or collection, holding data the standard fields do not cover. Theme sections and apps often read metafields directly, so a changed or emptied metafield can alter what the storefront displays without any edit to the product itself.
See also: SEO fields, Variant
Product status
Product status is Shopify's active, draft or archived state, and it controls whether a product can be sold at all. A product flipped to draft disappears from the storefront immediately while still existing in the admin, which is why an accidental status change often looks like a traffic problem before anyone thinks to check the product.
See also: Sales channel
Sales channel
A sales channel is a surface a Shopify product is published to, such as the online store, Point of Sale, or a marketplace integration. Publication is per-channel, so a product can be active and in stock yet invisible on one channel because it was unpublished there.
Manual collection
A manual collection is a Shopify product grouping whose membership is set by hand, one product at a time. Membership changes only when someone or something explicitly adds or removes a product, which makes unexpected changes to a manual collection a strong signal that an app or an import touched it.
Automated collection
An automated collection, also called a smart collection, decides its own membership from rules about product fields such as tag, price, vendor or inventory. Products enter and leave it as those fields change, so an edit to one product's tags can reshape a collection page nobody touched directly.

Pricing and inventory

Compare-at price
The compare-at price is Shopify's field for the original price of a variant, shown struck through next to the current price to display a discount. Because a sale is created by lowering the price and setting compare-at, a sale that ends without the compare-at price being cleared leaves a permanent phantom discount on the storefront.
See also: Variant, Bulk editor
Cost per item
Cost per item, exposed in Shopify's API as unit cost on the inventory item, is what the merchant paid for a unit. It never appears on the storefront and exists to drive margin and profit reporting, so an incorrect cost distorts every margin figure downstream while looking entirely normal to customers.
See also: Variant
Inventory level
An inventory level is the quantity of one variant available at one location. Shopify tracks stock per location rather than per product, so a store with three locations holds three separate numbers for every variant, and a sync error at a single location can oversell an item that looks well stocked in total.
See also: Location, Variant
Location
A location is a place a Shopify store holds stock or fulfils orders, such as a warehouse, a retail shop or a third-party fulfilment centre. Inventory quantities, and therefore inventory changes, are always recorded against a specific location.
See also: Inventory level
Bulk editor
The bulk editor is Shopify's spreadsheet-style grid for changing a field across many products or variants at once. It has no undo, no confirmation step and no record of prior values, which makes it the single most common way a store loses pricing data it cannot reconstruct.

Change tracking

Field-level history
Field-level history is a record of individual field changes, capturing which field changed, its value before, its value after, and when. Shopify does not provide this for products, which is the difference between knowing a product was edited and knowing that its price moved from $89.00 to $71.20 at 9:42 AM.
Audit trail
An audit trail is a chronological record of changes that answers what changed, when, and who or what changed it. For a product catalog it is what turns a disputed edit into a checkable fact, which matters most for agencies accountable to clients for a store they do not solely control.
Attribution
Attribution is the record of what caused a change: a named staff member, an app, an import, or the API. Shopify surfaces the responsible actor inconsistently, so any change-tracking tool can identify the source of an edit reliably but can only name the individual person when Shopify itself recorded one.
See also: Audit trail
Snapshot
A snapshot is a full copy of catalog data captured at one moment, typically a scheduled CSV export. Snapshots are not change history: comparing two daily exports cannot reveal a price that changed at 9:42 AM and changed back by 4 PM, cannot alert anyone at the time, and cannot say what made the edit.
Revert
To revert a change is to write a field's previous value back to the live store. Reverting requires two things Shopify does not keep for products: a stored record of the old value, and write access to put it back, which is why a bad bulk edit is otherwise unrecoverable.

Integrations and APIs

Webhook
A webhook is a message Shopify sends to an app the moment something happens in a store, such as a product being updated. Webhooks arrive within seconds of the event, which is what allows a change to be recorded when it happens rather than discovered by a scan hours later.
See also: Polling, Admin API
Polling
Polling is repeatedly asking Shopify for current data on a schedule instead of being notified of changes. It is slower and heavier than webhooks and misses anything that changes and changes back between two checks, but it remains a useful backstop for catching events a webhook failed to deliver.
See also: Webhook
Admin API
The Shopify Admin API is the interface apps use to read and write store data, offered as GraphQL. Apps request only the access scopes they need, so an app scoped to read products has no technical route to customer or order data at all.
Access scope
An access scope is a specific permission a Shopify app requests, such as read_products or write_products. Scopes are shown to the merchant at install and enforced by Shopify, which means an app cannot quietly widen what it can reach without asking again.
See also: Admin API
Product feed
A product feed is an automated export of catalog data to an external channel such as Google Shopping, Meta or a marketplace. Feed apps often write back to Shopify as well as read from it, which makes them a frequent and easily overlooked source of unexplained product changes.