Η σελίδα είναι διαθέσιμη και στα: enEnglish

Ενημέρωση

Μπορείτε να χρησιμοποιήσετε τον Data Feed Validator για να ελέγξετε την εγκυρότητα του XML Feed με βάση τις προδιαγραφές του Skroutz.

Προδιαγραφές XML Edit the file on GitHub

To παρόν έχει σαν σκοπό να περιγράψει την δομή και την λειτουργικότητα που πρέπει να έχει το XML που παρέχει ένα ηλεκτρονικό κατάστημα στο Skroutz. Η δομή του XML δεν χρειάζεται να είναι συγκεκριμένη αρκεί να περιέχονται τουλάχιστον τα απαραίτητα πεδία όπως αυτά περιγράφονται στην αντίστοιχη ενότητα.

Πίνακας περιεχομένων

Απαιτήσεις

Σε γενικές γραμμές το XML αρχείο είναι απαραίτητο να πληροί τις εξής προδιαγραφές:

  • Να καθορίζει το encoding.
  • Να παρέχει πληροφορία την ώρα που δημιουργήθηκε.
  • Να είναι valid (μπορείτε να το ελέγξετε εδώ).
  • Να είναι σε συμπιεσμένη μορφή (zip ή gzip) αν το μέγεθος του υπερβαίνει τα 10MB.
  • Να μην επαναλαμβάνει τα ίδια προϊόντα (δείτε περισσότερα εδώ).
  • Να περιλαμβάνει τον Φ.Π.Α στις τιμές.

Εδώ μπορείτε να δείτε παράδειγμα ενός XML και εδώ μπορείτε να βρείτε το XSD για λόγους validation του παραγόμενου XML.

Εναλλακτικά, μπορείτε να ελέγξετε το XML σας με βάση τις προδιαγραφές του Skroutz.

Τεχνικά Χαρακτηριστικά

SkroutzBot

Το Skroutz χρησιμοποιεί web crawler για να κατεβάζει το XML. Μπορεί να αναγνωριστεί από το HTTP header "User-Agent: SkroutzBot". Ουσιαστικά δεν πρόκειται για bot (www.robotstxt.org), παρόλο που αποκαλείται έτσι.

Το SkroutzBot δεν κάνει crawl όλη τη σελίδα παρά μόνο τα παρακάτω URLs:

  • το link του αρχείου XML
  • τα links των φωτογραφιών στο XML: Το Skroutz κατεβάζει τις εικόνες των προϊόντων.
  • τα links των προϊόντων στο XML: Το Skroutz κάνει δειγματοληπτικό έλεγχο των προϊόντων.

Το SkroutzBot χρησιμοποιεί τις ακόλουθες IPs:

  • IPv6: 2a03:e40::/32
  • IPv4: 185.6.76.0/22

Θα πρέπει να δοθεί προσοχή, προκειμένου το SkroutzBot να έχει πάντα πρόσβαση στις παραπάνω IPs, χωρίς κάποιο όριο (rate limit).

ΣΗΜΕΙΩΣΗ

Ενδέχεται να χρειαστεί να εξαιρέσετε τις IPs που χρησιμοποιεί το SkroutzBot από εργαλεία που κάνουν rate-limit όπως τα BitNinja, Cloudflare κλπ.

Το SkroutzBot θα διατηρήσει έναν λογικό ρυθμό requests.

To SkroutzBot δεν κάνει HTTP ή άλλης μορφής authentication. Η προτεινόμενη λύση είναι η εξαίρεση συγκεκριμένων IPs και η προσθήκη τους στις έμπιστες IPs (whitelist).

Επιπλέον, το SkroutzBot δεν στέλνει Accept-Encodingheader, αλλά μπορεί να διαχειριστεί συμπιεσμένα αρχεία σε gzip και zip. Ο server του καταστήματος δεν πρέπει να απαγορεύει την πρόσβαση στο SkroutzBot εάν χρησιμοποιεί συμπίεση gzip ή zip.

ΣΗΜΕΙΩΣΗ

