← Back to blog
6 min readBy Feedyio

GLAMI feed requirements: gender-first categories, sizes and image rules that get products live

If your fashion products aren't showing on GLAMI, or they show but sit far down the listing, the cause is almost always the feed. GLAMI doesn't read a generic shopping feed the way Google does - it expects its own format, with UPPERCASE field names, a category path that starts with gender, one row per size and color, and images that clear a strict set of rules. Get those right and your products go live with the detail GLAMI needs to place them well. This guide walks through the format, the mandatory fields, and the three areas that trip people up most: categories, variants, and images. It covers the product feed only - GLAMI has no order or listing API you sync to; you publish a feed and GLAMI reads it.

The feed format at a glance

A GLAMI feed is an XML (or CSV) file you host at an SSL URL and let GLAMI fetch on a schedule - aim for hourly so price and stock stay current. The XML structure is a single <SHOP> root with one <SHOPITEM> per item, and every field name is UPPERCASE:

<SHOP>
  <SHOPITEM>
    <ITEM_ID>DRESS-RED-M</ITEM_ID>
    <ITEMGROUP_ID>DRESS-RED</ITEMGROUP_ID>
    <PRODUCTNAME>Women's midi dress, red, viscose</PRODUCTNAME>
    <PRICE_VAT>1290</PRICE_VAT>
    <CATEGORYTEXT>Glami.eco | Women's clothing and footwear | Women's clothing | Dress</CATEGORYTEXT>
    <!-- … -->
  </SHOPITEM>
</SHOP>

Two rules apply from the start: the file must be served over HTTPS, and you should not include sold-out products. GLAMI is a discovery surface, so a listing that leads to an out-of-stock page is worse than no listing.

The mandatory fields

Every <SHOPITEM> needs the following. Miss one and the item won't go live:

  • ITEM_ID - unique identifier, up to 64 characters. One per variant (more on that below).
  • ITEMGROUP_ID - the value that groups variants of the same product (all sizes and colors of one dress share it).
  • PRODUCTNAME - up to 200 characters. No sizes in the name; do include gender, material and color.
  • DESCRIPTION - in the market's local language.
  • URL - link to the product page.
  • URL_SIZE - link to the page with the specific size/variant preselected.
  • IMGURL - the main product image.
  • PRICE_VAT - the price including VAT.
  • CATEGORYTEXT - the GLAMI category path, up to 255 characters (see below).
  • DELIVERY_DATE - 0 means in stock and ready to ship; otherwise the number of days until dispatch.

A note on PRODUCTNAME: GLAMI's whole model is fashion discovery, so a name that reads like a person would describe the item ("Women's midi dress, red, viscose") performs far better than a bare model code. Keep sizes out of the name - size lives in its own field.

❌ Wrong - size in the name, no gender or material

<PRODUCTNAME>Midi dress 38</PRODUCTNAME>

✅ Fixed - gender, material and color, no size

<PRODUCTNAME>Women's midi dress, red, viscose</PRODUCTNAME>

Category mapping - gender must come first

This is the field that decides whether GLAMI understands your product at all. CATEGORYTEXT must follow GLAMI's own taxonomy, written as a pipe-separated path, and the path has to start with gender. GLAMI groups its entire catalog by audience first - women's, men's, girls', boys' - so a category that doesn't begin there can't be placed correctly.

Gender is effectively mandatory on every product, encoded through the category path. The deeper and more specific the path, the better the placement, because GLAMI can slot the item into a precise listing instead of a broad one.

✅ Correct - gender first, then increasingly specific levels

<CATEGORYTEXT>Glami.eco | Women's clothing and footwear | Women's clothing | Dress</CATEGORYTEXT>

❌ Wrong - no gender, category starts with the product type

<CATEGORYTEXT>Dresses | Midi</CATEGORYTEXT>

If you've mapped feeds for Google before, this is the opposite habit: Google's google_product_category is a single taxonomy ID or path and gender is a separate attribute, whereas GLAMI bakes gender into the front of the category path itself. Map to GLAMI's taxonomy values exactly - invented or close-enough category names don't match and the product falls out of the relevant listings.

Sizes and variants - one ITEM_ID per variant

GLAMI treats every size and color combination as its own item. A red dress in sizes S, M and L is three items: three distinct ITEM_ID values, all sharing the same ITEMGROUP_ID so GLAMI knows they're the same product. The size itself goes in a PARAM block, with both the value and the size system named.

