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

# Produkt-Feed

> Integrieren Sie Ihren Produktkatalog mit Topsort über einen Produkt-Feed

export const IntegrationsCard1ADe = () => {
  return <>
      <style>{`
        .integrations-card-1a-de {
          display: flex;
          flex-direction: column;
          background-color: #f0f2f4;
          border: 1px solid rgba(0, 0, 0, 0.08);
          border-radius: 12px;
          padding: 1.25rem 1.5rem;
          gap: 0.25rem;
          color: #25253b;
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
          transition: box-shadow 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
          margin-top: 2rem;
        }

        .integrations-card-1a-de:hover {
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
          border-color: rgba(0, 0, 0, 0.12);
        }

        .dark .integrations-card-1a-de {
          background-color: #25253b;
          color: #f6f8fa;
          border-color: rgba(255, 255, 255, 0.08);
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        }

        .dark .integrations-card-1a-de:hover {
          box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
          border-color: rgba(255, 255, 255, 0.12);
        }

        .integrations-card-1a-de-avatar-row {
          display: flex;
          margin-left: 14px;
          flex-wrap: wrap;
        }

        .integrations-card-1a-de-avatar {
          width: 44px;
          height: 44px;
          border-radius: 50%;
          border: 2px solid #f0f2f4;
          margin-left: -14px;
          object-fit: cover;
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          pointer-events: none;
          cursor: default;
        }

        .dark .integrations-card-1a-de-avatar {
          border-color: #25253b;
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
        }

        .integrations-card-1a-de h2 {
          margin: 0;
          line-height: 1.25;
          font-size: clamp(1.25rem, calc(0.875rem + 1.25vw), 1.75rem);
          font-weight: 700;
          letter-spacing: -0.025em;
          color: #111827;
        }

        .dark .integrations-card-1a-de h2 {
          color: #f9fafb;
        }

        .integrations-card-1a-de-subtitle {
          font-size: 0.9375rem;
          font-weight: 500;
          line-height: 1.5;
          color: #4b5563;
          margin: 0;
        }

        .dark .integrations-card-1a-de-subtitle {
          color: #d1d5db;
        }

        .integrations-card-1a-de p {
          margin: 0;
          line-height: 1.5;
          font-size: 0.875rem;
          color: #374151;
        }

        .dark .integrations-card-1a-de p {
          color: #d1d5db;
        }

        .integrations-card-1a-de a {
          color: #0500ff;
          text-decoration: none;
          font-weight: 500;
          transition: color 0.15s ease;
        }

        .integrations-card-1a-de a:hover {
          color: #0400cc;
        }

        .dark .integrations-card-1a-de a {
          color: #8280ff;
        }

        .dark .integrations-card-1a-de a:hover {
          color: #a19fff;
        }

        @media (max-width: 640px) {
          .integrations-card-1a-de-avatar {
            width: 38px;
            height: 38px;
            margin-left: -12px;
          }

          .integrations-card-1a-de-avatar-row {
            margin-left: 12px;
          }
        }

        @media (min-width: 1280px) {
          .integrations-card-1a-de p {
            font-size: 0.6875rem;
            line-height: 1.4;
            letter-spacing: -0.01em;
          }

          .integrations-card-1a-de h2 {
            font-size: clamp(1rem, calc(0.75rem + 1vw), 1.25rem);
          }

          .integrations-card-1a-de-subtitle {
            font-size: 0.75rem;
          }
        }
      `}</style>
      <div className="integrations-card-1a-de">
        <div className="integrations-card-1a-de-avatar-row">
          <img src="/images/integration-team/agustin.webp" alt="Agustin - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/amelia.webp" alt="Amelia - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/bernardita.webp" alt="Bernardita - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/borumy.webp" alt="Borumy - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/felipe.webp" alt="Felipe - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/gui.webp" alt="Gui - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/javiera.webp" alt="Javiera - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/linn.webp" alt="Linn - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/marcio.webp" alt="Marcio - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/mateus.webp" alt="Mateus - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/max.webp" alt="Max - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
          <img src="/images/integration-team/rodrigo.webp" alt="Rodrigo - Integrations Team Member" loading="lazy" className="integrations-card-1a-de-avatar" />
        </div>

        <h2>Brauchen Sie Hilfe bei Ihrer Topsort-Integration?</h2>

        <p className="integrations-card-1a-de-subtitle">
          Sprechen Sie mit uns, dem Integrations-Engineering-Team.
        </p>

        <p>
          Erreichen Sie uns über <strong>Ihren dedizierten Nachrichtenkanal</strong> oder unter{" "}
          <a href="mailto:support@topsort.com">support@topsort.com</a>.
        </p>

        <p>
          Falls Sie noch kein Kunde sind,{" "}
          <a href="https://www.topsort.com/book-a-demo">buchen Sie eine Demo</a> mit unserem
          Vertriebsteam.
        </p>
      </div>
    </>;
};

