Skip to content
feedlab Request early access

Product vertical

Custom and handmade goods

Custom, handmade and made-to-order products have no manufacturer-assigned barcode, which makes them the one category where the identifier requirements are satisfied by declaring their absence. The correct feed uses brand with mpn, or sets identifier_exists to no, and does both deliberately rather than everywhere.

Categories this covers

The Google product taxonomy branches these rules apply to. Match your own products against these paths before assuming the extra requirements are yours.

Attributes this vertical changes

These sit on top of the attributes every feed needs. A requirement shown here applies because of the category, not because of the channel.

Feed attributes whose requirement changes for Custom and handmade goods
Attribute Requirement here Why
identifier_exists Required The declaration that this product genuinely has no manufacturer identifier. Optional in general, but it is the mechanism this vertical depends on.
brand Required For own-made goods the brand is your own store name, and it is what lets a channel treat the item as a real product rather than an anonymous one.
mpn Recommended Your own part number is a legitimate mpn when you are the manufacturer, and brand with mpn is accepted in place of a gtin.
gtin Optional There is no manufacturer barcode to supply. Sending an internal reference here is worse than sending nothing, because it reads as an invalid identifier rather than an absent one.
condition Recommended New is the right value for made-to-order goods, but vintage and reworked pieces are genuinely used, and saying so prevents a mismatch between listing and reality.

What catches custom and handmade goods stores out

identifier_exists is not a way to silence warnings

Setting it to no across the whole catalogue makes the missing-identifier warnings disappear, which is why it is done so often. It also removes every item from identifier-based matching, which usually costs more performance than the warning did. It belongs on the products that genuinely have no identifier, and nowhere else.

The Shopify vendor field is rarely your brand

Vendor defaults to the store name on products created by hand and to the supplier name on imported ones, so a catalogue often carries a mixture. For own-made goods the brand is your store, and mapping it from vendor means whichever value happened to be in that field reaches the channel.

A SKU is not an MPN, except when you made the product

An MPN is the manufacturer's part number. Normally your internal SKU is the wrong value for it. When you are the manufacturer the two legitimately coincide, which makes this the one vertical where mapping sku to mpn is correct rather than a shortcut.

Made-to-order stock does not mean out of stock

Shopify inventory tracking on a made-to-order product often reads zero, or is switched off entirely. Both can produce an out of stock availability value on an item you are perfectly willing to sell, so availability needs to come from the inventory policy as well as the quantity.

One-of-a-kind items expire between fetches

A single unique piece sells once and then must leave the feed. With a daily fetch on most channels, it stays listed as available for hours after it is gone, which produces exactly the availability mismatch disapprovals that hurt an account. Regenerating on a webhook rather than only on a timer is the real fix.

Where these values come from in Shopify

Shopify has a field for some of these and nowhere to put the rest. Both cases are worth knowing before you start mapping.

brand
Set as a static store value for own-made goods rather than mapped from vendor, then overridden per product only where you stock someone else's work.
mpn
From the variant SKU, which is genuinely the manufacturer part number when you are the manufacturer. Leave it empty rather than inventing a value for resold items.
identifier_exists
Derived from whether a structurally valid barcode exists: no when there is none and the product is your own, unset otherwise. Driving it from a tag makes the decision visible in the admin.
availability
From inventory quantity combined with the inventory policy, so a made-to-order product with zero on hand and backorders allowed still reads as in stock.

Frequently asked questions

What do I put in gtin for handmade products?

Nothing. Leave it empty, supply brand with your own mpn, and set identifier_exists to no. Putting an internal reference in gtin is worse than leaving it blank, because an invalid identifier is treated as an error rather than an absence.

Can I set identifier_exists to no for my whole catalogue?

Only if nothing you sell has a manufacturer barcode. It silences the warnings either way, but on products that do have identifiers it removes them from matching, which generally costs more than the warning did.

Is my SKU a valid MPN?

When you make the product, yes: you are the manufacturer, so your part number is the manufacturer part number. For goods you resell it is not, and sending it anyway gives the channel a value it cannot match against anything.

What brand should a handmade product use?

Your own store or maker name, set as a static value rather than read from the Shopify vendor field, which is unreliable across a catalogue built over time.

Attributes involved

Errors this vertical runs into

Related concepts

Channels this applies to

Primary sources

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

Last reviewed View as markdown