> ## Documentation Index
> Fetch the complete documentation index at: https://docs-pro.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).

## Who this page is for

Use this page if the store runs the Global-e **Magento 2** integration.

<Note>
  If the store runs **Magento 2 Lite** (BrowsingLite), use the [Magento 2 Lite](/eu-consumer-guarantee-setup-magento2-lite) page instead.
</Note>

## One-time setup

1. In **Stores → Attributes → Product → Add New Attribute**, create a text attribute to hold the GARAN URL. Example: label `GARAN Image URL`, attribute code `ge_garan_image_url`. Catalog Input Type = **Text Field**, Values Required = No.
2. Add the attribute to the relevant attribute set in **Stores → Attributes → Attribute Set**, so it appears on the product edit page.
3. Go to **Stores → Configuration → Global-e → API Settings → Products Settings**. In **GARAN Image URL attribute**, enter the attribute's **code** (not the label) — e.g. `ge_garan_image_url`.
4. Click **Save Config**, then flush Magento cache (**System → Cache Management → Flush Magento Cache**).

Leaving the configuration field empty turns the feature off. No extra Magento setting is required for catalog vs checkout — the same mapped attribute is used on both paths.

## Per product

Set the mapped attribute on the product record Global-e sends for that line — on the **simple product** for non-configurable products. For configurable products, set it on each **child simple** when variants need different URLs, or on the **configurable parent** when every child should share the same URL. Use the full HTTPS URL of that product's GARAN PNG. Leave it empty where there is no guarantee.

Global-e reads the **child simple first**. If that value is empty, it uses the **configurable parent**.

| Product | Attribute value |
| - | - |
| Alpine Insulated Jacket — JKT-4471-BLK-M | `https://cdn.example.com/garan/JKT-4471.png` |
| Alpine Insulated Jacket — JKT-4471-BLK-L | `https://cdn.example.com/garan/JKT-4471.png` |
| Cotton Crew Tee — TEE-1102-WHT-L | (empty — no guarantee) |

## When the value syncs

The value is picked up automatically on:

| Event | Trigger |
| - | - |
| Product save | Saving a product in admin (catalog sync and checkout use the same mapped attribute) |
| Checkout | At checkout, on the cart path |

## Prerequisites

| Requirement | Value |
| - | - |
| Minimum module version | GE Module version 2.17.0 or later |
| Configuration | Make sure the value exists for the relevant product or child |
| 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.

## Platform notes

<Warning>
  Enter the attribute **code** in configuration, not its storefront label. Mapping `GARAN Image URL` instead of `ge_garan_image_url` is the usual reason the field is missing from the payload. Flush cache after saving the config.
</Warning>

The module forwards the attribute value exactly as entered. Use a full public `https://` URL. A relative path such as `/media/garan/x.png` will not work.

Clearing **GARAN Image URL attribute** turns the feature off. Product data is left untouched, so it can be switched back on later.

## Payload reference

For technical readers. The field name is `GaranImageURL` on catalog and at checkout.

**Catalog — product list sent to Global-e**

```json theme={null}
[
  {
    "ProductCode": "JKT-4471-BLK-M",
    "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"
  }
]
```

The t-shirt omits `GaranImageURL` (no guarantee). Omit the field or send `null`.

**Checkout cart — matching line on `Products[]`**

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

Do not put a GARAN URL in `ImageURL` or in a generic attribute bag.

## Verify

| Check | Done |
| - | - |
| `GaranImageURL` appears in a test catalog payload for a product with a populated mapped attribute | ☐ |
| The same value is present on that line at checkout | ☐ |
| The mapped attribute is populated on the relevant simple product, child, or configurable parent | ☐ |
| A product with an empty child attribute can still pick up a parent URL | ☐ |
| A product with no URL on child or parent still checks out | ☐ |
| Storefront `ImageURL` is unchanged | ☐ |

<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 product variants each need their own URL?">
    For configurable products, set the attribute on each child simple when variants should differ, or on the configurable parent when they should share one URL. Global-e reads the child first, then the parent. For simple products, set it on that product.
  </Accordion>

  <Accordion title="Can I use a relative path such as /media/garan/x.png?">
    No. The value is forwarded exactly as entered. Use a full `https://` URL.
  </Accordion>

  <Accordion title="Why is the value missing from my payload?">
    Most often the configuration holds the attribute **label** instead of its **code**, cache was not flushed after the config change, or the attribute is empty on that product. Check in that order.
  </Accordion>

  <Accordion title="I use Magento 2 Lite.">
    Use the [Magento 2 Lite](/eu-consumer-guarantee-setup-magento2-lite) page. This page is Magento 2 only.
  </Accordion>

  <Accordion title="How do I turn the feature off?">
    Clear **GARAN Image URL attribute**. Product data is left untouched.
  </Accordion>
</AccordionGroup>
