Ressourcen · CSV und Feeds

Synchronisierung per CSV: vollständige Spezifikation

Spezifikation der Artikel-CSV: Felder, Grenzen, Auto- und Motorradattribute sowie Übermittlung per SFTP oder URL.

Für die Synchronisierung zwischen den Kunden und Portal Hero verwenden wir ein System von CSV-Dateien. Die wichtigste CSV-Datei ist die der Artikel (oder Artikel-Feed), in der alle Artikel aufgelistet sind, die in den verschiedenen Portalen veröffentlicht werden. In dieser Datei befinden sich die Artikel mit ihren Merkmalen.

Funktionsweise der Synchronisierung

Die Art, jeden Artikel zu identifizieren, erfolgt über das Feld id, auf das wir uns als eindeutige Kennung stützen, um zu entscheiden, ob ein Artikel aktualisiert wird oder nicht mehr existiert. Wenn ein Artikel zum ersten Mal im Artikel-Feed erscheint, wird er in alle vom Kunden ausgewählten Portale hochgeladen. Wenn ein Artikel nicht mehr im Feed vorhanden ist, wird er als verkauft markiert, und wenn sich ein beliebiges Datum des Artikels ändert, wird er ebenfalls in den Portalen aktualisiert. Weitere Details zur Synchronisierung selbst finden Sie hier.

Das allgemeine Format dieser CSV-Dateien ist folgendes:

  • Durch Kommas getrennte Felder
  • Die Kopfzeile muss vorhanden sein, um die Felder identifizieren zu können
  • Durch doppelte Anführungszeichen begrenzte Felder (bei Bedarf oder immer)
  • Dateikodierung UTF-8

Dateiaustausch

Wir haben zwei Möglichkeiten, uns die Datei zu übermitteln:

  • SFTP
    Wir verfügen über einen SFTP, um die Dateien auszutauschen und den sicheren Informationsaustausch zu erleichtern. Die Zugangsdaten zum SFTP (Benutzer und Passwort) werden während des Onboarding-Prozesses bereitgestellt.
    Die übrigen gemeinsamen Verbindungsdaten sind folgende:
    • Host: sftp.portalhero.pro
    • Port: 2222

    Zudem ist der SFTP abgesichert und auf Netzwerkebene beschränkt, und wir benötigen eine oder mehrere IPs, um sie zu unserer Liste der zugelassenen Zugriffs-IPs hinzuzufügen.
    Innerhalb des SFTP gibt es einen erstellten Ordner namens upload, in den die Dateien geschrieben werden: Für die Artikeldatei lautet der Dateiname: item_feed.csv
  • url
    Der Artikel-Feed kann auch über eine öffentliche URL gesendet werden, von der der Portal-Hero-Prozess ihn bei jeder täglichen Ausführung herunterlädt.
    Die URL muss vom Kunden während des Onboarding-Prozesses angegeben werden. Falls weitere Sicherheitsmaßnahmen erforderlich sind, können Sie uns beliebige Header übermitteln, die wir der Anfrage hinzufügen.

Format der CSV-Dateien

Auflistung der Felder, Detailtypen und Beispiele der Artikel-CSV-Datei:

