> Documentation index: [Saleor](/llms.txt) · [This section](/developer/llms.txt)
> Source: https://docs.saleor.io/developer/app-store/apps/product-feed

# Product Feed App

Saleor version required: **3.21**Repository: [GitHub](https://github.com/saleor/apps/tree/main/apps/products-feed)

info

You can find more about how to modify product feed in [Google Merchant Center](https://shoppingsolutions.withgoogle.com/expertise/merchant-center-modify/).

<a id="overview"></a>

## Overview

_Product Feed_ app allows generating an XML file with products and their details. The file can be used as a feed source for Google Merchant Center.

<a id="features"></a>

## Features

-   Generate an XML file with products and their details
-   Allow storing a feed file in S3 bucket
-   Generating separate feeds for each channel
-   Possibility to map Saleor categories to pre-defined Google categories
-   Map Saleor attributes to Google attributes

<a id="limitations"></a>

## Limitations

App requires providing AWS S3 bucket IAM credentials to work properly, due to size of the generated files.

<a id="permissions"></a>

## Permissions

The app requires `MANAGE_PRODUCTS` permission to listen to product events.

To save app configuration, staff users must have `MANAGE_PRODUCTS` permission.

<a id="configuration"></a>

## Configuration

<a id="s3-bucket"></a>

### S3 bucket

You need to provide the following details:

-   `AWS Access Key ID`
-   `AWS Secret`
-   `AWS S3 Bucket Name`
-   `AWS S3 Bucket Region`

You can test the connection to the S3 bucket by clicking the `Test connection` button.

Your bucket IAM should not be exposed in public to avoid third party access

The app will create a signed URL valid for a short amount of time, so Google can fetch it

Required permissions:

-   `s3:GetObject`
-   `s3:PutObject`
-   `s3:DeleteObject`
-   `s3:GetObjectAttributes`
-   `s3:ListBucket`

<a id="channels"></a>

### Channels

You can generate a separate feed for each channel. To do that, you need to provide the following details:

-   `Storefront URL`
-   `Storefront product URL`

<a id="item-title"></a>

### Item title

You can use the [`Handlebars`](https://handlebarsjs.com/) format to customize the product URL with context-aware templates.

You can use variables like this:

<a id="example"></a>

#### Example:

For this url `https://my-shop.com/p/{{ variant.product.slug }}/{{ variant.id }}` will produce `https://my-shop.com/p/t-shirt/Xyp2asZ`

<a id="categories-mapping"></a>

### Categories mapping

You can map Saleor categories to pre-defined Google categories, but this is optional. Selected Google Category Id will be saved in Category public metadata. Google automatically assigns a category to a product, but in some cases, Google allows to override it. You can find more information [here](https://support.google.com/merchants/answer/6324436?hl=en)

<a id="attributes-mapping"></a>

### Attributes mapping

Choose which product attributes should be used for the feed.

Supported attributes:

-   `brand`
-   `color`
-   `material`
-   `pattern`
-   `size`
-   `gtin`

<a id="testing"></a>

## Testing

-   In the channel configuration section, select a channel for which you want to generate a feed
-   Provide required URLs for storefront and product
-   Below in the same section, in the `Test your feed` subsection click on the button `Open feed in a new tab`
-   New tab should open, wait a couple of seconds for the generated feed

<a id="changelog"></a>

## Changelog

-   `v2.0.0` App no longer supports in-fly generation without S3 bucket.

Full changelog available [here](https://github.com/saleor/apps/releases?q=saleor-app-products-feed&expanded=true)