Ένας εύκολος τρόπος για να προσομοιώσετε το SkroutzBot είναι να χρησιμοποιήσετε την εντολή curl -A "SkroutzBot v1.0" -i -L

Data Feed

Για να μπορεί να γίνει δεκτό το Data Feed θα πρέπει να περιέχει όλα τα υποχρεωτικά πεδία που πληρούν τις προδιαγραφές όπως αυτές ορίζονται παρακάτω.

XML Declaration

Το XML θα πρέπει να περιλαμβάνει οπωσδήποτε το encoding του αρχείου και την ημερομηνία δημιουργίας. Η ημερομηνία δημιουργίας χρησιμοποιείται για να εξακριβώσουμε αν κάποιο αρχείο περιέχει ενημερωμένα δεδομένα ή όχι.

Παράδειγμα
<?xml version="1.0" encoding="UTF-8"?>
<mywebstore>
   <created_at>2010-04-08 12:32</created_at>
   ...
</mywebstore>
Σημείωση

To encoding που δηλώνετε στο declaration πρέπει να είναι το πραγματικό. Αν π.χ. δηλώνετε ISO-8859-7, το αρχείο δεν μπορεί να περιέχει χαρακτήρες από άλλο character set γιατί υπάρχει ενδεχόμενο να μην είναι έγκυρο, με αποτέλεσμα τη μη ανανέωση των προϊόντων.

Σημείωση

Αν τα αρχεία δεν παράγονται σε πραγματικό χρόνο, θα πρέπει να φροντίσετε η διαδικασία αυτή να γίνεται τουλάχιστον μία φορά την ημέρα.

Πεδία

Στον παρακάτω πίνακα μπορείτε να δείτε περιληπτικά τα πεδία που αναγνωρίζονται από το Skroutz:

Η HTML δεν επιτρέπεται σε κανένα από τα πεδία του XML.

Όνομα Τύπος Μέγιστο Μήκος Υποχρεωτικό Παράδειγμα
Unique ID String 200 Ναι 322
Name String 300 Ναι Samsung Galaxy S4 16GB
Product Link String 1000 Ναι http://www.someurl.com/products/322.html
Image Link String 400 Ναι http://www.someurl.com/images/322.jpg
Additional Image Link String 400 Όχι http://www.someurl.com/images/322/front_view.jpg
Category Name String 250 Ναι Κινητά τηλέφωνα
Price Decimal - Ναι 23.22
Availability String 60 Ναι Σε 2 μέρες
Manufacturer String 100 Ναι Samsung
MPN / ISBN String 80 Ναι GF322234
EAN / Barcode Integer 13 Όχι 9780471117094
Size String 500 Όχι* 36,37,38 1/2,40,44
Weight Decimal - Όχι** 3200
InStock List - Όχι Y
Shipping Costs Decimal - Όχι 3.22
Color String 100 Όχι Μαύρο

* Υποχρεωτικό για τις κατηγορίες μόδας όπου υπάρχουν νούμερα
** Υποχρεωτικό για τα καταστήματα που χρησιμοποιούν κανόνες βάρους για τον υπολογισμό των μεταφορικών τους

Unique ID

To πεδίο αυτό είναι το μοναδικό αναγνωριστικό του προϊόντος στο κατάστημά σας. Η τιμή του πεδίου αυτού είναι υποχρεωτικό να παραμείνει ίδια καθ' όλη τη διάρκεια "ζωής" του προϊόντος.

Αν αλλάξει o τίτλος ενός προϊόντος ώστε να αφορά διαφορετικό μοντέλο (π.χ. από Sony LDF700, γίνει Sony LDF800), το προϊόν θα απενεργοποιηθεί. Τα Unique ID πρέπει πάντα να αφορούν το ίδιο προϊόν.

Το Unique ID δεν μπορεί να υπάρχει σε παραπάνω από ένα προϊόν. Αν υπάρχει παραπάνω από μία φορά μέσα στο feed, τότε το προϊόν θα αποθηκευθεί με τα στοιχεία της τελευταίας σε σειρά εμφάνισης.

