Skip to content
feedlab Request early access

Shopify field mapping

Shopify SKU to mpn

variant.sku mpn

An mpn is the manufacturer's part number, and a SKU is your own stock reference, so the two coincide only when you are the manufacturer. Mapping SKU to mpn on resold goods sends a value no channel can match, which is worse than sending nothing.

The Shopify side

API field
variant.sku
Called
SKU (Stock Keeping Unit)
Found at
Product → Variants → edit variant → Inventory → SKU
Feeds
mpn

Before and after

Real values on the left as Shopify stores them, on the right as a channel needs them.

Example transformations for Shopify SKU to mpn
In Shopify In the feed Note
SKU "OXF-100-BLK-M", own-made product OXF-100-BLK-M You are the manufacturer, so the SKU genuinely is the mpn.
SKU "WH-4471", resold product (the manufacturer part number instead) An internal warehouse reference, which matches nothing.
metafield custom.mpn = "A1234-02" A1234-02 The manufacturer's own number, from supplier data.
mpn "A1234-02" with no brand (incomplete) The pair only works together; a part number is unique per manufacturer.
SKU empty (omitted) SKU is optional in Shopify and frequently blank.

The transformation, step by step

  1. Establish whether you are the manufacturer

    For own-made and own-label goods your part number is the manufacturer part number, and the mapping is correct. For resold goods it is not, and no amount of formatting makes it so.

  2. Prefer a dedicated manufacturer part number field

    For resold products the real mpn is a value from the manufacturer, normally held in a metafield populated from supplier data. That is the field to map, and it is worth creating if it does not exist.

  3. Send mpn only where brand is also present

    Channels accept brand with mpn as a substitute for a gtin, and the pair only works together. An mpn without a brand identifies nothing, because a part number is unique to its manufacturer rather than globally.

  4. Preserve the manufacturer's formatting

    Part numbers carry meaningful hyphens, slashes and letter case. Normalising them to look tidy breaks the match, so this is a field to pass through rather than clean.

  5. Leave it empty rather than approximating

    Where there is no genuine manufacturer part number, send nothing and let gtin or identifier_exists carry the identifier question. A plausible-looking wrong value is harder to find later than an absent one.

What goes wrong

The mapping looks correct and matches nothing

SKU to mpn validates, fills the field, and satisfies the identifier requirement on paper. The value matches no product anywhere, so the item gains none of the benefit of having an identifier while appearing to have one, and nothing is ever reported.

Shopify does not enforce unique SKUs

The same SKU can appear on several variants. For an mpn that is less damaging than for a feed id, but it still means the value is not the reliable identifier it looks like.

Tidying a part number breaks it

Stripping hyphens or upper-casing a part number produces something that no longer matches the manufacturer's catalogue. This is one of the few feed fields where normalisation is the wrong instinct.

It is only half an identifier

Sending mpn while brand is missing or wrong leaves the pair useless. In catalogues where brand comes from the Shopify vendor field, the brand is often the weaker half of the two.

How feedlab maps it

feedlab maps mpn from a dedicated manufacturer part number field where one exists, falls back to the SKU only for products marked as own-made, and leaves it empty otherwise rather than filling it with a stock reference. Values are passed through unnormalised, and rows with an mpn but no brand are flagged in the preview.

Frequently asked questions

Is a Shopify SKU a valid MPN?

Only when you are the manufacturer, in which case your part number genuinely is the manufacturer part number. For resold goods a SKU is an internal reference and matches nothing.

Where should the MPN come from for resold products?

From the manufacturer, normally through a metafield populated from supplier data. It is worth creating that field rather than substituting the SKU.

Does mpn work without brand?

No. A part number is unique to its manufacturer rather than globally, so channels expect the brand and mpn pair together as a substitute for a gtin.

Should I clean up part numbers before sending them?

No. The hyphens, slashes and letter case are part of the value, and normalising them breaks the match with the manufacturer's catalogue.

Errors this mapping causes

Attributes involved

Related concepts

Primary sources

Channel specifications change. These are the official documents this page is based on.

Last reviewed View as markdown