The short answer
A SKU identifies an item in your own catalog; a GTIN identifies an assigned trade item across organizations. They are not interchangeable. Keep each sellable variant distinct from its parent group, and verify that any GTIN belongs to that exact product before submitting it.
SKU vs GTIN: what is the difference?
A merchant SKU and a GTIN answer different questions: which item do we manage in this catalog, and which trade item was assigned this global identifier? A Shopify variant ID is another key. Matching strings alone do not prove that these identifiers refer to the same selection.
In Google Merchant Center, a stable SKU can supply the product id when it uniquely identifies that item. It is not a replacement for an assigned gtin. Use a separate id for each variant and an item_group_id for the related group.
| Identifier | What to identify | Review before reuse |
|---|---|---|
| Merchant item / SKU | One sellable selection in a defined catalog | Uniqueness, stability, string preservation |
| GTIN | An assigned trade item | Standard, check digit, exact assignment |
| Parent group | Related variants of one product | True sibling relationship; separate child IDs |
| MPN + brand | The manufacturer’s part | Manufacturer evidence; preserve original value |
| Offer identity | The seller’s particular offer | Seller context; avoid price-dependent IDs |
Source: Google Merchant Center: Product ID; Google Merchant Center: GTIN; Shopify Admin API 2026-07: ProductVariant
Can I use a SKU as a GTIN?
Do not copy your internal SKU into the gtin field to fill a blank. Confirm whether the exact product has an assigned GTIN. If it does, use that value; if you cannot establish it, preserve the unknown and follow the destination’s requirements.
Shopify exposes SKU and barcode as separate variant fields. Inspect the barcode value and the product evidence before mapping it to gtin. A populated field or a passing check digit alone does not establish the correct assignment.
Source: Google Merchant Center: GTIN; Shopify Admin API 2026-07: ProductVariant
Is a GTIN the same as a UPC or barcode?
GTIN is the identifier family. UPC commonly refers to the 12-digit GTIN used in North America; EAN commonly refers to a 13-digit GTIN. A barcode is a machine-readable representation, so the barcode field’s name alone does not establish which identifier it contains.
Keep the assigned identifier as a string, including any leading zeros. A merchant’s internal SKU can differ between stores selling the same trade item. Do not substitute that store-specific code for the manufacturer-assigned GTIN.
Source: Google Merchant Center: Unique product identifiers; Google Merchant Center: GTIN
Inspect the source before choosing a key
Shopify’s versioned ProductVariant documentation exposes an ID, SKU, barcode, and selected options. Treat these as source fields to investigate. A barcode field may contain something other than an assigned GTIN; a SKU needs a uniqueness check before it becomes your destination identity.
Maintain an explicit mapping table across systems. If an ID changes, retain the relationship to the prior record and investigate the operational effect. Do not regenerate every identifier during routine price or inventory updates.
Source: Shopify Admin API 2026-07: ProductVariant; Google Merchant Center: Product ID
Follow a fictional two-variant ledger
Example Workshop makes one demonstration mug in blue and white. Example Retailer sells both. The following values are fabricated identifiers for explaining the mapping; none is a real product assignment. GTIN is deliberately unknown rather than invented.
| Selection | Item ID | Parent ID | Manufacturer part | Seller offer |
|---|---|---|---|---|
| Blue mug | DEMO-MUG-BLUE | DEMO-MUG | DEMO-350-B | RETAILER-DEMO-BLUE |
| White mug | DEMO-MUG-WHITE | DEMO-MUG | DEMO-350-W | RETAILER-DEMO-WHITE |
A correct check digit is not an assignment
A GTIN check digit is calculated from the preceding digits using alternating weights of three and one from the right. The final digit makes the weighted sum divisible by ten. Valid GTIN formats contain 8, 12, 13, or 14 digits.
An all-zero synthetic string can satisfy that arithmetic. It still provides no evidence of an assigned, authentic trade item. Do not turn a passing checksum into a product identity claim. Confirm assignment and product match using authoritative records.
Keep identifiers as strings from extraction through export. If a spreadsheet has already removed a leading zero, a later string conversion cannot establish what was lost. Return to the original source.
Keep parents and selected options distinct
In Google feed terminology, the item group ID ties variants together while each selected product has its own ID. The native OpenAI representation uses group_id alongside item_id, with explicit selected-option fields. Check the destination contract before transforming.
Do not group products merely because their names look similar. A mug and a replacement lid are not automatically variants of one item. Each child needs its own selected values, price, stock, URL, and image evidence.
Source: Google Merchant Center: Item group ID; OpenAI: Stable product file-upload specification
Record why a match is accepted or held
For every identity relationship, retain the source, extraction time, intended entity, and reason for accepting the match. Hold unresolved relationships instead of creating an identifier that looks plausible.
The linked field reference explains destination names. The portability experiment shows a parent/child collision and numeric identifier loss that a format conversion cannot safely repair.
Sources & scope
Primary references checked for this edition. The notes below distinguish source-backed facts from the frameworks and examples proposed in this guide.
- OpenAI: Stable product file-upload specification ↗
Native discovery fields and the distinct Google-compatible path. This edition is a selected comparison, not the complete upload contract.
Checked September 13, 2026 - Shopify Admin API 2026-07: ProductVariant ↗
Variant identity, SKU, barcode, selected options, media, inventory, and pricing context. A source field does not prove destination eligibility.
Checked September 20, 2026 - Google Merchant Center: Product ID ↗
Stable distinct product identifiers, including separate variant IDs.
Checked September 20, 2026 - Google Merchant Center: Item group ID ↗
Variant groups, identifying attributes, and matching landing-page values.
Checked September 13, 2026 - Google Merchant Center: GTIN ↗
Assigned trade-item identifiers, correct variant matching, and instructions not to guess a missing GTIN. The example ledger deliberately leaves assignment unknown.
Checked September 24, 2026 - Google Merchant Center: Unique product identifiers ↗
Distinguishes store-specific SKUs from manufacturer-assigned identifiers and describes UPC/GTIN-12 and EAN/GTIN-13.
Checked September 24, 2026
AI-assisted research and drafting. Provider-specific claims link to primary sources. Frameworks are editorial proposals; worked examples are illustrative and are not employer performance results.
Editorial policy & corrections ↗Cite this guide
George Kelly. SKU vs GTIN: differences, barcodes, and variant IDs iamgeorgekelly. Updated September 24, 2026. https://www.iamgeorgekelly.com/field-guide/product-identifiers-sku-gtin-variants
Keep the source notes and example labels with an excerpt. For a provider requirement, follow the original documentation in Sources & scope.