Ihre Nachricht wurde gesendet.

Wie übergibt man einen Produktfeed an ChatGPT Shopping?

ChatGPT Shopping liest kein Tag auf der Produktseite. Den Katalog schicken Sie als Datei per SFTP an OpenAI. Für Discovery braucht jede Zeile item_id, title, description, url, brand, seller_name, image_url, availability und price.

Was die Datei ist

ChatGPT Shopping sind die Produkte in den Antworten von ChatGPT. In der Commerce-Dokumentation von OpenAI ist der Katalog ein Product Feed: eine Datei, die Sie hochladen, kein Crawl der Kategorieseite.

Der Get-started-Leitfaden hat vier Schritte. Das Dateischema lesen. Die Pflichtfelder in jedem Datensatz prüfen. Den Katalog per SFTP hochladen. Dieselbe Datei mit einem neuen Snapshot überschreiben. OpenAI empfiehlt mindestens einmal täglich einen vollen Snapshot. Discovery, Ads und Checkout sind getrennte Einrichtungen. Die Feldliste: https://developers.openai.com/commerce/specs/file-upload/products. Die Zustellung: https://developers.openai.com/commerce/specs/file-upload/overview.

Welche Datei OpenAI annimmt

Die File-upload-Übersicht sagt: den Feed per SFTP schieben. Bevorzugt ist parquet. jsonl.gz, csv.gz und tsv.gz gehen auch. Die Kodierung ist UTF-8.

Der Dateiname bleibt stabil, und Sie überschreiben ihn. Ist der Katalog in Shards geteilt, bleiben die Shard-Namen gleich. Die Übersicht nennt bis zu 500 000 Artikel je Shard und Dateien um 500 MB. URLs sind öffentlich, absolut und vorzugsweise HTTPS. In CSV setzen Sie eine Zelle mit Komma in Anführungszeichen.

Den SFTP-Host raten Sie nicht. Die Übersicht zum Datei-Upload veröffentlicht keinen. Der Ads-Leitfaden gibt Host, Port und Benutzername aus sftp_access für diesen Feed zurück. Er sagt nicht, dass ein Discovery-Feed denselben Host nutzt.

Der Get-started-Leitfaden sagt, Feed-Onboarding gilt derzeit für approved partners: https://developers.openai.com/commerce/guides/get-started. Unter https://chatgpt.com/merchants/ stehen bereits gestellte Anträge auf einer Warteliste. Shopify- und Etsy-Kataloge sind bereits angebunden. Shopping ist für ChatGPT-Nutzer in den US live.

Die neun Pflichtfelder

Für eine brauchbare Discovery-Zeile markiert OpenAI neun Felder als erforderlich. Ein Pflichtfeld braucht einen Wert. Eine leere Zelle ist nicht null und nicht false. Die Wörter null, unknown und n/a schicken Sie nicht. Ausnahme ist availability: dort ist unknown erlaubt.

item_id ist eine stabile Zeichenkette, eindeutig je Artikel oder Variante. Für einen anderen Artikel verwenden Sie sie nicht wieder. Die Aliase id und sku werden akzeptiert, aber item_id gewinnt, wenn beide da sind. Halten Sie den Wert als String, damit eine führende Null bleibt.

title ist der Produktname, mit Variante, wenn das zählt. Ziel sind höchstens 150 Zeichen. description ist Klartext. Ziel sind höchstens 5 000 Zeichen. url ist die Produktseite, nach Möglichkeit mit gewählter Variante.

brand ist die Marke wie auf der Seite. seller_name ist der Verkäufer dieses Angebots. image_url ist eine direkte Bilddatei dieser Variante, nicht die HTML-Seite.

availability ist eines von in_stock, out_of_stock, pre_order, backorder, unknown. Ein leerer oder unerkannter Wert weist die Zeile ab. unknown heißt nicht, dass der Artikel vorrätig ist. Setzen Sie es nur, wenn der Status wirklich fehlt.

price ist der reguläre Preis in Haupteinheiten: Betrag, Leerzeichen und ISO-4217-Code in Großbuchstaben, wie 79.99 USD. Dezimalpunkt, kein Tausendertrennzeichen, kein Währungssymbol. Für USD zwei Nachkommastellen. Runden Sie den Preis nicht auf einen anderen zahlbaren Betrag.

Varianten, Kennungen und Aktionspreis

Eine Zeile ist eine kaufbare Variante. Die Zeilen teilen group_id und haben jeweils eine eigene item_id. listing_has_variations steht auf true, variant_dict ist eine Map wie color und size. group_id unterscheidet sich von item_id. Jede Zeile trägt eigene price, availability, url und ein eigenes Bild.

gtin ist optional: 8, 12, 13 oder 14 Ziffern mit Prüfziffer, ohne Leerzeichen. Erfinden Sie keine. mpn ist die Herstellernummer und geht mit brand.

sale_price ist optional. Er ist größer als null, kleiner als price und in derselben Währung. Eine Aktion beginnt und endet, wenn Sie die Datei aktualisieren. Das Schema sagt, Datumsfelder planen die Preisänderung nicht.

Dieselbe Seite sagt, der Standard-Upload zielt derzeit auf US. Die Spalte target_countries ändert das allein nicht. Ein anderer Markt braucht eine bestätigte Integration.

