# What Is a SKU (Stock Keeping Unit) and How to Use It?

> What a product SKU is, how it differs from a GTIN and an MPN, how to create one per variant on Shopify or BigCommerce, and where Google asks for it.

URL: https://clione.ai/glossary/sku/
Lang: en

Around the store it is just "the item code," and in the Shopify admin it is the SKU field in the inventory section of each variant.[^shopify-sku] What matters is whose it is: **you make up the SKU**, not the manufacturer and not any standards body. It matters to you because it is the piece that ties together the warehouse, the store admin, the [Google Merchant Center](/glossary/google-merchant-center/) _feed_ and the [structured data](/glossary/structured-data/) on every [product page](/glossary/product-page/), and because it is often confused with two codes that are not yours: the [GTIN](/glossary/gtin/), the number under the barcode, and the [MPN](/glossary/mpn/), the code the manufacturer assigns.

## How it works

Shopify defines it as a code you can use internally to **track your inventory and analyze your sales**, and makes clear it is not the same as a barcode: they serve different purposes and a product can carry both.[^shopify-sku] [Schema.org](/glossary/schema-org/) defines it the same way from the machine side: the SKU is a merchant-specific identifier for a product or service, or for the product to which an offer refers, with a text value, and the types [Product](/glossary/product-schema/), [Offer](/glossary/offer-schema/) and Demand can carry it.[^schema-sku] The key is "merchant-specific": two stores selling the same tripod will almost certainly have two different SKUs.

### One per variant

A SKU does not identify a model but **a specific unit that is stored and sold**. That is why every size and every color gets its own. Shopify enforces it in the admin: SKUs must be unique and two [product variants](/glossary/product-variants/) cannot share one.[^shopify-sku] BigCommerce creates them for you: variants and their SKUs are generated from the product's options, while modifiers, such as an engraving or a personalization, cannot carry a SKU.[^bigcommerce-variants] The difference is logical: a red T-shirt in size M is another box in the warehouse; an engraving is not.

### How to build one

Since you decide it, you also decide the format, and Shopify gives some practical rules: numbers alone or mixed with letters; nothing that confuses 0 and 1 with O and I; **no special characters, symbols or spaces**, because they cause problems in searches; hyphens or underscores to separate parts; as short as you can, no more than 16 characters; and every letter and number with a purpose, with the same abbreviations across the whole catalog.[^shopify-sku] Its two examples show it well: in `4225-776-3234`, a pair of pants from brand 4225, cut 776 and size 32x34; in `WAL_BLK_25`, a walnut pen with black ink and a 2.5 mm tip.[^shopify-sku]

### Where Google and other channels read it

In the structured data for [merchant listings](/glossary/merchant-listings/), Google lists `sku` among the recommended properties: the merchant-specific identifier, **a single value**, with no whitespace and, ideally, only ASCII characters.[^google-merchant-listing] In Merchant Center it weighs even more. The `id` attribute, which identifies each product in the _feed_, takes 1 to 50 characters, and Google recommends filling it with the SKU because it helps Google understand the structure of the landing page. Every variant needs its own `id`, and once assigned it **should not be changed**: changing it overwrites the product and its history.[^gmc-id]

## In a store

A **fictional example**: a camera store sells another brand's tripod in two colors, plus a strap it sews itself. The brand, the codes and the numbers are invented, and the GTINs have a correctly calculated check digit so nobody mistakes them for real ones with an error.

| Item                            | Store SKU       | Manufacturer MPN | GTIN            |
| ------------------------------- | --------------- | ---------------- | --------------- |
| TV-200 tripod, black            | `TRI-TV200-BLK` | `TV-200-BK`      | `9520000123451` |
| TV-200 tripod, silver           | `TRI-TV200-SIL` | `TV-200-SL`      | `9520000123468` |
| Leather strap sewn by the store | `STR-LEA-BRN`   | None             | None            |

The SKU follows a single rule: family, model and color, separated by hyphens, in under 16 characters.[^shopify-sku] The other two codes are not chosen: they are copied from the manufacturer, which is why the strap, made by the store itself, only has a SKU. In the [JSON-LD](/glossary/json-ld/) of the black tripod's [product page](/glossary/product-page/), each code goes in its own property:

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "TV-200 travel tripod, black",
  "sku": "TRI-TV200-BLK",
  "mpn": "TV-200-BK",
  "gtin13": "9520000123451"
}
```

The SKU also ends up in less obvious places. Clione, for example, generates product titles by default with the template `{Brand} {ProductName} - {SKU}`, which the store can change.


That the SKU can be renumbered when the way you organize the catalog changes, like renaming a folder. If your _feed_ uses the SKU as the product ID, which is what Google recommends, **changing it overwrites the product and its history** in Merchant Center, and with it the tracking of its performance.[^gmc-id]


## How to check it

1. **Export the catalog and look for duplicate SKUs.** Every variant needs its own; on Shopify, two variants cannot share one.[^shopify-sku]
2. **Look for spaces, slashes and symbols.** Google asks that the `sku` in structured data carry no whitespace, and recommends ASCII characters only.[^google-merchant-listing]
3. **Compare three places**: the variant's SKU in the admin, the product's `id` in your _feed_ and the `sku` in the JSON-LD of its product page. They should be the same code.[^gmc-id]
4. **Review products with options.** On BigCommerce, every combination of options has its SKU; what does not is a modifier.[^bigcommerce-variants]
5. **Before renaming SKUs, check whether your _feed_ uses them as the ID.** If it does, the change resets those products' history in Merchant Center.[^gmc-id]

## Related concept: GTIN

The [GTIN](/glossary/gtin/) is the other extreme. The SKU is a merchant-specific identifier,[^schema-sku] and your SKU for a product need not resemble another store's; the GTIN is a global identifier, the same in any store that sells that item, and Google asks you to include all those that apply to the product.[^google-merchant-listing] **The SKU is for you to find the product in your warehouse; the GTIN is for everyone else to know which product it is.** That is why one does not replace the other, and why the MPN, which belongs to the manufacturer, does not either.

To keep going, the [structured data reading path](/learn/structured-data/) orders the rest of the terms, and the entry on [Product](/glossary/product-schema/) explains where the SKU and the other identifiers go inside the product page.