Σε περίπτωση που το commerce engine σας υποστηρίζει παραπάνω από μία γλώσσες, τα προϊόντα θα πρέπει να περιλαμβάνονται ΜΟΝΟ μία φορά και κατά προτίμηση στα Ελληνικά.

Παράδειγμα
<UniqueID>32</UniqueID>
<product id="44">...</product>
<PRODUCTID>232AD</PRODUCTID>

Name

Είναι ο τίτλος του προϊόντος. Στον τίτλο είναι απαραίτητο να περιλαμβάνονται όλα τα χαρακτηριστικά που αφορούν το προϊόν όπως π.χ. κατασκευαστής, μοντέλο, χρώμα, έκδοση, κατάσταση. Όσο πιο ακριβής είναι ο τίτλος του προϊόντος, τόσο πιο γρήγορα θα γίνει η ταξινόμησή του.

Ο τίτλος των προϊόντων που δεν είναι καινούρια θα πρέπει οπωσδήποτε να αναφέρει την κατάστασή τους (ανακατασκευασμένα, μεταχειρισμένα, εκθεσιακά κτλ), διαφορετικά θα απενεργοποιούνται από την ομάδα περιεχομένου.

Παράδειγμα
<Name>Nokia 5800 XpressMusic</Name>
<title>Nokia 5800 XpressMusic</title>

Στον τίτλο των προϊόντων δεν επιτρέπεται η αναφορά σε πληροφορίες που αφορούν στην εγγύηση του προϊόντος, στο κόστος των μεταφορικών εξόδων ή του τρόπου πληρωμής του, σε ασαφή δώρα / γενικές προσφορές που έχει επιλέξει το κατάστημα για να ενισχύσει την πώληση του προϊόντος και σε κάθε είδους προωθητική (marketing) ενέργεια.

Είναι ο σύνδεσμος που οδηγεί στη σελίδα του καταστήματός σας για το συγκεκριμένο προϊόν. Θα πρέπει να είναι έγκυρος σύνδεσμος και να ξεκινάει με http ή https.

Τα links ΔΕΝ πρέπει να είναι URL-encoded.

O σύνδεσμος αυτός είναι απαραίτητο να οδηγεί σε σελίδα προϊόντος και όχι σε κατηγορία ή συλλογή προϊόντων.

Στο σύνδεσμο του εκάστοτε προϊόντος δεν χρειάζεται να περιέχεται το session id της σύνδεσης.

