Ecommerce & CRO
SKU
Stock Keeping Unit
A SKU, or stock keeping unit, is the unique code identifying one sellable variant of a product — a specific size and colour, not the product as a whole. SKUs are the unit inventory is counted in, and how a store's catalogue maps to a warehouse, a 3PL, or an ERP. Clean SKU structure is the first prerequisite of any migration.
Why it matters
SKU structure is boring, invisible, and decides whether half the operational systems a business will ever connect actually work. Every warehouse, 3PL, ERP, and marketplace integration joins on this field. When SKUs are clean, integrations are configuration; when they are not, every integration becomes a mapping project with its own translation table to maintain.
The reason it goes wrong is that SKUs are usually created ad hoc by whoever adds products, years before anyone integrates anything. By the time the 3PL needs them, there are duplicates, blanks, and three different conventions from three different staff members.
It is also the first thing a migration exposes. A data migration with unreliable SKUs cannot map inventory or historical orders, which turns a two-week import into a two-month reconciliation.
How it works on Shopify
In Shopify the SKU lives on the variant, not the product, which is the correct level: a medium blue shirt is a different physical item from a large blue shirt, and inventory is counted per variant.
Shopify does not enforce uniqueness. Duplicate SKUs across variants are possible and will not be flagged, which is why periodic auditing matters — a duplicate silently breaks inventory sync in ways that surface as oversells weeks later.
A workable convention encodes a little meaning and stays short: a category or brand prefix, a product identifier, then variant attributes. Enough to recognise at a glance, not so much that it encodes information that might change. Anything that can be reclassified — season, supplier, price band — does not belong in the code, because a SKU should never need to be edited once stock exists against it.
Barcodes are separate and serve a different purpose: the SKU is the internal identifier, the barcode is the scanned one for POS and warehouse operations.
Common mistakes
- Blank SKUs. Shopify allows it. Every downstream system rejects it.
- Duplicates across variants. Silent, and it corrupts inventory counts.
- Encoding volatile data. A supplier code in the SKU becomes wrong the moment suppliers change.
- Changing SKUs on live products. It severs history, breaks integrations, and destroys reporting continuity.
- Different conventions per team. Merchandising, warehouse, and finance each inventing their own is how mapping tables are born.
- Special characters. Spaces, slashes, and accents break CSV imports and API calls in ways that are tedious to trace.
When you need help
The moment is before a migration or before a first serious integration. Auditing the catalogue for duplicates, blanks, and inconsistencies — and agreeing a convention going forward — is inexpensive at that point and expensive afterwards, because once a 3PL holds stock against a code, the code cannot change.
The other case is a business already carrying the mess: several conventions, a translation table nobody trusts, and periodic oversells nobody can explain. Rationalising that without breaking live inventory is careful work, but it removes a permanent tax on every system connected to the store.
Related terms
- Data migrationData migration is transferring products, variants, collections, customers, orders, and content from the old platform into Shopify. Products are the easy part; the traps are variant models that do not map, historical orders needed for LTV and returns, and customer passwords, which cannot be migrated — customers must reset them. Every migration should be run twice: once into staging, once for real.
- PIMA PIM, or product information management system, is the central store for product data — descriptions, specs, images, translations — that feeds every sales channel from one source. It earns its place when a catalogue is large, changes often, or has to be published in several languages and marketplaces at once. Below that, Shopify's metafields and metaobjects usually do the job.
- 3PLA 3PL, or third-party logistics provider, is an outsourced warehouse that stores your inventory and ships orders on your behalf. It removes the fixed cost of running a warehouse and usually improves delivery times through multiple locations. The integration matters as much as the rates: inventory and fulfillment status must sync back to Shopify reliably, or oversells follow.