NameTypErforderlichBeschreibungBeispiel
idstringJaEindeutige Kennung des Artikels. Sie muss für alle Artikel eindeutig sein und ist die, die wir verwenden, um in unserer Kommunikation auf die Artikel zu verweisen. (Maximale Länge: 150 Zeichen)wer432r
pricedoubleJaPreis in € mit einer Genauigkeit von 2 Dezimalstellen (nicht obligatorisch) des Artikels.344.95
external_categorystringJaKennung der Kategorie, in die der Artikel hochgeladen wird. Muss ein Text mit der Kategorie sein, keine numerische Kennung. Kann direkt die Kategorie sein, die in Ihrem System existiert.Camisetas manga corta
statusstringJaZustand des Artikels. Die Werte sind auf eine Aufzählung beschränkt, die ebenfalls weiter unten angegeben wird.good
titlestringJaTitel des Artikels. Maximal 60 Zeichen.Camiseta verde
descriptionstringJaBeschreibung des Artikels. Maximal 600 Zeichen.Camiseta verde talla M…
imageslist stringJaZusammengesetztes Feld, erstellt durch die Verkettung der verschiedenen URLs der Artikelbilder mittels "|" (pipe). Diese müssen öffentlich zugänglich und im Format jpg sein. Maximal 10 Bilder.https://image-cdn.com/image1.jpg|https://image-cdn.com/image2.jpg|https://image-cdn.com/image3.jpg
storelist stringNeinKennung des Kontos im Portal, in dem dieser Artikel veröffentlicht werden soll. Nur erforderlich, wenn mehr als ein Konto zur Veröffentlichung von Artikeln vorhanden ist. Bei mehr als einem Konto oder mehr als einem dem Produkt zugeordneten Portal muss es eine Liste von Ganzzahlen sein, getrennt durch "|" (pipe).2|F5
portal_statusstringNeinVeröffentlichungsstatus des Artikels. Mögliche Status: “active”, “reserved”active
shippingboolNeinBoolescher Wert, um anzugeben, ob für den Artikel Versand innerhalb des Portals akzeptiert wird.true
shipping_weight_kgintNeinMit dem Feld "shipping" verbundenes Feld, erforderlich, wenn das Feld shipping true ist. Gibt das Gewicht in kg (aufgerundet ohne Dezimalstellen) des Artikels an.3
free_shippingboolNeinBoolescher Wert, um anzugeben, ob der Verkäufer die Versandkosten übernimmt und diese somit für den Käufer kostenlos sind.true
hashtagsstringNeinZusammengesetztes Feld, erstellt durch die Verkettung der verschiedenen Hashtags mittels "|" (pipe). Jeder davon ist ein einzelnes Wort ohne Leerzeichen und ohne vorangestelltes Rautezeichen (#).bluetooth|bajoconsumo|geek
brandStringNeinMarke des ArtikelsApple
modelStringNeinModell des ArtikelsiPhone 15 pro
stockintNeinAnzahl der Artikel3
attributesstrNeinFeld für zusätzliche Attribute des Artikels. Je nach Kategorie können einige dieser Attribute obligatorisch sein. *additional attributes

* Für Auto-Artikel müssen die folgenden Attribute im Feld 'attributes' als serialisierte JSON-Zeichenkette bereitgestellt werden:

Bezüglich des Feldes status, das sich auf den Zustand der Artikel bezieht, sind die Optionen folgende:

["new", "as_good_as_new", "good", "fair", "has_given_it_all"]

Attribute des Autos

Die Attribute des Autos sind eine Reihe von Merkmalen, die ein Auto beschreiben. Sie werden im Feed und zur Veröffentlichung in den Marktplätzen verwendet.

NameTypErforderlichBeschreibungBeispiel
versionStringJaMotorversion oder Ausstattungsniveau des Autos.1.6 TDI
yearIntJaBaujahr.2018
kmIntJaKilometerstand in Kilometern.60000
horse_powerIntJaMotorleistung in PS (DIN).105
doorsIntNeinAnzahl der Türen.5
body_typeStringNeinKarosserietyp oder -stil. Mögliche Werte:'small_car', 'coupe_cabrio', 'sedan', 'family_car', 'mini_van', 'four_x_four', 'van', 'others'sedan
engineStringJaKraftstofftyp. Mögliche Werte:'gasoil', 'gasolina', 'electric_hybrid', 'others'gasoil
gear_boxStringJaGetriebetyp. Mögliche Werte sind:'manual', 'automatic'manual

Beispiel (python):

car_attrs = {
    "version": "1.6 TDI Toyota",
    "year": "2018",
    "horse_power": 100,
    "mileage": 12000,
    "engine": "gasoil",
    "gearbox": "manual"
}

attributes = json.dumps(car_attrs)

Attribute des Motorrads

Um Motorräder zu integrieren, muss der Artikel die spezifischen Fahrzeuginformationen enthalten. Die technischen Daten werden als JSON serialisiert im Feld 'attributes' gesendet, während Marke und Modell in den Feldern 'brand' und 'model' der CSV übermittelt werden.

Das Feld 'external_category' muss einen der Werte '2', 'Motos', 'Motorbikes' annehmen, damit der Artikel als Motorrad verarbeitet wird. Diese Integration erfordert, dass der Motorrad-ERP-Service in Ihrem Konto aktiv ist.

Die Werte von 'brand' und 'model' müssen exakt mit denen unserer Motorrad-Taxonomie übereinstimmen. Um die gültigen Werte abzufragen, verfügen wir über zwei öffentliche Endpunkte (erfordern Authentifizierung und den aktiven Motorrad-ERP-Service):

  • GET /motorbike_brands — gibt die vollständige Liste der verfügbaren Marken mit ihrer 'uid' und 'value' zurück.
  • GET /motorbike_models?brand_id={uid} — gibt die der über 'brand_id' angegebenen Marke zugeordneten Modelle zurück.

Beachten Sie, dass der Titel des Artikels automatisch aus Marke, Modell, Version (falls angegeben) und Baujahr generiert wird, sodass der Wert des Feldes 'title' bei Motorrädern überschrieben wird.

NameTypErforderlichBeschreibungBeispiel
yearIntJaErstzulassungsjahr. Wert zwischen 1950 und dem auf das aktuelle folgende Jahr.2020
versionStringNeinHandelsname oder Version des Modells. Wird dem automatisch generierten Titel hinzugefügt.modelo actual
kmIntJaKilometerstand in Kilometern. Darf nicht negativ sein.5420
horse_powerIntNeinMotorleistung in PS. Muss ein positiver Wert sein.47
engine_capacity_ccIntNeinHubraum des Motors in Kubikzentimetern. Muss ein positiver Wert sein.400
fuel_typeStringNeinKraftstofftyp. Mögliche Werte: 'gasoline', 'electric'. Wenn nicht angegeben, ist der Standardwert 'gasoline'.gasoline
license_plateStringNeinKennzeichen des Fahrzeugs.1234 ABC

Beispiel (python):

motorbike_attrs = {
    "year": 2020,
    "version": "modelo actual",
    "km": 5420,
    "horse_power": 47,
    "engine_capacity_cc": 400,
    "fuel_type": "gasoline",
    "license_plate": "1234 ABC"
}

attributes = json.dumps(motorbike_attrs)