Το car.gr μπορεί να δεχτεί 2 ειδών πρότυπα, το Car.gr XML και XML γενικού εμπορίου. Το ποιο θα επιλέξετε εξαρτάται από το τι είδους κατάλογο έχετε και τι δυνατότητες θέλετε να χρησιμοποιήσετε. Ακολουθεί ένας συνοπτικός πίνακας με τις διαφορές για να σας βοηθήσει να επιλέξετε.
Car.gr XML | XML γενικού εμπορίου | |
---|---|---|
Οχήματα | Υποστηρίζει πλήρως Οχήματα | Μόνο ποδήλατα |
Ανταλλακτικά | Υποστηρίζονται πλήρως | Υποστηρίζονται, αλλά δεν μπορείτε να βάλετε μάρκα-μοντέλο εφαρμογής (πχ ότι ταιριάζει σε VW Golf του '08) |
Μικρές αγγελίες | Ναι | Ναι |
Αντιστοίχιση κατηγοριών | Πρέπει να γίνει εκ των προτέρων από εσάς, ώστε στο αρχείο να υπάρχουν έτοιμα τα αναγνωριστικά του car.gr | Μπορεί να γίνει εκ των υστέρων με ειδικό μενού στο πάνελ σας |
Κόστος υλοποίησης | Πιθανόν να χρειαστείτε custom υλοποίηση, απευθυνθείτε στον κατασκευαστή της ιστοσελίδας/e-shop σας | Πιθανόν να το έχετε ήδη έτοιμο και να λειτουργεί σε κάποια πλατφόρμα σύγκρισης τιμών |
Για να μπορεί να γίνει δεκτό το XML θα πρέπει να περιέχει όλα τα υποχρεωτικά πεδία που πληρούν τις προδιαγραφές όπως αυτές ορίζονται παρακάτω. Σε περίπτωση που είναι έγκυρο το αρχικό XML, αλλά μελλοντικά εισαχθεί κάποιο πεδίο που δεν πληρεί τις προδιαγραφές, τότε η εισαγωγή προϊόντων σταματά στο προϊόν που περιλαμβάνει το μη έγκυρο πεδίο και δεν συνεχίζει σε επόμενα προϊόντα.
Το XML θα πρέπει να είναι κωδικοποιημένο σε UTF-8. Το πεδίο ημερομηνίας τροποποίησης (πεδίο lastupdate) δείχνει την ημερομηνία της τελευταίας τροποποίησης του XML σε μορφή ISO 8601 (δείτε εδώ λεπτομέρειες για τη μορφή ημερομηνίας). Παρακάτω μπορείτε να δείτε ένα παράδειγμα για το πώς πρέπει να ξεκινά το αρχείο.
<?xml version="1.0" encoding="UTF-8"?>
<cardealer>
<lastupdate>2016-01-25T10:45:00Z</lastupdate>
...
</cardealer>
Αν ο κατάλογος σας είναι μεγαλύτερος, τότε θα πρέπει να φτιάξετε μια δέσμη αρχείων που πληρούν τους παραπάνω περιορισμούς και να τους προσθέσετε σαν παραπομπές σε ένα κεντρικό αρχείο. Το κεντρικό αρχείο θα πρέπει να έχει την πιο πρόσφατη ημερομηνία, αλλιώς δε θα ενημερώνεται κανενα επιμέρους αρχείο. Για τα επιμέρους ισχύει ό,τι έχει οριστεί παραπάνω. Το κεντρικό αρχείο θα πρέπει να μοιάζει κάπως έτσι:
<?xml version="1.0" encoding="UTF-8"?>
<cardealer>
<lastupdate>2017-08-02T13:07:29Z</lastupdate>
<include>https://www.mysite.gr/path_to_file_1.xml</include>
<include>https://www.mysite.gr/path_to_file_2.xml</include>
<include>https://www.mysite.gr/path_to_file_3.xml</include>
</cardealer>
Για καθαρά τεχνικούς λόγους επιβάλλεται και μια πολιτική ορθής χρήσης. Αν παρατηρηθεί ότι κάνετε άσκοπη χρήση της υπηρεσίας ή αν τα δεδομένα σας παρουσιάζουν μια κακή εικόνα όσον αφορά την εγκυρότητα τους (πχ πολλές νεκρές διευθύνσεις φωτογραφιών), τότε υπάρχει περίπτωση να λειτουργεί η υπηρεσία με μια χαμηλότερη προτεραιότητα για εσάς, προσωρινά.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpletype name="IntegerOrEmpty">
<xs:union>
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:length value="0"></xs:length>
</xs:restriction>
</xs:simpletype>
<xs:simpletype>
<xs:restriction base="xs:integer"></xs:restriction>
</xs:simpletype>
</xs:union>
</xs:simpletype>
<xs:element name="cardealer">
<xs:complextype>
<xs:sequence>
<xs:element name="lastupdate" type="xs:dateTime"></xs:element>
<xs:element name="cost_limit" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="include" type="xs:string" maxoccurs="300" minoccurs="0"></xs:element>
<xs:element name="classifieds" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="classified" maxoccurs="unbounded" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element type="xs:string" name="unique_id"></xs:element>
<xs:element type="xs:string" name="manufacturer_number" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="aftermarket_number" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="title"></xs:element>
<xs:element type="xs:string" name="mpn" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="description"></xs:element>
<xs:element type="IntegerOrEmpty" name="category_id" maxoccurs="unbounded"></xs:element>
<xs:element type="xs:string" name="price"></xs:element>
<xs:element type="xs:boolean" name="finance" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="multichild_price" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="price_parked" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="wholesale" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="product_make" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="product_model" minoccurs="0"></xs:element>
<xs:element name="makemodels" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="makemodel" maxoccurs="unbounded" minoccurs="0">
<xs:complextype>
<xs:all>
<xs:element type="xs:string" name="make"></xs:element>
<xs:element type="xs:string" name="model" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="yearfrom" minoccurs="0"></xs:element>
<xs:element type="xs:string" name="yearto" minoccurs="0"></xs:element>
</xs:all>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="photos" maxoccurs="1" minoccurs="0">
<xs:complextype mixed="true">
<xs:sequence>
<xs:element name="photo" maxoccurs="unbounded" minoccurs="0">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:maxlength value="1000"></xs:maxlength>
</xs:restriction>
</xs:simpletype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="condition" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="condition_type" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="debatable" type="xs:boolean" minoccurs="0"></xs:element>
<xs:element name="damaged" type="xs:boolean" minoccurs="0"></xs:element>
<xs:element name="external_link" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="youtube" type="xs:anyURI" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="update_interval" minoccurs="0"></xs:element>
<xs:element type="xs:boolean" name="dealersonly" minoccurs="0"></xs:element>
<xs:element name="extra_fields" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="extra_field" maxoccurs="unbounded">
<xs:complextype>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
<xs:element name="value" type="xs:string"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="tags" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="tag" type="xs:string" maxoccurs="unbounded"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="vehicles" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="vehicle" maxoccurs="unbounded" minoccurs="0">
<xs:complextype>
<xs:all>
<xs:element type="xs:string" name="unique_id"></xs:element>
<xs:element name="description" type="xs:string"></xs:element>
<xs:element name="vtype" maxoccurs="1">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="car"></xs:enumeration>
<xs:enumeration value="bike"></xs:enumeration>
<xs:enumeration value="boat"></xs:enumeration>
<xs:enumeration value="motorhome"></xs:enumeration>
<xs:enumeration value="caravan"></xs:enumeration>
<xs:enumeration value="van"></xs:enumeration>
<xs:enumeration value="truck"></xs:enumeration>
<xs:enumeration value="bus"></xs:enumeration>
<xs:enumeration value="builder"></xs:enumeration>
<xs:enumeration value="semitruck"></xs:enumeration>
<xs:enumeration value="semitrailer"></xs:enumeration>
<xs:enumeration value="tractor"></xs:enumeration>
<xs:enumeration value="forklift"></xs:enumeration>
<xs:enumeration value="trailer"></xs:enumeration>
<xs:enumeration value="taxi"></xs:enumeration>
<xs:enumeration value="radiocontrol"></xs:enumeration>
<xs:enumeration value="gokart"></xs:enumeration>
<xs:enumeration value="watersport"></xs:enumeration>
<xs:enumeration value="snowsport"></xs:enumeration>
<xs:enumeration value="bicycle"></xs:enumeration>
<xs:enumeration value="airsport"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element name="category_id" type="xs:string"></xs:element>
<xs:element name="make_id" type="IntegerOrEmpty"></xs:element>
<xs:element name="model_id" type="IntegerOrEmpty" minoccurs="0"></xs:element>
<xs:element name="variant" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="price" type="xs:decimal"></xs:element>
<xs:element name="multichild_price" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="price_parked" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="wholesale" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="finance" type="xs:boolean" minoccurs="0"></xs:element>
<xs:element name="finance_options" minoccurs="0">
<xs:complextype>
<xs:all>
<xs:element name="interest" minoccurs="0"></xs:element>
<xs:element name="mindownpayment" minoccurs="0"></xs:element>
<xs:element name="maxinstallments" minoccurs="0"></xs:element>
</xs:all>
</xs:complextype>
</xs:element>
<xs:element name="leasing_options" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="leasing_option" maxoccurs="unbounded">
<xs:complextype>
<xs:all>
<xs:element name="downpayment" type="xs:decimal"></xs:element>
<xs:element name="mileage"></xs:element>
<xs:element name="duration"></xs:element>
<xs:element name="purchase_price"></xs:element>
<xs:element name="lease" type="xs:decimal"></xs:element>
</xs:all>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="leasing_extras" minoccurs="0">
<xs:complextype>
<xs:sequence>
<xs:element name="leasing_extra" maxoccurs="unbounded"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="only_leasing" minoccurs="0"></xs:element>
<xs:element name="condition">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="Μεταχειρισμένο"></xs:enumeration>
<xs:enumeration value="Καινούριο"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element type="xs:boolean" name="debatable" minoccurs="0"></xs:element>
<xs:element type="xs:boolean" name="crashed" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="regiyear"></xs:element>
<xs:element type="xs:int" name="regimonth"></xs:element>
<xs:element type="xs:int" name="power" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="power_kw" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="engine" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="mileage" minoccurs="0"></xs:element>
<xs:element name="fueltype" minoccurs="0">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="Βενζίνη"></xs:enumeration>
<xs:enumeration value="Ηλεκτρικό"></xs:enumeration>
<xs:enumeration value="Φυσικό αέριο(CNG)"></xs:enumeration>
<xs:enumeration value="Φυσικό αέριο(CNG) - Βενζίνη"></xs:enumeration>
<xs:enumeration value="Υβριδικό Βενζίνη"></xs:enumeration>
<xs:enumeration value="Αέριο/LPG"></xs:enumeration>
<xs:enumeration value="Αέριο(LPG) - Βενζίνη"></xs:enumeration>
<xs:enumeration value="Πετρέλαιο"></xs:enumeration>
<xs:enumeration value="Υβριδικό Πετρέλαιο"></xs:enumeration>
<xs:enumeration value="Υβριδικό Plug-In"></xs:enumeration>
<xs:enumeration value="Υβριδικό Plug-In Βενζίνη"></xs:enumeration>
<xs:enumeration value="Υβριδικό Plug-In Πετρέλαιο"></xs:enumeration>
<xs:enumeration value="Υδρογόνο"></xs:enumeration>
<xs:enumeration value="Άλλο"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element name="battery_range" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="battery_capacity" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="battery_charge_time" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="battery_quick_charge_time" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="color" maxoccurs="1" minoccurs="0">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="Κόκκινο"></xs:enumeration>
<xs:enumeration value="Κίτρινο"></xs:enumeration>
<xs:enumeration value="Πράσινο"></xs:enumeration>
<xs:enumeration value="Πράσινο σκούρο"></xs:enumeration>
<xs:enumeration value="Μαύρο"></xs:enumeration>
<xs:enumeration value="Ασπρο"></xs:enumeration>
<xs:enumeration value="Μπλε σκούρο"></xs:enumeration>
<xs:enumeration value="Κόκκινο σκούρο"></xs:enumeration>
<xs:enumeration value="Πορτοκαλί"></xs:enumeration>
<xs:enumeration value="Λεμονί"></xs:enumeration>
<xs:enumeration value="Ασημί"></xs:enumeration>
<xs:enumeration value="Ροζ"></xs:enumeration>
<xs:enumeration value="Καφέ"></xs:enumeration>
<xs:enumeration value="Καφέ"></xs:enumeration>
<xs:enumeration value="Μπεζ"></xs:enumeration>
<xs:enumeration value="Γκρι"></xs:enumeration>
<xs:enumeration value="Χρυσαφί"></xs:enumeration>
<xs:enumeration value="Μπλε"></xs:enumeration>
<xs:enumeration value="Μπλέ"></xs:enumeration>
<xs:enumeration value="Μπλε"></xs:enumeration>
<xs:enumeration value="Χρώμιο"></xs:enumeration>
<xs:enumeration value="Γαλάζιο"></xs:enumeration>
<xs:enumeration value="Μπορντό"></xs:enumeration>
<xs:enumeration value="Μόβ-Βιολετί"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element type="xs:boolean" name="metallic" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="beds" minoccurs="0"></xs:element>
<xs:element name="cabins" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="body_material" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="length" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="transmission" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="seats" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="kteo" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="weight" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="payload" type="xs:int" minoccurs="0"></xs:element>
<xs:element name="numplate" minoccurs="0">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="even"></xs:enumeration>
<xs:enumeration value="unknown"></xs:enumeration>
<xs:enumeration value="odd"></xs:enumeration>
<xs:enumeration value="without"></xs:enumeration>
<xs:enumeration value="historical"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element type="xs:int" name="doors" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="co2" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="euroclass" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="toilets" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="airbags" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="rim_size" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="gears" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="fuel_city" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="fuel_motorway" minoccurs="0"></xs:element>
<xs:element type="xs:decimal" name="fuel_mixed" minoccurs="0"></xs:element>
<xs:element name="drive" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="features" minoccurs="0" maxoccurs="1">
<xs:complextype mixed="true">
<xs:sequence>
<xs:element name="feature" type="xs:string" maxoccurs="unbounded" minoccurs="0"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="photos" minoccurs="0">
<xs:complextype mixed="true">
<xs:sequence>
<xs:element name="photo" type="xs:string" maxoccurs="unbounded" minoccurs="0"></xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
<xs:element name="external_link" minoccurs="0"></xs:element>
<xs:element name="youtube" type="xs:anyURI" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="update_interval" minoccurs="0"></xs:element>
<xs:element type="xs:boolean" name="dealersonly" minoccurs="0"></xs:element>
<xs:element type="xs:int" name="previous_owners" minoccurs="0"></xs:element>
<xs:element name="interior_type" minoccurs="0">
<xs:simpletype>
<xs:restriction base="xs:string">
<xs:enumeration value="Alcantar"></xs:enumeration>
<xs:enumeration value="Ύφασμα"></xs:enumeration>
<xs:enumeration value="Βελούδο"></xs:enumeration>
<xs:enumeration value="Δέρμα"></xs:enumeration>
<xs:enumeration value="Δέρμα-Ύφασμα"></xs:enumeration>
<xs:enumeration value="Δερματίνη"></xs:enumeration>
<xs:enumeration value="Άλλο"></xs:enumeration>
</xs:restriction>
</xs:simpletype>
</xs:element>
<xs:element name="interior_color" type="xs:string" minoccurs="0"></xs:element>
<xs:element name="circulation_tax" type="xs:decimal" minoccurs="0"></xs:element>
<xs:element name="external_certificate" minoccurs="0">
<xs:complextype>
<xs:all>
<xs:element name="provider_id" type="xs:int"></xs:element>
<xs:element name="report_id" type="xs:int"></xs:element>
<xs:element name="vin_digits" type="xs:int"></xs:element>
</xs:all>
</xs:complextype>
</xs:element>
<xs:element name="notes" type="xs:string" minoccurs="0"></xs:element>
</xs:all>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:sequence>
</xs:complextype>
</xs:element>
</xs:schema>