> ## Documentation Index
> Fetch the complete documentation index at: https://docs-nce.global-e.com/llms.txt
> Use this file to discover all available pages before exploring further.

# EU Consumer Guarantee

Part of the [EU Consumer Guarantee (Notice & GARAN) - Platform Setup Guides](/eu-consumer-guarantee-platform-setup-guides).

## One-time setup

1. Create a new **custom field** on the Product entity to hold the GARAN URL (text), and give it a technical name.
2. In the Global-e plugin settings, under the **Products** section, set **GARAN Image URL Attribute** to that technical name. There is no fixed custom-field name — the plugin uses whatever you enter here (same pattern as **HS Code Attribute**).
3. Make sure **Enable save product list** is switched on if you want the catalog path. If it is off, only the cart path will carry the value.

## Per product

Populate the custom field on each product or variant with the full HTTPS URL of that item's GARAN PNG. Leave it empty where there is no guarantee.

| Product | Custom field value |
| - | - |
| Alpine Insulated Jacket | `https://cdn.example.com/garan/JKT-4471.png` |
| Cotton Crew Tee | (empty — no guarantee) |

For variants, see [Platform notes](/eu-consumer-guarantee-setup-shopware#platform-notes) — an empty variant field can inherit the parent URL.

## When the value syncs

The catalog path picks the value up when the product is written in Shopware (create or update), if **Enable save product list** is on. The cart path reads the custom field when the shopper checks out.

## Prerequisites

| Requirement | Value |
| - | - |
| Minimum plugin version | Global-e Shopware 6 plugin 1.8.2 or later |
| Catalog path toggle | **Enable save product list** must be on to use the Catalog path |
| Attribute mapping | **GARAN Image URL Attribute** must name an existing product custom field |
| Feature enablement | Confirm with your Customer Success Manager that this feature is enabled for your account |

## Delivery paths

The value reaches Global-e on two paths: the catalog sync (`SaveProductsList`) and at checkout (SendCart / GetCart).

## Platform notes

<Warning>
  The GARAN URL must live on a Shopware **product custom field**. Putting the URL only in product media, extra attributes, or MetaData will not populate `GaranImageURL`.
</Warning>

If a variant's custom field is empty and the parent product has a value, the plugin uses the parent URL. Set the field on the parent if every variant shares one label; set it on the variant when a size or colour needs a different file.

Do not put the GARAN PNG in the normal product image slot. The plugin keeps `ImageURL` (storefront photo) and `GaranImageURL` (guarantee label) as separate fields.

## Payload reference

For technical readers. The field name is `GaranImageURL` on both the catalog and cart contracts.

**Cart — SendCartData.Products\[]**

```json theme={null}
{
  "Products": [
    {
      "ProductCode": "JKT-4471-BLK-M",
      "CartItemId": "1057",
      "Name": "Alpine Insulated Jacket",
      "OrderedQuantity": 1,
      "ImageURL": "https:\/\/cdn.example.com\/products\/jkt-4471-blk.jpg",
      "GaranImageURL": "https:\/\/cdn.example.com\/garan\/JKT-4471.png"
    }
  ]
}
```

**Catalog — POST /Browsing/SaveProductsList** (expected shape; same top-level key)

```json theme={null}
[
  {
    "ProductCode": "JKT-4471-BLK-M",
    "ProductGroupCode": "JKT-4471",
    "Name": "Alpine Insulated Jacket",
    "ImageURL": "https:\/\/cdn.example.com\/products\/jkt-4471-blk.jpg",
    "GaranImageURL": "https:\/\/cdn.example.com\/garan\/JKT-4471.png"
  },
  {
    "ProductCode": "TEE-1102-WHT-L",
    "Name": "Cotton Crew Tee",
    "ImageURL": "https:\/\/cdn.example.com\/products\/tee-1102-wht.jpg",
    "GaranImageURL": null
  }
]
```

The t-shirt has no guarantee — `GaranImageURL` is `null` and no attachment is generated for it.

## Verify

| Check | Done |
| - | - |
| `GaranImageURL` appears in a test catalog payload for a product with a populated custom field | ☐ |
| `GaranImageURL` appears in the cart payload for that product at checkout | ☐ |
| A product with an empty custom field sends `GaranImageURL` as null | ☐ |
| A variant with an empty field inherits the parent URL when the parent is set | ☐ |

<Note>
  Activation modes and the general preparation steps — opting in, identifying qualifying products, and creating and hosting the GARAN PNG — are covered on the [EU Consumer Guarantee Information (Notice & GARAN)](/eu-consumer-guarantee-notice-and-garan) overview page.
</Note>

## FAQ

<AccordionGroup>
  <Accordion title="Do variants each need their own URL?">
    Only if they differ. An empty variant custom field uses the parent product's value.
  </Accordion>

  <Accordion title="Can I reuse the product image field?">
    No. `ImageURL` is the storefront photo. GARAN must be a separate custom field mapped in **GARAN Image URL Attribute**.
  </Accordion>
</AccordionGroup>
