====== Dokumentation der SOAP Schnittstelle Version 1.2 ======
**Bitte beachten Sie, dass die SOAP-APIs nicht mehr aktiv weiterentwickelt werden. Neue Kunden sollten ausschließlich die RESTful API nutzen, bestehende Nutzer der SOAP-Schnittstellen sollten mittelfristig auf REST umstellen.**
**Dies ist eine alte Version der SOAP-API. [[dokumentation_der_soap_schnittstelle_version_2.0|Zur aktuellen Version 2.0]]**
Eine allgemeine Beschreibung der SOAP-Schnittstelle finden Sie unter [[apis]].
===== SOAP-Zugang =====
==== Zugangsdaten ====
* Proxy/SOAP-Server: ''http://www.autofokus24.de/SoapServer1.2.php''
* WSDL-Datei: ''http://www.autofokus24.de/SoapServer1.2.php?wsdl'' oder ''http://www.autofokus24.de/afsoap1.2.wsdl''
* Encoding: ''ISO-8859-1''
* Namespace/URN: ''autofokus24''
===== Funktionen =====
==== login ====
Syntax: ''bool login ( string username, string password [ ,bool useSoapFaults = false] )''
Mit dieser Funktion loggen Sie sich mit Ihrem Nutzernamen/Passwort im System ein. Der Login wird serverseitig in einer Session gehalten, dafür ist es aber notwendig, dass Sie clientseitig das Setzen von Cookies ermöglichen. Sollte dies nicht möglich sein, kann bei jedem anderen Funktionsaufruf der Nutzername und das Passwort als letzter optionaler Parameter übergeben werden.
* Parameter
* username: Ihr Nutzername
* password: Ihr Passwort
* Rückgabewert
* Liefert true im erfolgsfall zurück. Liefert false im Fehlerfall zurück. Sollte die Ausnahmebehandlung aktiviert sein (useSoapFaults=true) wird ein Fehler (Exception) geworfen.
==== calcCar ====
Syntax: ''array calcCar(string hsn, string tsn, int year, int month, int miles [,string fuzzyText = "" [,string specialModel = "" [,string featureList = "" [,string color = "" [,int power = 0 [,int fuel = 0 [,int buildType = 0 [,int doorCount = 0 [,int dealerSize = 0 [,int priceClass = 0 [,int carVolume = 0 [,int garantieValue = 0 [,int monthWaitForSell = 0 [,string username = "" [,string password = "" ]]]]]]]]]]]]]]] ) ''
Diese Funktion liefert Ihnen ein Array mit den Daten des erkannten Fahrzeuges, sowie den berechneten Verkaufspreis (price) und den Händlereinkaufspreis (priceEK). Wenn die übergebenen Parameter nicht eindeutig auf ein bestimmtes Fahrzeug verweisen (häufig der Fall bei fehlender Angabe des Sondermodells (specialModel) oder bei exotischen Fahrzeugen), wird eine Liste aus mehreren Arrays zurückgegeben. Für jedes Ergebnis werden dabei weiterhin die Preise berechnet. Sie können dann programmseitig filtern, oder die Parameter entsprechend einschränken. Seit Version 1.2 werden auch Standzeitinformationen (siehe [[standzeit|Standzeiten]]) sowie Verkaufswahrscheinlichkeiten (siehe [[verkaufswahrscheinlichkeit]]) zurückgegeben. Optional können auch weitere Parameter zur Händlergröße angegeben werden. Durch die Angaben der Händlerinformationen können realistischere Verkaufspreise ermittelt werden. Die Berechnung des Einkaufspreises bleibt davon unberührt. Zu den Händlerinformationen gehören die Parameter dealerSize, priceClass, carVolume sowie garantieValue. Weitere Informationen zur Händlergröße finden Sie unter [[haendlergroessen]]
* Parameter
* hsn: Die 4-stellige Herstellerschlüsselnummer gemäß Kraftfahrzeugbundesamt.
* tsn: Die 3-stellige Herstellerschlüsselnummer gemäß Kraftfahrzeugbundesamt.
* year: Das Jahr der Erstzulassung.
* month: Der Monat der Erstzulassung.
* miles: Laufleistung in Kilometern
* fuzzyText (optional): Hier kann der Freitext übergeben werden, mit dessen Hilfe die interne künstliche Intelligenz die Ausstattungen, Extras, Farbe, Sondermodell usw. erkannt wird. Als Freitext eignet sich beispielsweise die Inseratsbeschreibung inkl. Titel eines angebotenen Fahrzeuges.
* specialModel (optional): Der Name eines bestimmten Sondermodells (z.B.: "Elegance" oder "Highline"...)
* featureList (optional): Eine Kommaseparierte Liste an Kürzel/Shortcuts von expliziten Extras oder Ausstattungsmerkmalen (z.B.: "KLI,AIB,NAV,PDC") Die Funktion getFeatureList(...) liefert Ihnen eine Liste an möglichen Extras und deren Kürzel/Shortcuts. Hier können auch Werte für die Garantie/Gewährleistung übergeben werden, mit welcher das Fahrzeug verkauft werden soll. Die Garantieleistungen beeinflussen ebenfalls den Fahrzeugwert. Hier können folgende weitere Kürzel/Shortcuts für die Garantieleistung übergeben werden:
* OGEW = Verkauf ohne Gewährleistung
* NO_OGEW = Verkauf mit Gewährleistung
* GARANTIE = Verkauf mit Garantie
* GARANTIE_MARKE = Verkauf mit Markengarantie
* GARANTIE_HERSTELLER = Verkauf mit Herstellergarantie
* color (optional): Das Kürzel/Shortcut der Farbe des Fahrzeuges. (z.B.: "RED") Die Funktion getColors(...) liefert Ihnen eine Liste an möglichen Farben und deren Kürzel/Shortcuts.
* power (optional): Die Motorleistung des Fahrzeuges in Kilowatt.
* fuel (optional): Die Motorart des Fahrzeuges (1 = Ottomotor, 2 = Dieselmotor, 3 = Wankelmotor, 4 = Benzin-Elektro-Hybrid).
* buildType (optional): Die Aufbauvariante des Fahrzeuges (1 = Limousine, 2 = Kombi/Van, 3 = Coupe, 4 = Cabrio).
* doorCount (optional): Anzahl der Türen.
* dealerSize (optional): Die Unternehmensart, mit welcher der Verkäufer des Fahrzeuges agiert. Es können dabei folgende Werte übergeben werden:
* 1 = Vertrags- bzw. Markenhändler
* 2 = Freier Händler der Luxusklasse
* 3 = Freier Neuwagen- und Jahreswagenhändler
* 4 = Freier Händler
* 5 = Freier Händler, überwiegend Export
* 6 = Gutachter/Makler
* 7 = Steuerberater/Versicherung
* 8 = Werkstatt mit kleinem Handel
* priceClass (optional): Preisklasse im Durchschnitt, welche der Verkäufer handelt:
* 0 = kein Handel
* 1 = 0 - 5.000 €
* 2 = 5.000 - 10.000 €
* 3 = 10.000 - 15.000 €
* 4 = 15.000 - 20.000 €
* 5 = 20.000 - 30.000 €
* 6 = 30.000 - 40.000 €
* 7 = über 40.000 €
* carVolume (optional): Fahrzeugbestand im Durchschnitt, welche der Verkäufer handelt:
* 0 = kein Handel
* 1 = 0 - 5 Fahrzeuge
* 2 = 5 - 10 Fahrzeuge
* 3 = 10 - 20 Fahrzeuge
* 4 = 20-50 Fahrzeuge
* 5 = 50-100 Fahrzeuge
* 6 = 100-250 Fahrzeuge
* 7 = 250-1.000 Fahrzeuge
* 8 = über 1.000 Fahrzeuge
* garantieValue (optional): Garantieleistungen, welche der Verkäufer für gewöhnlich anbietet:
* 0 = kein Handel
* 1 = Verkäufe überwiegend ohne Gewährleistung
* 2 = Verkäufe überwiegend mit Gewährleistung, ohne Garantie.
* 3 = Verkäufe überwiegend mit Garantieversicherung.
* 4 = Verkäufe überwiegend mit Herstellergarantie.
* monthWaitForSell (optional): Zeitraum (Periode) in Monaten, für die Berechnung der Verkaufswahrscheinlichkeiten (siehe [[verkaufswahrscheinlichkeit]] sowie [[wahrscheinlichkeit]]). Realistisch sind hierbei Werte zwischen 1 und 6. Wird beispielsweise der Wert 2 übergeben, dann wird im Rückgabewert ein Array mit Preisen und dazugehörigen Verkaufswahrscheinlichkeiten geliefert, welche die Wahrscheinlichkeit für den Verkauf innerhalb von 2 Monaten bewerten.
* username (optional): Ihr Nutzername, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* password (optional): Ihr Passwort, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* Rückgabewert
* Liefert im Erfolgsfall ein Array oder eine Liste an Arrays zurück mit den genauen Daten des erkannten Fahrzeuges und die geschätzten Fahrzeugpreise. Dabei ist "price" der Verkaufspreis und "priceEK" der Händlereinkaufspreis. Alle weiteren Daten erklären sich quasi von selbst. Wenn kein Fahrzeug erkannt wird, wird ein leeres Array zurückgegeben.
* Für die erkannten Ausstattungsmerkmale gibt es zusätzlich eine Reihe von Rückgabewerten:
* extrasByDate: Sind die Ausstattungsmerkmale welche das Fahrzeug anhand seiner Grundausstattung und Bauzeit hat (Analog der Darstellung auf der Autofokus24-Website "Grundausstattung nach Bauzeit").
* extrasByMotor: Sind die zusätzlichen Ausstattungsmerkmale welche das Fahrzeug aufgrund seiner Motorisierung hat (Analog der Darstellung auf der Autofokus24-Website "Zusatzausstattung durch Motorisierung").
* extrasBySpecialModel: Sind die zusätzlichen Ausstattungsmerkmale welche das Fahrzeug aufgrund seines Sondermodells hat (Analog der Darstellung auf der Autofokus24-Website "Zusatzausstattung durch Sondermodell").
* extras (veraltet!): Ist die Summe/Vereinigung der Ausstattungen extrasByDate, extrasByMotor, extrasBySpecialModel. Der einzige Unterschied ist, dass hierbei die Unterteilung in (extrasByDate, extrasByMotor, extrasBySpecialModel) fehlt. Aus Kompatibilitätsgründen wird dieser Wert weiterhin zurückgeliefert, sollte aber nicht mehr verwendet werden. Verwenden Sie stattdessen die drei Rückgabewerte extrasByDate, extrasByMotor, extrasBySpecialModel.
* significantExtras: Sind die möglichen weiteren Ausstattungsmerkmale welche sich gemäß der Autofokus24-Schätzung statistisch relevant auf den Fahrzeugwert auswirken (Analog der Darstellung auf der Autofokus24-Website "Weitere Ausstattung").
* avgSellingTimeAtPrice: Ist die durchschnittliche Standzeit in Tagen bis zum Verkauf bei Marktpreis (price).
* avgSellingTimes: Ist ein Array bestehend aus 2-Tupeln(Verkaufspreis, Verkaufswahrhscheinlichkeit). Es werden dabei stufenweise Preise +/- um den Marktpreis und die zugehörigen Verkaufswahrscheinlichkeiten berechnet. Die Verkaufswahrscheinlichkeit bezieht sich dabei auf die übergebene Wartezeit (monthWaitForSell). Wenn also monthWaitForSell=2 übergeben wurde, und das avgSellingTimes-Array den Eintrag [3900;66] enthält, dann bedeutet es, dass bei einem Verkaufspreis von 3900 Euro die Wahrscheinlichkeit für den Verkauf innerhalb von 2 Monaten 66% beträgt.
==== getFeatureList ====
Syntax: ''array getFeatureList ([username = "", password = ""])''
Diese Funktion liefert Ihnen ein Array der möglichen Ausstattungen/Extras und dessen Kürzel/Shortcuts, welche bei der Funktion calcCar(...) explizit übergeben werden können.
* Parameter
* username (optional): Ihr Nutzername, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* password (optional): Ihr Passwort, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* Rückgabewert
* Liefert ein Array mit den möglichen Ausstattungen/Extras und dessen Kürzel/Shortcuts zurück. Im Fehlerfall wird ein leeres Array zurückgegeben. Sollte die Ausnahmebehandlung aktiviert sein (useSoapFaults=true) wird ein Fehler (Execption) geworfen.
==== getColors ====
Syntax: ''array getColors ([username = "", password = ""]) ''
Diese Funktion liefert Ihnen ein Array der möglichen Farben und dessen Kürzel/Shortcuts, welche bei der Funktion calcCar(...) explizit übergeben werden können.
* Parameter
* username (optional): Ihr Nutzername, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* password (optional): Ihr Passwort, falls das Sessionhandling durch die Funktion login(...) nicht funktioniert.
* Rückgabewert
* Liefert ein Array mit den möglichen Farben und dessen Kürzel/Shortcuts zurück. Im Fehlerfall wird ein leeres Array zurückgegeben. Sollte die Ausnahmebehandlung aktiviert sein (useSoapFaults=true) wird ein Fehler (Execption) geworfen.
==== getLastError ====
Syntax: ''array getLastError () ''
Liefert den letzten aufgetretenen Fehler falls vorhanden.
* Rückgabewert
* Liefert den Fehlercode (errorcode) und die Fehlerbeschreibung (faultstring) des letzten Fehlers zurück, falls ein Fehler aufgetreten ist. Liegt kein Fehler vor, sind die beiden zurückgegebenen Felder leer.
===== Tutorials =====
Im folgenden Abschnitt werden einige einfache Beispiele zur Verwendung der SOAP-Schnittstelle von Autofokus24.de dargestellt.
==== PHP-Tutorial ====
Für die Verwendung in PHP benötigen Sie die [[http://www.php.net/manual/de/class.soapclient.php|PHP-SoapClient-Klasse]].
Code:
WSDL_CACHE_BOTH,
'encoding'=>'ISO-8859-1')
);
/* Login: Mit eMail, Passwort. SoapFaults auf 1 setzen*/
$client->login("mymail@myhost.de","meinpasswort",1);
/* Fahrzeug ermitteln, Preis berechnen und Ergebnis formatiert ausgeben...*/
print_r($client->calcCar("0999", /* HSN */
"269", /* TSN */
2004, /* Jahr */
4, /* Monat */
123000, /* Laufleistung */
" /* Freitext (aus Inserat) */
C 220 T CDI Automatik DPF,Sportpaket.Modell 2005
Brillantsilber met.,Leder Twin schwarz, Sportpaket,
AHK abnehmbar, Regensensor, Scheibenwaschanlage
beheizt, Radio Audio 20 CD, Klimaautomatik,
Sitzheizung, Automatikgetriebe 5 Gang,
Dieselpartikelfilter, LM-Felgen 17 Zoll,
Eingabefehler u.Irrtümer behalten wir uns vor.
",
"Classic", /* Sondermodell */
"XEN,PDC", /* Explizite Ausstattungen */
"", /* Farbe, keine Angabe */
110, /* Motorleistung in Kilowatt */
2, /* Motorart = Diesel */
2, /* Aufbau = Kombi */
0, /* Türen = keine Angabe */
3, /* Unternehmensart = Freier Händler */
2, /* Preisklasse = 5.000 - 10.000 € */
4, /* Fahrzeugbestand = 20-50 */
2, /* Garantieleistungen = Verkäufe überwiegend mit Gewährleistung, ohne Garantie. */
2 /* Verkaufsperiode = 2 Monate */
));
}catch (SOAPFault $f)
{
print $f->faultstring;
}
?>
Ergibt folgende Ausgabe:
Array
(
[0] => Array
(
[make] => Mercedes-Benz
[model] => C-Klasse
[submodelName] => Modell ab 2004 (W203 Facelift)
[buildKind] => 2
[specialModel] => Classic
[power] => 110
[doorCount] => 5
[color] =>
[fuel] => 2
[packets] => Array
(
[0] => AMG/Sport Paket
)
[extras] => Array
(
[PAK3] => 1
[KLI] => 1
[KLIAU] => 1
[AIB] => 1
[BAB] => 1
[SAB] => 1
[WFS] => 1
[KAB] => 1
[FAB] => 1
[ABSS] => 1
[AFLS] => 1
[BC] => 1
[BRA] => 1
[REL] => 1
[ESPI] => 1
[FH] => 1
[ESI] => 1
[ESP] => 1
[ASR] => 1
[NSW] => 1
[SV] => 1
[TMP] => 1
[Z] => 1
[ZF] => 1
[SVT] => 1
[] => 1
[XEN] => 1
[PDC] => 1
[LED] => 1
[LLR] => 1
[AHK] => 1
[CD] => 1
[ALU] => 1
[MET] => 1
[PF] => 1
[REG] => 1
[SOUND] => 1
[SIH] => 1
[NO_OGEW] => 1
)
[extrasByDate] => Array
(
[KLI] => 1
[KLIAU] => 1
[AIB] => 1
[BAB] => 1
[SAB] => 1
[WFS] => 1
[KAB] => 1
[FAB] => 1
[ABSS] => 1
[AFLS] => 1
[BC] => 1
[BRA] => 1
[REL] => 1
[ESPI] => 1
[FH] => 1
[ESI] => 1
[ESP] => 1
[ASR] => 1
[NSW] => 1
[SV] => 1
[TMP] => 1
[Z] => 1
[ZF] => 1
[SVT] => 1
)
[significantExtras] => Array
(
[0] => OGEW
[1] => LED
[2] => ALL
[3] => GAS
[4] => SHZG
[5] => NAV
[6] => NAV
[7] => AUTOMATIK
[8] => PF
[9] => SD
[10] => ALU
[11] => XEN
[12] => AHK
[13] => PDC
[14] => SIH
[15] => REG
[16] => GAR
[17] => WR
[18] => TLED
[19] => IAA
[20] => BXEN
[21] => SPSI
[22] => SOUND
[23] => OTUEV
[24] => LLR
)
[price] => 9096
[priceEK] => 5967
[avgSellingTimeAtPrice] => 41
[avgSellingTimes] => Array
(
[0] => Array
(
[0] => 8600
[1] => 85
)
[1] => Array
(
[0] => 8700
[1] => 83
)
[2] => Array
(
[0] => 8800
[1] => 80
)
[3] => Array
(
[0] => 8900
[1] => 78
)
[4] => Array
(
[0] => 9000
[1] => 75
)
[5] => Array
(
[0] => 9100
[1] => 73
)
[6] => Array
(
[0] => 9200
[1] => 70
)
[7] => Array
(
[0] => 9300
[1] => 68
)
[8] => Array
(
[0] => 9400
[1] => 65
)
[9] => Array
(
[0] => 9500
[1] => 63
)
[10] => Array
(
[0] => 9600
[1] => 60
)
)
)
)
An der Ausgabe ist zu erkennen, dass zunächst Marke, Modell und Submodell anhang der HSN/TSN erkannt und zugeordnet wurden. Die Farbe wurde automatisch anhand des Freitextes erkannt. Das Paket "Sport" wurde auch am Freitext erkannt. Weiterhin wurden die serienmäßigen Extras sowie die am Freitext erkannten Extras zugeordnet. Im Funktionsaufruf wurde das Kürzel "XEN" und "PDC" übergeben, wodurch diese Extras explizit übergeben wurden. Die Extras LED, LLR, AHK, CD, ALU, MET, PF, REG, SOUND, SIH wurden ebenfalls anhand des Freitextes erkannt. Schließlich wird der Verkaufspreis (price) und Händlereinkaufspreis (priceEK) zurückgegeben.