Ein Produkt-Feed ermöglicht es Ihnen, Ihren Katalog mit Topsort zu teilen, Daten zu synchronisieren und Kampagnen aktuell zu halten. Während des Integrationsprozesses können Sie uns die URL Ihres Produkt-Feeds bereitstellen, und wir stellen sicher, dass Ihr Katalog aktuell bleibt. Unsere Plattform unterstützt mehrere Formate:

* Google Product Data Specification.
* Tabulatorgetrennte Werte (TSV).
* Kommagetrennte Werte (CSV).

<Frame>
  <img src="https://mintcdn.com/topsort/HTqrDOAU92Pz87gg/images/ad-server/catalog/product-feed.svg?fit=max&auto=format&n=HTqrDOAU92Pz87gg&q=85&s=8871159c49704007c2959ce535bec21c" alt="Topsort ruft Daten aus einem Produkt-Feed ab" width="480" height="150" data-path="images/ad-server/catalog/product-feed.svg" />
</Frame>

Wenn Ihr Produktkatalog bereits auf einer Drittanbieter-Plattform wie Algolia oder VTEX ist, können wir direkt mit diesen für Updates und Synchronisierung integrieren und sicherstellen, dass die Produktinformationen korrekt sind. Detaillierte Anweisungen zum Einrichten dieser Verbindungen und spezifische Anforderungen für jede Plattform finden Sie im Abschnitt "Drittanbieter-Integrationen - Partner" unserer Dokumentation.

## Google Product Data Specification