79.99 PLN entspricht dem Preisformat: Dezimalzahl, Leerzeichen und ISO-4217-Code. Polen wählt das nicht aus.

{"item_id":"MUG-350-BLUE","title":"Ceramic mug, 350 ml, blue","description":"Glazed ceramic mug with a handle. Dishwasher safe.","url":"https://example.com/products/mug-blue","brand":"Northline","seller_name":"Northline Home","image_url":"https://example.com/images/mug-blue.jpg","price":"18.00 USD","availability":"in_stock"}

Shopify, WooCommerce und ein eigener Katalog

Das Schema hat keine Spalte, die nach einer Plattform heißt. Sie bilden Ihren Katalog auf diese Felder ab.

Bei Shopify nehmen Sie eine stabile Varianten-ID als item_id und verwenden sie nicht wieder. title, Text ohne HTML, Varianten-URL, vendor und Shopname werden zu title, description, url, brand und seller_name. Das Bild ist eine direkte Datei-URL. Menge über null ist in_stock. Der Preis ist Haupteinheit plus Währung, nicht Cent. Der Export ist die Admin API oder eine Produkt-CSV, und seine Kopfzeile ist nicht das OpenAI-Schema.

Bei WooCommerce ist eine eindeutige SKU die item_id. Wiederholen sich SKUs, nehmen Sie die Variations-ID. Der permalink ist url. Der reguläre Preis ist price. instock wird in_stock, outofstock wird out_of_stock, onbackorder wird backorder. OpenAI schreibt Vorbestellung als pre_order. Google Merchant schreibt preorder. Eine Google-Kopie ohne diese Umbenennung weist diese Zeilen ab.

Ein eigener Shop exportiert dieselben Spalten aus der Datenbank hinter der Produktseite. Die Datei entsteht auf dem Server. Preis in der Datei und Preis im HTML sind dieselbe Zahl und dieselbe Währung.

Woran Sie erkennen, dass eine Zeile angenommen wurde

Beginnen Sie mit 100 Artikeln und jedem Pflichtfeld, prüfen Sie dann den ersten Snapshot und überschreiben Sie denselben Dateinamen.

Ein abgeschlossener SFTP-Transfer ist noch keine angenommene Zeile.

Für Ads-Feeds dokumentiert OpenAI Upload-Status: scanning, received, processing, completed, completed_with_errors, skipped und failed. Codes sind unter anderem missing_required_column, invalid_value, unsupported_file_type und invalid_sftp_directory_layout. Dateien liegen im SFTP-Wurzelverzeichnis. Die Seite: https://developers.openai.com/ads/product-feeds.

Der Datei-Upload-Leitfaden nennt keine Ansicht angenommener und abgelehnter Zeilen. Produkte lesen Sie über die Commerce-API: https://developers.openai.com/commerce/specs/api/overview. Das ist nicht Ads. Ein Ads-Status ist nicht das Discovery-Ergebnis.

Weshalb eine Zeile abgelehnt wird

Ein Preis als 79,99, 79.99PLN oder $79.99 ist nicht die dokumentierte Form. availability als preorder, in stock oder eine leere Zelle steht nicht in der Liste. Eine image_url auf eine HTML-Seite ist kein direktes Bild. Eine URL, die nicht öffentlich ist, verfehlt die Zugangsregel.

Eine item_id für ein neues Produkt wiederzuverwenden bricht die Identitätsregel. Variantenzeilen mit derselben item_id oder mit group_id gleich item_id bilden keine Gruppe. HTML in description bricht die Klartextregel.

  • Eine Zeile je Variante, mit stabiler item_id, die nicht wiederverwendet wird.
  • Jede Zeile hat title, description, url, brand, seller_name und eine direkte image_url.
  • availability ist in_stock, out_of_stock, pre_order, backorder oder unknown.
  • price sieht aus wie 18.00 USD: Punkt, Leerzeichen und ISO-Währungscode.
  • Die Datei ist parquet oder jsonl.gz, csv.gz oder tsv.gz, UTF-8, und überschreibt denselben Namen.
  • Der Preis in der Datei stimmt mit dem Preis im HTML der Seite überein.
Kann ich den Google-Merchant-Feed unverändert schicken?

Nicht als blinde Kopie. Mehrere Namen unterscheiden sich. Google nutzt id, link und image_link. OpenAI nutzt item_id, url und image_url und verlangt seller_name. Aus Googles preorder wird pre_order. Für einige ältere Namen gibt es Aliase, item_id gewinnt trotzdem gegen id.

Ersetzt das JSON-LD der Produktseite die Datei?

Nein. Die Datei ist das, was OpenAI für ChatGPT Shopping aufnimmt. schema.org Product und Offer beschreiben dieselben Fakten auf der Seite. Sie sollen übereinstimmen. Das eine füllt das andere nicht.

Wie oft soll die Datei ersetzt werden?

Get started empfiehlt mindestens einmal täglich einen vollen Snapshot über denselben Dateinamen. Aktualisieren Sie price und availability, wenn sie sich ändern. Das Schema sagt, hochgeladene Daten planen das nicht für Sie.

Was gilt, wenn die Variante nicht vorrätig ist?

Schicken Sie die Zeile mit availability out_of_stock und dem aktuellen Preis. Eine fehlende Zeile verbirgt die Variante. unknown gilt nur, wenn der Status fehlt, und heißt nicht vorrätig.