# Apparel and accessories

Apparel is the one vertical where a feed that satisfies the baseline specification still gets disapproved. Items in the Apparel & Accessories branch of the Google taxonomy additionally require colour, size, gender and age group in most major markets, and every variant must be grouped so a shopper can pick between them.

- **Canonical URL:** https://www.feedlab.io/knowledge/verticals/apparel-and-accessories
- **Last reviewed:** 18 September 2026
- **Source:** feedlab knowledge base
- **Licence:** free to quote and cite with attribution to feedlab



## Categories this covers

- `Apparel & Accessories`
- `Apparel & Accessories > Clothing`
- `Apparel & Accessories > Shoes`
- `Apparel & Accessories > Clothing Accessories`
- `Apparel & Accessories > Jewelry`
- `Apparel & Accessories > Handbag & Wallet Accessories`



## Attributes this vertical changes

| Attribute | Requirement here | Why |
| --- | --- | --- |
| `color` | Required | Required for apparel items in the major target markets, and used to build the colour filter and swatch a shopper picks from. |
| `size` | Required | Required for clothing and shoes. Submitted as a single value per variant, using the size as a shopper would recognise it rather than an internal code. |
| `gender` | Required | Required for apparel. One of male, female or unisex, and it drives a filter shoppers use heavily in this vertical. |
| `age_group` | Required | Required for apparel. One of newborn, infant, toddler, kids or adult, which is how children's ranges are separated from adult ones. |
| `item_group_id` | Required | Conditional in general but effectively mandatory here, because an apparel product without grouped variants loses the size and colour picker entirely. |
| `size_type` | Recommended | Distinguishes regular from petite, plus, big and tall, maternity and similar cuts. Without it a plus-size range competes directly against regular sizing. |
| `size_system` | Recommended | States which country's sizing the value belongs to. A UK 10 and a US 10 are different garments, and the system is what tells them apart. |
| `material` | Recommended | Used for filtering and for matching similar items. Often available in a Shopify metafield or parsed reliably from the product description. |
| `pattern` | Recommended | Striped, floral, plain and so on. Low effort where the data exists, and it separates otherwise identical listings in a crowded result. |
| `gtin` | Required in some cases | Own-label fashion frequently has no manufacturer barcode at all, which makes the brand and mpn fallback the normal case here rather than the exception. |



## What catches these stores out

### Jewellery and handbags inherit the apparel rules

The extra requirements attach to the Apparel & Accessories branch of the taxonomy, not to clothing as a concept. Jewellery, watches, bags, belts and sunglasses all sit inside that branch, so a jewellery store that never thought of itself as apparel is still asked for colour, size, gender and age group.

### Shopify option names do not map themselves

Shopify stores variant options as option1, option2 and option3 with whatever names the merchant typed. One product calls it Colour, another Color, a third Shade. The feed needs a mapping that reads the option name rather than trusting the position, because position two is size on one product and colour on the next.

### Size values are written for humans, not for channels

Catalogues carry "M", "Medium", "M/L", "EU 40", "40" and "UK 8" in the same size option, sometimes on the same product. Channels accept a single size value and will take any of those, but filtering and grouping only work well when one convention is used consistently, which usually means normalising at generation time.

### Gender and age group rarely exist anywhere in the store

Almost no Shopify catalogue has a gender or age group field. The values are usually implied by collection membership, by a tag, or by the product type, and have to be derived from one of those. Defaulting everything to unisex adult silences the requirement and quietly removes your children's range from the filters shoppers actually use.

### A colour swatch is not a colour name

Fashion colour names are marketing copy: Midnight, Oatmeal, Sand. Channels want a recognisable colour for filtering, so the useful mapping keeps the marketing name in the title and sends a normalised colour, with the primary colour first when an item has several.




## Where these values come from in Shopify

- **`color`** — From the variant option named Colour or Color, read by option name rather than by position. Stores that sell one colour per product often hold it in a metafield or in the product title instead.
- **`size`** — From the variant option named Size, again by name. Normalise the value at generation time so one convention reaches the channel, and keep the original for the title.
- **`gender`** — Not a Shopify field. Derived from collection membership, a tag such as womens, or the product type. Worth mapping explicitly per collection rather than guessed from the title.
- **`age_group`** — Not a Shopify field either. Usually derived from the same signal as gender, with kids and baby ranges identified by collection or tag.
- **`material`** — Usually a metafield where the store has invested in one, otherwise present in the description as a composition line that can be parsed with care.
- **`size_system`** — A static value per market in most stores, since a single store generally sizes in one system. Multi-market stores need it per feed rather than per product.







## Frequently asked questions

### What extra attributes does an apparel feed need?

Colour, size, gender and age group on top of the baseline, and item_group_id to group the variants. Size type, size system, material and pattern are recommended and are what make filtering work properly.

### Does jewellery count as apparel for a product feed?

Yes. Jewellery sits inside the Apparel & Accessories branch of the Google taxonomy, so it inherits the same extra requirements as clothing, including gender and age group. The same applies to bags, belts, watches and sunglasses.

### Where do gender and age group come from in Shopify?

Nowhere directly, which is why they are the two that catch stores out. They are normally derived from collection membership, a tag or the product type, and setting them deliberately per collection is more reliable than inferring them from the title.

### How should Shopify variant options be mapped to size and colour?

By reading the option name rather than its position. Shopify stores options as option1, option2 and option3 in whatever order the merchant created them, so position two is size on one product and colour on another.

### Can I submit one row per apparel product instead of per variant?

No. Each size and colour is its own item with its own id, grouped by a shared item_group_id. A product-level apparel feed loses exactly the choices a shopper in this vertical wants to make.




## Primary sources

- [Google: Apparel and accessories attributes](https://support.google.com/merchants/answer/6324492)
- [Google: Product data specification](https://support.google.com/merchants/answer/7052112)