Teilen Sie Ihren Katalog mit Topsort unter Verwendung bestehender Google-Produkt-Feeds. Wir unterstützen die [Google Product Data Specification](https://support.google.com/merchants/answer/7052112?hl=en).

## TSV und CSV

Wir unterstützen das Teilen Ihres Katalogs über TSV- und CSV-Feeds. Die Anweisungen in diesem Abschnitt gelten für beide Formate.

<Note>
  **Welches Format sollten Sie verwenden?**

  Wir empfehlen die Verwendung von TSV gegenüber CSV. CSV ist fehleranfälliger, da Kommas oft in den Katalogdaten vorhanden sind.

  **Wenn Ihr Produktname oder Kategoriename Kommas enthält, müssen Sie TSV verwenden.**
</Note>

### Unterstützte Spalten

| Name                      | Erforderlich                   | Standard                                             | Beschreibung                                                                                                                                  |
| :------------------------ | :----------------------------- | :--------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                      | ja                             | -                                                    | Eindeutige Kennung für jedes Produkt.                                                                                                         |
| `active`                  | nein                           | true                                                 | Ob das Produkt Teil von Kampagnen oder Auktionen sein kann. Inaktive Produkte werden aus bestehenden Kampagnen entfernt.                      |
| `title`                   | ja                             | -                                                    | Name des Produkts                                                                                                                             |
| `category.0.name`         | ja                             | -                                                    | Kategoriename der primären Kategorie für dieses Produkt.                                                                                      |
| `category.0.id`           | nein                           | Slug des Kategorienamens                             | ID der primären Kategorie für dieses Produkt.                                                                                                 |
| `vendor.0.name`           | ja, wenn nicht `seller_name`   | -                                                    | Anbieter des Produkts. Dies ist die Entität, die ihr eigenes Budget hat, um dieses Produkt zu bewerben und mit anderen Anbietern konkurriert. |
| `vendor.0.id`             | ja, wenn nicht `seller_name`   | Slug des Anbieternamens                              | ID des Anbieters dieses Produkts.                                                                                                             |
| `seller_name`             | ja, wenn nicht `vendor.0.name` |                                                      | Anbietername des Produkts, gleicher Wert wie `vendor.0.name`.                                                                                 |
| `google_product_category` | ja                             | Kategorien im Google Taxonomy Format bereitgestellt. |                                                                                                                                               |
| `price`                   | nein                           | -                                                    | Produktpreis.                                                                                                                                 |
| `image_link`              | nein                           | -                                                    | URL zu einem Bild des Produkts.                                                                                                               |
| `availability`            | nein                           | -                                                    | Lagerstatus. Muss einer von `in stock`, `out of stock` oder `preorder` sein.                                                                  |
| `description`             | nein                           | -                                                    | Detaillierte Beschreibung des Produkts.                                                                                                       |

Kategorien können auf verschiedene Arten bereitgestellt werden. Aber nur eine ist erforderlich.

Sie können ein Produkt mit mehreren Kategorien und Anbietern verknüpfen. Siehe den Abschnitt unten.

### Dateibeispiele

#### Beispiel TSV mit vendor.0.name

```tsv theme={null}
id	name	description	vendor.0.id	vendor.0.name	vendor.0.image_link	category.0.id	category.0.name	category.1.id	category.1.name	image_link	price	availability
1293	Green Mask	Green Mask for removing imperfections, use during night or day	1710000087	Derma Laboratories		10000087	Skin Care	61	Beauty & Health	https://i.postimg.cc/0QxMWmbd/shampoo.png	23935.29	out of stock
1302	Cleanser Gel	N/A	17829100	Shiny Laboratories		10000087	Skin care			https://i.postimg.cc/0QxMWmbd/shampoo.png	16050.42	in stock
```

#### Beispiel CSV mit vendor.0.name

```csv theme={null}
id,name,description,vendor.0.id,vendor.0.name,vendor.0.image_link,category.0.id,category.0.name,category.1.id,category.1.name,image_link,price,availability
1293,Green Mask,"Green Mask for removing imperfections, use during night or day",1710000087,Derma Laboratories,,10000087,Skin Care,61,Beauty & Health,https://i.postimg.cc/0QxMWmbd/shampoo.png,23935.29,out of stock
1302,Cleanser Gel,N/A,17829100,Shiny Laboratories,,10000087,Skin care,,,https://i.postimg.cc/0QxMWmbd/shampoo.png,16050.42,in stock
```

### Mehrere Kategorien und Anbieter

Produkte können mit mehreren Kategorien und/oder Anbietern verknüpft werden.

Wie Sie vielleicht bemerkt haben, enthalten die Kategorie- und Anbieterspalten Indizes. Sie können zusätzliche Kategorie- und/oder Anbieterspalten hinzufügen, solange Sie den Index entsprechend erhöhen.

Zum Beispiel würde ein Produkt mit drei Kategorien und zwei Anbietern mindestens diese Spalten haben:

```txt theme={null}
category.0.id
category.1.id
category.2.id
vendor.0.id
vendor.1.id
```

### Google Taxonomy Format

Alternativ können Sie [Googles Taxonomy Format](https://support.google.com/merchants/answer/7052112?hl=en#product_category) als Kategorienamen verwenden. Dies ermöglicht es Ihnen, komplexere hierarchische Beziehungen zu beschreiben.

Zum Beispiel diese Hierarchie:

```txt theme={null}
Apparel & Accessories > Clothing > Dresses
```

Ergibt drei Kategorien:

```json theme={null}
[
  {
    "id": "apparel-and-accessories",
    "name": "Apparel & Accessories",
    "path": "apparel_and_accessories"
  },
  {
    "id": "clothing",
    "name": "Clothing",
    "path": "apparel_and_accessories.clothing",
    "parentId": "apparel-and-accessories"
  },
  {
    "id": "dresses",
    "name": "Dresses",
    "path": "apparel_and_accessories.clothing.dresses",
    "parentId": "clothing"
  }
]
```

<Note>
  Das Feld `path` wird für neue Integrationen bevorzugt. Das Feld `parentId` wird weiterhin vollständig unterstützt — es gibt keine Pläne, es zu entfernen.
</Note>

## Hosting Ihres Produkt-Feeds

Ihr Produkt-Feed muss für Topsort kontinuierlich zugänglich sein, damit wir unsere Daten aktuell halten können.

Wir können derzeit auf öffentliche Produkt-Feeds oder Feeds zugreifen, die mit [Basic HTTP Authorization](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization) geschützt sind.

Verwenden Sie zusätzlich die [ETag Response Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag), um uns zu helfen festzustellen, ob ein Produkt-Feed seit dem letzten Abruf aktualisiert wurde.

## Produkte löschen

Produkte können "soft deleted" werden, indem die Eigenschaft `active` auf `false` gesetzt wird. Dies kann sowohl [über die API](/de/api-reference/catalog-api/upsert-products) als auch über den Produkt-Feed erfolgen.

Inaktive Produkte werden nicht in neue Kampagnen oder Auktionen aufgenommen und aus allen aktiven Kampagnen entfernt, an denen sie teilnehmen.

Um Produkte dauerhaft aus dem System von Topsort zu löschen, [verwenden Sie die API](/de/api-reference/catalog-api/delete-products).

## Generierte Slugs

Wenn Kategorien oder Anbieter keine ID haben, generieren wir eine automatisch.

<Warning>
  **Bevorzugen Sie explizite IDs**

  Es wird empfohlen, die IDs explizit in Ihrem Produkt-Feed anzugeben. Diese IDs werden als Referenzen bei der Verwaltung von Kampagnen und Auktionen verwendet.

  Wenn Sie generierte IDs verwenden, müssen Sie denselben Algorithmus auf der Marktplatzseite verwenden, um solche Referenzen zu erstellen.
</Warning>

Diese IDs verwenden einen **Slug**, der vom Namen abgeleitet wird. Ein Slug ist eine in Kebab-Case formatierte Zeichenfolge, die für die Aufnahme in URLs geeignet ist.

Zum Beispiel wird `Hello world` zu `hello-world`.

Das Format basiert auf der [npm slugify](https://www.npmjs.com/package/slugify) Bibliothek.

<IntegrationsCard1ADe />
