# Setting up a Product Feed

## Overview

Product feeds power your Crobox product catalog. They also power targeting, filtering, and recommendations.

A common setup is:

* **Locale feeds** to create products per region and currency.
* **Enrichment feeds** to add extra attributes across locales.

### Before you start

* Make sure your **Product ID** is stable over time.
* Decide which locales each feed should target.

{% hint style="info" %}
You may find these URLs through other platforms in use by your business. For example Google Merchant, Channable, Shopify, etc. This method is preferable within the app as it provides real time data updates, without having to manually update the data feeds.
{% endhint %}

## Upload your feed

{% tabs %}
{% tab title="Scheduled fetch (recommended)" %}
Use this when you already have a stable feed URL. Crobox will fetch it on a schedule.

{% stepper %}
{% step %}

### Start the import

1. Go to **Crobox App** → **Product Data** → **Feeds**.
2. Click **Import** → **Create New Feed**.
3. Paste the **Data Feed URL** and click **Next**.
   {% endstep %}

{% step %}

### Configure the feed

* **Feed Source**\
  Crobox detects the file type from the URL.
* **Feed Setup**
  * **Data Feed Name**: Use a clear name. Example: `products-nl_NL` or `enrichment-all-locales`.
  * **Synchronization Frequency**: Match your upstream export schedule.
  * **Starting at**: Pick a time after your source feed finishes updating.
  * **Feed File Type**: Should match the URL output.
* **Advanced**\
  Leave unchanged unless advised by your Account Manager.
* **Source Fields**
  * **Target Locales**: Select where this feed should apply.

{% hint style="warning" %}
Selecting a **language-only** locale (for example, **German**) can only **enrich existing products**.

It will **not** add new **Product IDs** to the catalog.

To add new products, target a specific locale like **German - Germany - Euro** (**Language - Region - Currency**).

In the feed setup, you’ll see this warning:

> You have targeted locale(s) that can only be used to enrich existing products. No new product ID will be added. If that was the intention, please select a specific locale like \[Language] - \[Region] - \[Currency].
> {% endhint %}

{% hint style="info" %}
If the locale you need isn’t available, contact your Account Manager.
{% endhint %}
{% endstep %}
{% endstepper %}

Next: map your fields in [Product Mapping](#product-mapping).
{% endtab %}

{% tab title="Manual upload (CSV/XML)" %}
Use this for one-off imports, testing, or feeds that rarely change.

{% stepper %}
{% step %}

### Upload the file

1. Go to **Crobox App** → **Product Data** → **Feeds**.
2. Click **Import**.
3. Upload or drag-and-drop the file (CSV or XML).
   {% endstep %}

{% step %}

### Configure the feed

* **Feed Source**\
  Crobox detects the file type from the upload.
* **Feed Setup**
  * **Data Feed Name**: Use a clear name you will recognize later.
  * **Feed File Type**: CSV or XML.
* **Advanced**\
  Leave unchanged unless advised by your Account Manager.
* **Source Fields**
  * **Target Locales**: Select where this feed should apply.

{% hint style="warning" %}
Selecting a **language-only** locale (for example, **German**) can only **enrich existing products**.

It will **not** add new **Product IDs** to the catalog.

To add new products, target a specific locale like **German - Germany - Euro** (**Language - Region - Currency**).

In the feed setup, you’ll see this warning:

> You have targeted locale(s) that can only be used to enrich existing products. No new product ID will be added. If that was the intention, please select a specific locale like \[Language] - \[Region] - \[Currency].
> {% endhint %}

{% hint style="info" %}
If the locale you need isn’t available, contact your Account Manager.
{% endhint %}
{% endstep %}
{% endstepper %}

Next: map your fields in [Product Mapping](#product-mapping).
{% endtab %}
{% endtabs %}

## Product Mapping

After import, you’ll see the incoming fields. Map them to Crobox properties.

{% hint style="info" %}
Crobox will often suggest mappings automatically. It uses your existing properties in **Product Data → Properties**.
{% endhint %}

{% hint style="warning" %}
Some properties are **core system properties** and should **always** be used when mapping your feed.

These are tied to Crobox catalog structure and experience logic, so avoid creating duplicate custom properties for them, for example:

* **Product ID**
* **Variant ID**
* **Parent ID**
* **Price**
* **Sale price**
* **URL**
* **Image**

Create new properties only for attributes that don’t already exist in your container.
{% endhint %}

Map each row by aligning the **Source field** to a **Target Property**.

* **Source Fields:**
  * **Active:** Turn on only the fields you want to import.
  * **Source field:** The column name from your feed.
  * **Target Property:** The property in Crobox to map into.
    * If it doesn’t exist, type a name and click **+Add**.

{% hint style="info" %}
Use simple, identifiable property names. Reuse the same naming across feeds.
{% endhint %}

* **Target Level:** Choose where the value lives.
  * **Product**: one value per product.
  * **Variant**: values like size or color.

{% hint style="info" %}
A Variant target level typically identifies values like color and size. It will help to prevent duplicate products in the recommended results of a product finder, for example.
{% endhint %}

* **Locale Override:** Set only when a field should target a different locale.
* **Preview Values:** Sample values parsed from the import.

Further property settings can be optimized here by selecting the three dot menu on the right of each property row.

Click **Save**, then **Run Feed to Update** to commit the changes.

To edit later, open the feed again and adjust its source field mapping.

{% hint style="info" %}

* For additional feeds, use **Autofill** to speed up mapping.
* For enrichment feeds, **All locales** is often correct.
  {% endhint %}

## Best practices

### Feed structure and ownership

* Keep **locale feeds** responsible for adding new Product IDs.
* Keep **enrichment feeds** focused on extra attributes.
* If you use multiple feeds, set a clear source of truth per field.

### Product IDs, variants, and locales

* Every feed needs Product IDs to be able to tie the data together in the catalog.
* Put variant-specific data on **Variant** level.
* Mark variant-defining properties (like color/size) consistently.
* Avoid language-only locales for creating products. Use full locale selection.

### Mapping and property hygiene

* Prefer mapping into existing properties.
* Avoid duplicating core system properties (ID, price, stock, URL, title).
* Activate only fields you plan to use in your Crobox Experiences.
* Sanity-check **Preview Values** for type issues and formatting.

### Operations

* Align scheduled fetch timing with your feed export timing.
* Start with a small test feed if you’re changing structure.
* After each run, confirm products and key attributes in the catalog.