Λάθος (περιέχει session id)
<url>http://www.mydomain.com/products/product.php?itemid=1&amp;osCsid=77777d01474f6df1e9d0775900409ddd&amp;page=1</url>
Σωστό (το session id έχει αφαιρεθεί)
<url>http://www.mydomain.com/products/product.php?itemid=1&amp;page=1</url>
Παράδειγμα
<link>http://www.mydomain.com/products/1</link>
<url>http://www.mydomain.com/products/product.php?itemid=1</url>
<url><![CDATA[http://www.mydomain.com/products/product.php?itemid=1&amp;somevar=3]]></url>
<url>http://www.mydomain.com/products/product.php?itemid=1&amp;amp;somevar=3</url>

Είναι η εικόνα (φωτογραφία) του προϊόντος. Πρέπει να είναι σύνδεσμος σε εικόνα και να ξεκινάει με http. Scripts που παράγουν εικόνες υπάρχει πιθανότητα να μη λειτουργούν σωστά, γι' αυτό και είναι προτιμητέο ο σύνδεσμος να οδηγεί στο πραγματικό αρχείο.

Όσο πιο μεγάλη είναι η εικόνα, τόσο το καλύτερο. Οι εικόνες αποθηκεύονται από το Skroutz και δημιουργείται ένα κατάλληλου μεγέθους thumbnail.

Η αποστολή φωτογραφιών με ενσωματωμένο το λογότυπο του καταστήματος ή οποιοδήποτε υδατογράφημα δεν επιτρέπεται.

Τα links ΔΕΝ πρέπει να είναι URL-encoded.

Αποφύγετε να βάζετε "Νο Image" εικόνες γιατί αν αργότερα την αλλάξετε, το Skroutz δεν θα την ανανεώσει. Αν κάποιο προϊόν σας δεν έχει φωτογραφία, στείλτε ως σύνδεσμο το κενό string. Όταν αργότερα προστεθεί η εικόνα, το σύστημα θα καταλάβει τη διαφορά και θα την ανανεώσει.

Παράδειγμα
<image>http://www.mydomain.com/photos/1.jpg</image>
<imageurl>http://www.mydomain.com/photos/b&amp;amp;b.jpg</imageurl>
<url><![CDATA[http://www.mydomain.com/photos/b&amp;b.jpg]]></url>

Χρησιμοποιείται για επιπρόσθετες φωτογραφίες του προϊόντος. Επιπλέον φωτογραφίες του ίδιου προϊόντος από διαφορετικές οπτικές γωνίες ή με διαφορετικό τρόπο παρουσίασης ή συνδυασμοί των παραπάνω ενισχύουν την παρουσίαση του προϊόντος στο Skroutz.

Το πεδίο είναι προαιρετικό αλλά συνίσταται η χρήση του. Μπορεί να εμφανίζεται πολλές φορές σε ένα feed, μιά φορά για κάθε διαφορετική φωτογραφία. Ισχύουν οι ίδιοι περιορισμοί με το Image Link

Παράδειγμα
<image>http://www.mydomain.com/photos/1.jpg</image>
<imageurl>http://www.mydomain.com/photos/b&amp;amp;b.jpg</imageurl>
<additional_imageurl>http://www.mydomain.com/photos/product1/front.jpg</additional_imageurl>
<additional_imageurl>http://www.mydomain.com/photos/product1/sides.jpg</additional_imageurl>
<additional_imageurl>http://www.mydomain.com/photos/product1/packaged.jpg</additional_imageurl>
<url><![CDATA[http://www.mydomain.com/photos/b&amp;b.jpg]]></url>

Category Name

Είναι η κατηγορία του προϊόντος. Είναι απαραίτητο να περιλαμβάνει όλη τη διαδρομή μέχρι την κατηγορία του προϊόντος. Π.χ. αν το προϊόν ανήκει στην κατηγορία Εσωτερικός Σκληρός Δίσκος, το πεδίο θα έχει τιμή Ηλεκτρονικοί Υπολογιστές > Hardware > Εσωτερικοί Σκληροί Δίσκοι.

Αποφύγετε διφορούμενες κατηγορίες που περιλαμβάνουν διαφορετικά προϊόντα μεταξύ τους (π.χ. "Εκτυπωτές & Scanner"), όπου η ταξινόμηση θα καθυστερεί λόγω των επιπλέον ελέγχων που χρειάζεται να γίνουν για να τοποθετηθούν τα προϊόντα στις σωστές κατηγορίες.

Παράδειγμα
<category>Κινητή Τηλεφωνία > Bluetooth</category>
<category_path>Ηλεκτρονικοί Υπολογιστές - Hardware - Επεξεργαστές</category_path>

Price

Είναι η τιμή του προϊόντος με Φ.Π.Α.. Αν η τιμή δεν περιλαμβάνει Φ.Π.Α., θα προστεθεί το ανώτατο ποσοστό για όλα τα είδη των προϊόντων.

Η τιμή θα πρέπει να είναι ίδια για όλους και να μην έχει προϋποθέσεις εφαρμογής.

Availability

Το πεδίο αυτό πρέπει να αναφέρει την έκφραση διαθεσιμότητας που χρησιμοποιείτε και στο site σας.

To Skroutz χρησιμοποιεί ένα προκαθορισμένο σύνολο από εκφράσεις διαθεσιμότητας, οι οποίες διασταυρώνονται με αυτές που περιλαμβάνονται στο XML σας.

Άμεση παραλαβή / Παράδoση 1 έως 3 ημέρες
αφορά στα ηλεκτρονικά καταστήματα που έχουν και φυσική παρουσία. Αυτό σημαίνει πως διαθέτουν το προϊόν στο κατάστημα και υπάρχει δυνατότητα παραλαβής από το χώρο του φυσικού καταστήματος.
Παράδοση σε 1 - 3 ημέρες
αφορά προϊόντα τα οποία δεν είναι άμεσα διαθέσιμα στο κατάστημα (φυσικό ή ηλεκτρονικό), αλλά ενδέχεται να είναι διαθέσιμα για αποστολή από την αποθήκη ή/και τον εκάστοτε προμηθευτή του καταστήματος.
Παράδοση σε 4 - 10 ημέρες
αφορά προϊόντα τα οποία δεν είναι άμεσα διαθέσιμα στο κατάστημα, αλλά σε κάθε περίπτωση θα παραδοθούν εντός αυτού του διαστήματος.
Κατόπιν Παραγγελίας
αφορά προϊόντα τα οποία δεν υπάρχουν σε απόθεμα και παραδίδονται μόνο κατόπιν παραγγελίας. Στα προϊόντα αυτά ο χρόνος παράδοσης σε καμία περίπτωση δε μπορεί να ξεπερνάει τις 30 ημερολογιακές ημέρες, δηλαδή, το μέγιστο όριο που ορίζεται από τη νομοθεσία για το ηλεκτρονικό εμπόριο και τις πωλήσεις από απόσταση.

Manufacturer

Ο κατασκευαστής του προϊόντος.

Ο κατασκευαστής θα πρέπει να περιλαμβάνεται και στον τίτλο, ανεξάρτητα από το αν περιλαμβάνεται και στο πεδίο κατασκευαστή.

Ο κατασκευαστής θα πρέπει να αναφέρεται στον πραγματικό κατασκευαστή του προϊόντος και όχι για τον κατασκευαστή για τον οποίο προορίζεται. Για παράδειγμα μια θήκη κινητού τηλεφώνου για το Apple iPhone που κατασκευάζεται από τον κατασκευαστή Belkin, χρειάζεται να αναφέρει τον Belkin ως κατασκευαστή και όχι την Apple.

MPN / ISBN

Είναι ο μοναδικός κωδικός που δίνει ο κατασκευαστής στα προϊόντα του. Χρησιμοποιείται για την ταυτοποίηση των προϊόντων σε περίπτωση που αυτό δεν είναι εμφανές από το μοντέλο.

Το πεδίο αυτό είναι υποχρεωτικό για τις κατηγορίες όπου ο κωδικός του κατασκευαστή είναι σημαντικός για την αναγνώριση και ταξινόμηση του προϊόντος (π.χ. Τηλεοράσεις, Κινητά τηλέφωνα, Ρολόγια Χειρός, Αθλητικά Παπούτσια κτλ)

Αν το προϊόν είναι βιβλίο, το πεδίο αυτό είναι υποχρεωτικό και πρέπει να περιέχει τον αριθμό ISBN του βιβλίου.

Βιβλία που δεν περιέχουν ISBN δεν θα ταξινομούνται.

EAN / Barcode

Ο διεθνής αριθμός είδους (EAN) που χρησιμοποιείται για την ταυτοποίηση των προϊόντων λιανικής.

Αυτό το πεδίο είναι προαιρετικό αλλά συνίσταται για τις κατηγορίες με προϊόντα που είναι του ίδιου είδους αλλά έχουν διαφοροποιήσεις στο βάρος, χρώμα κτλ. Ένα μοναδικό EAN χρησιμοποιείται για κάθε ξεχωριστό προϊόν.

Size

Αν το προϊόν έχει μεγέθη, εδώ χρειάζεται να περιλαμβάνονται όλα τα μεγέθη για τα οποία υπάρχει διαθεσιμότητα χωρισμένα μεταξύ τους με κόμμα.

Π.χ. ένα αθλητικό παπούτσι που υπάρχει στα μεγέθη 38, 39, και 39.5 χρειάζεται να έχει στο XML την παρακάτω εγγραφή:

<size>36,37,38,39.5</size>

Τα μισά μπορούν να δηλώνονται και ως 1/2, π.χ.

<size>36,37,38,39 1/2</size>

Επίσης σε περίπτωση ρούχων τα μεγέθη μπορεί να έχουν ένα από τα παρακάτω format:

<size>XXS, XS, S, M, L, XL, XXL, XXXL</size>
<size>Extra Small, Small, Medium, Large, Extra Large</size>
<size>00, 0, 2, 4, 6, 8, 10, 12, 14, 16</size>

Αν ένα προϊόν σας κάνει για παραπάνω από ένα μεγέθη (π.χ. κάλτσες), τότε μπορείτε να το δηλώσετε ως range χρησιμοποιώντας την παύλα (-). Παράδειγμα:

<size>37-39,42-45</size>

Τέλος, αν ένα προϊόν έχει παραπάνω από ένα μεγέθη (π.χ. παντελόνια) τότε μπορούν να δηλωθούν και τα δύο με την χρήση της καθέτου (/). Παράδειγμα:

<size>37/42,37/45</size>

Προϊόντα όπου το μέγεθος είναι απαραίτητο και δεν το περιλαμβάνουν (όπως π.χ. υποδήματα, πουκάμισα, κτλ) δεν θα ταξινομούνται.

Weight

Το βάρος του προϊόντος (πραγματικό ή ογκομετρικό), σε γραμμάρια, που χρησιμοποιείται από την πλατφόρμα σας για τον υπολογισμό του κόστους των μεταφορικών. Αν θέλετε να χρησιμοποιήσετε κιλά μπορείτε να το κάνετε προσθέτοντας kg στο τέλος της τιμής.

Παράδειγμα

Για ένα προϊόν με βάρος 3.2kg, η τιμή του πεδίου βάρους θα είναι:

<weight>3200</weight>

ή

<weight>3.2 kg</weight>

InStock

Η κατάσταση του αποθέματος (stock) του προϊόντος.

Y
σημαίνει ότι το προϊόν υπάρχει σε stock, δηλαδή είναι ετοιμοπαράδοτο και υπάρχει στην αποθήκη σας ή στο κατάστημά σας.
N
σημαίνει ότι το προϊόν δεν υπάρχει σε stock.

Όταν δεν υπάρχει πληροφορία από το κατάστημα, το πεδίο αυτό θεωρείται ότι έχει την τιμή N.

Shipping Costs

Αν γνωρίζετε το ακριβές κόστος παράδοσης (π.χ. έχετε σταθερά μεταφορικά 5 ευρώ), μπορείτε να το βάλετε εδώ. Για δωρεάν μεταφορικά, η τιμή του πεδίου πρέπει να είναι 0.

Το κόστος αυτό είναι ΑΝΕΞΑΡΤΗΤΟ του βάρους και της τοποθεσίας αποστολής. Αν τα μεταφορικά σας έχουν προϋποθέσεις, αυτό το πεδίο είναι υποχρεωτικό να είναι κενό.

Αν τα μεταφορικά δεν ισχύουν έστω και για ένα προϊόν, θα απενεργοποιηθούν για όλα τα προϊόντα του XML.

Color

To χρώμα του προϊόντος. Το πεδίο χρώματος λειτουργεί ως χαρακτηριστικό του συγκεκριμένου προϊόντος και δεν μπορεί να περιλαμβάνει διαφορετικές καταχωρίσεις προϊόντων.

Οφείλει να περιέχει το χρώμα του προϊόντος που αποτυπώνεται στην εικόνα που το συνοδεύει.

Εφόσον για κάποιο μοντέλο υπάρχουν περισσότερα του ενός χρώματα, αυτά πρέπει να στέλνονται ως διαφορετικά προϊόντα με ξεχωριστό Unique ID.

Παράδειγμα
<color>Black</color>
<color>μαύρο</color>

Data Feed Validator

Μπορείτε να χρησιμοποιήσετε τον Data Feed Validator για να ελέγξετε το XML Feed σας ως προς τη συμβατότητά του με τις προδιαγραφές του Skroutz.

Mπορείτε να ανεβάσετε το XML σας και ο validator θα επιβεβαιώσει ότι είναι καλά ορισμένο, σύμφωνα με το πρωτόκολλο XML, θα προσπαθήσει να εντοπίσει το στοιχείο του XML που αντιστοιχεί σε κάθε ένα από τα προϊόντα σας και στη συνέχεια θα σαρώσει τα πεδία των προϊόντων για να εξακριβώσει ότι τηρούν τις προδιαγραφές του Skroutz.

Παράδειγμα XML

Το παρακάτω είναι ένα τμήμα ενός ενδεικτικού XML όπως αναγνωρίζεται από το Skroutz

<?xml version="1.0" encoding="UTF-8"?>
<mywebstore>
   <created_at>2010-04-08 12:32</created_at>
   <products>
      <product>
        <id>322233</id>
        <name><![CDATA[MadBiker 600]]></name>
        <link><![CDATA[http://www.mywebstore.gr/product/322233]]></link>
        <image><![CDATA[http://www.mywebstore.gr/product/322233.jpg]]></image>
        <additionalimage><![CDATA[http://www.mywebstore.gr/product/322233/front.jpg]]></additionalimage>
        <category><![CDATA[Αθλητικά > Extreme Sports]]></category>
        <price_with_vat>322.33</price_with_vat>
        <manufacturer><![CDATA[SuperGlasses]]></manufacturer>
        <mpn>ZHD332</mpn>
        <ean>9780471117094</ean>
        <instock>N</instock>
        <availability>Κατόπιν Παραγγελίας</availability>
        <size>38,39</size>
        <weight>360</weight>
        <color>Μαύρο</color>
      </product>
      ...
      ...
      ...
   </products>
</mywebstore>

Μπορείτε επίσης να βρείτε ένα ολοκληρωμένο δείγμα στο http://demo.skroutzstore.gr/feed.xml.

Ενδεικτικό XSD

<?xml version="2.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- required elements -->
  <!-- created at -->
  <xs:element name="created_at" type="xs:dateTime" />

  <!-- unique id -->
  <xs:element name="uid">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="200" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- name -->
  <xs:element name="name">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="300" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- link -->
  <xs:element name="link">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="400" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- image -->
  <xs:element name="image">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="400" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- additional image -->
  <xs:element name="additional_image">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="400" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- price -->
  <xs:element name="price" type="xs:decimal" />

  <!-- category -->
  <xs:element name="category">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="300" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- manufacturer -->
  <xs:element name="manufacturer">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="100" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- manufacturer part number -->
  <xs:element name="mpn">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="100" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- ean -->
  <xs:element name="ean">
    <xs:simpleType>
      <xs:restriction base="xs:integer">
        <xs:totalDigits value="13" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- instock -->
  <xs:element name="instock">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="Y" />
        <xs:enumeration value="N" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- shipping -->
  <xs:element name="shipping" type="xs:decimal" />

  <!-- availability -->
  <xs:element name="availability">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="100" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- size -->
  <xs:element name="size">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="100" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- weight -->
  <xs:element name="weight" type="xs:decimal" />

  <!-- color -->
  <xs:element name="color">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="50" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <!-- basic structure -->
  <xs:element name="storedata">
    <xs:complexType>
      <xs:sequence>
        <!-- created at -->
        <xs:element ref="created_at" minOccurs="0" />

        <!-- products -->
        <xs:element name="products">
          <xs:complexType>
            <xs:sequence>
              <!-- product -->
              <xs:element name="product" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>

                    <!-- required fields -->
                    <xs:element ref="uid"/>
                    <xs:element ref="name"/>
                    <xs:element ref="link"/>
                    <xs:element ref="image"/>
                    <xs:element ref="price"/>
                    <xs:element ref="category"/>
                    <xs:element ref="manufacturer" />
                    <xs:element ref="mpn" />
                    <xs:element ref="availability" />
                    <xs:element ref="instock" />

                    <!-- optional fields -->
                    <xs:element ref="additional_image"  minOccurs="0"/>
                    <xs:element ref="ean"  minOccurs="0"/>
                    <xs:element ref="size"  minOccurs="0"/>
                    <xs:element ref="weight" minOccurs="0"/>
                    <xs:element ref="shipping"  minOccurs="0"/>
                    <xs:element ref="color"  minOccurs="0"/>

                  </xs:all>

                </xs:complexType>
              </xs:element>
              <!-- end product -->
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      <!-- end products -->
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>