The size_system tells GLAMI how to read the number - EU, INT, UK, US, IT, RU and so on - because "38" means different things in different systems. Send it; don't make GLAMI guess.

✅ Correct - two sizes, shared group, explicit size system

<SHOPITEM>
  <ITEM_ID>DRESS-RED-S</ITEM_ID>
  <ITEMGROUP_ID>DRESS-RED</ITEMGROUP_ID>
  <PARAM><PARAM_NAME>size</PARAM_NAME><VAL>36</VAL></PARAM>
  <PARAM><PARAM_NAME>size_system</PARAM_NAME><VAL>EU</VAL></PARAM>
</SHOPITEM>
<SHOPITEM>
  <ITEM_ID>DRESS-RED-M</ITEM_ID>
  <ITEMGROUP_ID>DRESS-RED</ITEMGROUP_ID>
  <PARAM><PARAM_NAME>size</PARAM_NAME><VAL>38</VAL></PARAM>
  <PARAM><PARAM_NAME>size_system</PARAM_NAME><VAL>EU</VAL></PARAM>
</SHOPITEM>

❌ Wrong - one item for all sizes, no size system

<SHOPITEM>
  <ITEM_ID>DRESS-RED</ITEM_ID>
  <PARAM><PARAM_NAME>size</PARAM_NAME><VAL>S/M/L</VAL></PARAM>
</SHOPITEM>

Color works the same way: keep one color per item. Don't stuff multiple colors into a single row - split them into separate items under the same group.

Material composition for textiles

For clothing and textiles, send the material composition as a PARAM with the material name, value and percentage. It's the kind of attribute that's easy to skip, but composition helps GLAMI filter and present the product correctly, and missing composition can hold a product back from paid promotion. If you have the data on the product, put it in the feed.

<PARAM>
  <PARAM_NAME>material</PARAM_NAME>
  <VAL>viscose</VAL>
  <PERCENTAGE>95</PERCENTAGE>
</PARAM>

Image rules that get products approved

Images are the second most common reason fashion products underperform on GLAMI, after categories. The rules are strict because GLAMI is a visual platform:

  • Resolution: at least 400 px on the shorter side, with around 1,500 px ideal. Don't upscale a small image to hit the minimum.
  • Real product photos only. No illustrations, renders or placeholders.
  • No watermarks, text or logos burned into the image.
  • Clean background. A white or light background is preferred; the main image should show the product on its own.
  • Reachable images. The image URLs must be fetchable by GLAMI's crawler - don't block its IP ranges or hide images behind a login.

❌ Wrong - promotional overlay on the main image

<IMGURL>https://shop.example/img/dress-red-SALE-30off.jpg</IMGURL>

✅ Fixed - clean product photo, high resolution, no overlay

<IMGURL>https://shop.example/img/dress-red-1500.jpg</IMGURL>

Other fields worth sending

Beyond the mandatory set, a few optional fields earn their place:

  • GTIN / EAN - the barcode, where the product has one. It helps GLAMI match and dedupe.
  • GLAMI_CPC - a per-product cost-per-click bid, if you want to control bidding at the item level.
  • PROMOTION_ID - to tie items to a promotion.

And the reminder that catches people out at scale: keep sold-out products out of the feed entirely, rather than leaving them in with zero stock. A clean feed of available items beats a large feed full of dead links.

How Feedyio builds a GLAMI-compliant feed from Shopify

Shopify's data model doesn't line up with GLAMI's out of the box - Shopify variants, collections and product types have to be reshaped into GLAMI's UPPERCASE fields, gender-first category paths and per-variant items. Feedyio does that mapping for you: it generates one <SHOPITEM> per variant with a shared ITEMGROUP_ID, maps your Shopify categories onto GLAMI's gender-first taxonomy, fills size/size_system from your variant options, pulls clean product images, and keeps PRICE_VAT and stock in sync on an hourly schedule so sold-out items drop out. The result is a valid GLAMI product feed that goes live without hand-editing XML. If you also want the trust badge and reviews, our guide to GLAMI reviews and the TOP E-shop badge covers that side, and the one on Google category mapping is a useful contrast for how the two platforms handle categories differently.

Want a GLAMI-ready feed built from your Shopify catalog automatically? Try Feedyio free on the Shopify App Store.