Autoscout

Diese TYPO3-Erweiterung ist ist eine Zusatzerweiterung für "fahrzeugsuche". Sie ermöglicht den Import von Fahrzeugdaten von autoscout24.de

Systemvoraussetzungen

  • curl
  • Scheduler/Cronjob

Installation

Installieren Sie die Erweiterung mit dem Extension-Manager oder mit composer:

composer req codingms/autoscout

Konfiguration

  1. Erstellen Sie einen Sys-Ordner, in dem die importierten Daten gespeichert werden sollen.
  2. Erstellen Sie einen Datensatz vom Typ "Fahrzeugsuche: Connection", setzen Sie "source" auf "autoscout24.de".
  3. Vergeben Sie im Feld "ID" einen beliebigen Wert (z. B. "1234"). (Dieses Feld wird benötigt, um eine Verknüpfung zwischen dem Connenction-Datensatz und den Fahrzeugdatensätzen herzustellen.)
  4. Setzen Sie Benutzernamen und Passwort der autoscout24.de API. Diese können Sie über https://listing-search.api.autoscout24.com/docs/#/authentication_authorization beziehen.
  5. Optional: Passen Sie die Felder "Query" und "Additional Fields" nach Bedarf an (s. u.).

Importieren

Erstellen Sie eine Planer-Aufgabe vom Typ "Konsolenbefehle ausführen" und wählen Sie "autoscout:import".

Optional können Sie die ID der Connection angeben von der Sie die Daten importieren möchten. Wenn Sie dieses Feld leer lassen, werden alle Daten von Connections vom Typ "autooscout" auf einmal importiert.

Sie können auch die TYPO3 Konsole verwenden:

vendor/bin/typo3 autoscout:import

Zugriff auf weitere Daten

Einige Daten sind nur im XML verfügbar, nicht in der Datenbank. Diese Daten sind im Knoten "additional" gespeichert, auf diesen kann in Fluid über {fahrzeug.additional} zugegriffen werden.

Zusätzliche Bilder werden automatisch übernommen.

Um weitere Datenfelder aus AutoScout24 zu übertragen und bis zum Fluid-Template durchzureichen, gehen Sie wie folgt vor:

  • Im "Connection"-Datensatz das Feld "Query" anpassen und die gewünschten Felder aufnehmen.
  • Im "Connection"-Datensatz das Feld "Additional fields" anpassen. Hier wird der Pfad aus der Query angegeben, mit Minuszeichen ("-") als Trenner zwischen den Feldbezeichnern (Beispiel s. u.).
  • Im Fluid-Template kann auf die zusätzlichen Felder über {fahrzeug.additional.BEZEICHNER} zugegriffen werden, z. B. {fahrzeug.additional.details-location-city}.

Beispiel: Zugriff auf weitere Bilder

<f:for each="{fahrzeug.additional.images}" as="image">
    <h3>Size S</h3>
    {image.size-s}<br/>
    <f:image src="{image.size-s}"></f:image><br/>

    <h3>Size M</h3>
    {image.size-m}<br/>
    <f:image src="{image.size-m}"></f:image><br/>

    <h3>Size L</h3>
    {image.size-l}<br/>
    <f:image src="{image.size-l}"></f:image><br/>

    <h3>Size XL</h3>
    {image.size-xl}<br/>
    <f:image src="{image.size-xl}"></f:image><br/>

    <h3>Size 2XL</h3>
    {image.size-2xl}<br/>
    <f:image src="{image.size-2xl}"></f:image><br/>

    <h3>Size 3XL</h3>
    {image.size-3xl}<br/>
    <f:image src="{image.size-3xl}"></f:image><br/>

    <h3>Size 4XL</h3>
    {image.size-4xl}<br/>
    <f:image src="{image.size-4xl}"></f:image><br/>
</f:for>

Beispiel: Zugriff auf zusätzliche eigene Felder

Beispiel: "seller" --> "companyName"

Connection-Datensatz: Query

query MyCustomSearch {
  search {
    listings(metadata: {size: 400}) {
      listings {
        id
        details {
          seller {
            id
            companyName
          }
          [...]

Connection-Datensatz: Additional fields

details-seller-companyName

Fluid-Template

{fahrzeug.additional.details-seller-companyName}

Fahrzeuge verschiedener Standorte auf unterschiedlichen Seiten anzeigen

Wenn Sie Fahrzeuge von verschiedenen Standorten auf unterschiedlichen Seiten anzeigen lassen wollen, gehen Sie folgt vor:

  • Legen Sie pro Standort einen Ordner an (z. B. "Fahrzeuge Berlin", "Fahrzeuge München").
  • Legen Sie in diesem Ordner eine "Connection" an. Wichtig: Jede Connection muss eine unterschiedliche ID bekommen, z. B. der Ortsname. Es können in allen Connections die gleichen Account-Zugangsdaten verwendet werden.
  • Ändern Sie die Query in dem Connection-Datensatz so, dass nur Fahrzeuge des gewünschten Standortes importiert werden (Beispiel s. u.).
  • Legen Sie pro Standort eine Seite an, auf der Sie das Fahrzeugsuche-Plugin einfügen.
  • Erstellen Sie auf dieser Seite ein Erweiterungs-Template und hinterlegen Sie in den Konstanten als Container-ID die IDs der zuvor angelegten Ordner: themes.configuration.container.fahrzeugsuche = 123. Wenn Sie die Fahrzeuge mehrerer Standorte anzeigen lassen wollen, setzen Sie die IDs der Ordner kommagetrennt ein: themes.configuration.container.fahrzeugsuche = 123,124

Beispiel: Query für Fahrzeuge eines bestimmten Standortes

Beispiel-Query für die PLZ "12345":

query MyCustomSearch {
  search {
    listings(metadata: {size: 400}, location: { zip: "12345", radius: 1 }) {
      listings {
        id
        details {
          [...]