ShopFeed (Needs work)

Σημείωση

Κείμενο του 2015, προφανώς δεν ισχύουν κάποια πράγματα, θέλει ενημέρωση.

Το ShopFeed είναι μια μηχανή παραγωγής Feeds για site σύγκρισης τιμών. Αντλεί πληροφορίες από κάθε δυνατό υποσύστημα του Cs-Cart για την παραγωγή με ευελιξία των πληρέστερων feed που μπορούν να εξαχθούν από το κατάστημά σας!

shopFeedblocks.jpg

Στη συνέχεια θα δούμε τις ρυθμίσεις και τις λειτουργίες του ShopFeed αναλυτικά.

Βασικές ρυθμίσεις

Screenshot_0.png

  • Path εξαγωγής. Ο φάκελος στον οποίο θα εξάγονται τα feeds. Είναι σχετικός με τον φάκελο που τρέχει το cs-cart. Αν για παράδειγμα τρέχει στον public_html και βάλουμε την τιμή xml_feeds, τότε τα feeds θα εξάγοντε στο φάκελο public_html/xml_feeds.

  • Password για cron. Το password που θα χρησιμοποιηθεί στην εντολή στο cron job για να εκτελείτε η εξαγωγή αυτόματα στο server. Η εντολή που πρέπει να οριστεί στο cron είναι php admin.php --dispatch=shopfeed.run --cron_password=MYPASS όπου το MYPASS το ορίζουμε εδώ. Καλό είναι να έχουμε ορίσει password ώστε να μην μπορεί κάποιος να το τρέχει χωρίς την άδεια μας.

  • Feed language. Η γλώσσα εξαγωγής των προϊόντων. Σε περίπτωση που το κατάστημα έχει ενεργοποιημένες περισσότερες της μιας γλώσσας μπορείτε να επιλέξετε τη γλώσσα που θα χρησιμοποιηθεί για την εξαγωγή. Συνήθως είναι τα ελληνικά.

  • Default availability. Η εξορισμού διαθεσιμότητα των προϊόντων αν δεν ορίσουμε διαφορετική σε προϊόν ή κατηγορία. Οι διαθέσιμες τιμές (που είναι όπως τις ορίζει το Skroutz.gr) είναι

    • Σε απόθεμα

    • 1 έως 3 ημέρες

    • 4 έως 7 ημέρες

    • 7+ ημέρες

    • Κατόπιν Παραγγελίας

    • Προ-παραγγελία

  • Να εφαρμοστούν τα promotions; Στον υπολογισμό των τιμών μπορεί να γίνει εφαρμογή και των promotion καταλόγου ώστε οι τιμές στο feed να περιλαμβάνουν τυχόν εκπτώσεις που κάνετε στο κατάστημα σας. Αν όμως, δε χρησιμοποιείτε promotions μην το ενεργοποιείτε, είναι θέμα επιδόσεων του server. Ο υπολογισμός των τιμών με promotions απαιτεί επιπλέον υπολογιστική ισχύ.

  • Τα είδη που έχουν απόθεμα να τα εμφανίζει 'Σε απόθεμα' παρακάμπτοντας τις άλλες επιλογές. Ενεργοποιώντας αυτή την επιλογή, τα προϊόντα που έχουν απόθεμα (εννοείτε ότι κάνουμε χρήση της επιλογής του cs-cart για την παρακολούθηση αποθεμάτων) θα εμφανίζονται «Σε απόθεμα» ανεξάρτητα από τις επιλογές για την διαθεσιμότητα που έχουμε κάνει εδώ είτε σε κατηγορίες είτε σε προϊόντα.

  • Τα είδη που έχουν δεν έχουν απόθεμα να τα εξαιρεί από την εξαγωγή. Μπορούμε να ορίσουμε ένα κατώφλι αποθέματος σε κάθε προϊόν κάτω από το οποίο αυτό δε θα συμπεριλαμβάνετε στην εξαγωγή. Με αυτό τον τρόπο αποφεύγουμε για είδη που έχουν χαμηλή διαθεσιμότητα να είναι μη διαθέσιμα όταν τελικά το feed το διαβάσει και το εμφανίσει το site σύγκρισης τιμών. Η ενημέρωση αυτών γίνεται συνήθως κάθε 2 ώρες οπότε μπορεί να είναι αρκετός χρόνος ώστε το προϊόν να έχει ήδη εξαντληθεί. Στο tab ShopFeed στα προϊόντα βρίσκετε το πεδίο «Ελάχιστο απόθεμα για εξαγωγή» όπου ορίζουμε αυτό το κατώφλι. Ενεργοποιώντας αυτή την επιλογή γίνεται ο έλεγχος του αποθέματος σε σχέση με την τιμή του πεδίου «Ελάχιστο απόθεμα για εξαγωγή».

  • Ο κατασκευαστής απο το feature. Ο κατασκευαστής είναι υποχρεωτική πληροφορία για τα site σύγκρισης τιμών. Για την καταχώρηση του έχουμε 2 επιλογές. Είτε στο πεδίο Κατασκευαστής στην καρτέλα ShopFeed στο προϊόν είτε σε feature του cs-cart. Εαν δε θέλουμε να δείχνουμε τον κατασκευαστή στο κατάστημα μας μπορούμε να καταχωρήσουμε τους κατασκευαστές στα προϊόντα στο πεδίο του ShopFeed. Εαν όμως θέλουμε να τους δείχνουμε στο κατάστημα μας, μπορεί ήδη να τους έχουμε καταχωρήσει στο feature μπορούμε εδώ να επιλέξουμε το feature το οποίο έχει τον κατασκευαστή και έτσι να μη χρειάζεται να γίνει διπλή καταχώρηση.

  • Τα χρώματα είναι στα features (διαφορετικά τα περιμένει στα options). Κάποια site σύγκρισης τιμών, ειδικότερα για ένδυση, ζητούν την παροχή του χρώματος. Το χρώμα μπορεί να είναι είτε σε feature που απλά ενημερώνει το χρήστη για το χρώμα του προϊόντος, είτε σε option δίνοντας τη δυνατότητα στον χρήστη να επιλέξει το χρώμα που θέλει να αγοράσει. Ενεργοποιώντας την επιλογή αυτή το ShopFeed δεν κάνει κάτι για το χρώμα γιατί περιμένει ότι τα χρώματα είναι σε κάποιο από τα features που θα ορίσουμε να εξάγονται. Αν δεν το ενεργοποιήσουμε τότε θα χρησιμοποιήσει το option που θα ορίσουμε ότι είναι χρώμα.

  • MPN from feature. Το πεδίο MPN (κωδικός προϊόντος του κατασκευαστή) είναι υποχρεωτικό για τα site σύγκρισης τιμών. Μπορούμε είτε να καταχωρήσουμε τον MPN στην καρτέλα ShopFeed στο προϊόν, είτε μπορεί να τον έχουμε ήδη καταχωρημένο σε ένα feature του cs-cart. Εδώ μπορούμε να επιλέξουμε το feature αυτό ώστε το ShopFeed να τον διαβάζει από εκεί ώστε να αποφευχθεί η διπλή καταχώρηση.

Χρώμα εμφάνισης κάθε διαθεσιμότητας

Στην καρτέλα Colors στις Βασικές ρυθμίσεις του ShopFeed μπορούμε να ορίσουμε το χρώμα με το οποίο θα εμφανίζεται το λεκτικό της διαθεσιμότητας στο κατάστημα.

Screenshot_1.png

Στην τιμή βάζουμε τη δεκαεξαδική τιμή του χρώματος χωρίς το # μπροστά.

Ρυθμίσεις των options

Μπορούμε να ρυθμίσουμε ποιο option είναι το χρώμα και ποιο είναι το μέγεθος. Στη σελίδα επεξεργασίας του option, υπάρχει το πεδίο Είναι για το shop feed με επιλογές Κανένα, Χρώμα, Μέγεθος. Το πρώτο σημαίνει ότι το shopFeed δεν ασχολείστε μαζί του. Το Χρώμα σημαίνει ότι είναι χρώμα και θα εξαχθεί στο feed στο tag colors. Το τρίο ότι είναι τα διαθέσιμα μεγέθη και τα ενεργά του variants θα εξαχθούν στο tag size.

Screenshot_2.png

Επειδή δε χρησιμοποιούν όλοι μόνο global options μπορεί τα option που μας ενδιαφέρουν είναι ορισμένα σε κάθε προϊόν. Πράγμα που σημαίνει ότι αυτή η ρύθμιση μπορεί να χρειαστεί να γίνει σε κάθε προϊόν χωριστά (όσα και να είναι αυτά). Για τη διευκόλυνση αυτής της εργασίας στο μενού Προϊόντα -> Shop Feed και πάνω δεξιά στο υπάρχει η επιλογή Διαχείριση feeds στη σελίδα Διαχείριση Feeds στο επιλέγουμε Ενημέρωση Options. Αυτό είναι το εργαλείο για τη μαζική ενημέρωση των options με την επιλογή Είναι για το shop feed.

Screenshot_3.png

Όπου στο πεδίο Επιλογές γράφουμε το όνομα του Option, συνήθως δίνουμε το ίδιο όνομα πχ Μέγεθος, και στο δεύτερο διαλέξουμε την επιλογή που θέλουμε να γίνει σε όσα option έχουν το όνομα Μέγεθος. Το εργαλείο θα ενημερώσει όλα τα options (global και προϊόντων) που έχουν το όνομα Μέγεθος με την επιλογή Είναι μέγεθος.

Ρυθμίσεις των features

Στα feature υπάρχει το πεδίο Κωδικός χαρακτηριστικού στο πεδίο αυτό μπορούμε να βάλουμε το tag στο οποίο θέλουμε να εξάγεται αυτό το χαρακτηριστικό.

Screenshot_5.png

Για παράδειγμα, πρόσφατα site σύγκρισης τιμών ζήτησε στα ρούχα να εξάγεται και το φύλο το οποίο αφορά το ρούχο. Για παράδειγμα, αν είναι ανδρικό, γυναικείο ή unisex. Το shopFeed δε χρειάζεται καμιά αλλαγή για να το κάνει. Δημιουργούμε ένα feature που το ονομάζουμε Φύλλο, στο πεδίο Κωδικός χαρακτηριστικού βάζουμε το tag που μας ζήτησαν, sex. Στα variants ορίζουμε τις πιθανές τιμές, ανδρικό, γυναικείο, παιδικό, unisex. Στα προϊόντα που εφαρμόζεται ορίζουμε το φύλλο και είμαστε σχεδόν έτοιμοι. Όπως θα δούμε στη συνέχεια ορίζουμε ότι στο feed του συγκεκριμένου site θέλουμε να εξάγεται και αυτό το feature και είμαστε έτοιμοι. Καμιά αλλαγή στο ίδιο το ShopFeed. Με τον ίδιο τρόπο μπορούμε να ορίσουμε όσα features θέλουμε να εξάγονται για τα προϊόντα μας.

Διαχείριση των Feeds

To ShopFeed μπορεί να εξάγει απεριόριστο αριθμό feeds. Τα περισσότερα site σύγκρισης τιμών χρησιμοποιούν τη μορφή των αρχείων του Skroutz, αλλά μπορεί να θέλουμε σε κάποιο να εξάγεται το Φύλλο για τα ρούχα ή να εξάγονται διαφορετικά προϊόντα στο καθένα. Έχουμε τη δυνατότητα να ορίσουμε και να παραμετροποιήσουμε όσα feeds χρειαζόμαστε.

Στο μενού Προϊόντα -> Shop Feed και πάνω δεξιά στο υπάρχει η επιλογή Διαχείριση feeds στη σελίδα Διαχείριση Feeds.

Screenshot_6.png

Εδώ βλέπουμε όλα τα feeds που έχουν οριστεί. Τα δεδομένα που ορίζουμε σε ένα feed είναι:

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

  • Τίτλος. Τίτλος που εμφανίζεται σε διάφορα σημεία της διαχείρισης του καταστήματος. Καλό είναι να είναι κάτι περιγραφικό για τον σκοπό του feed. Για παράδειγμα, Αρχείο για Skroutz.

  • Exporter. Exporter είναι η «μηχανή» που θα γράψει το feed στο αρχείο.

  • Όνομα αρχείου. Είναι το όνομα του αρχείου που θα γραφεί το feed. ΔΕΝ προσθέτουμε επέκταση στο όνομα. Την επέκταση θα την προσθέσει o exporter. Για παράδειγμα, αν καταχωρήσουμε skroutz1 ο exprter αν παράγει xml, θα προσθέσει την επέκταση .xml και θα είναι skroutz1.xml. Προσοχή! χρησιμοποιούμε μόνο λατινικούς χαρακτήρες , αριθμούς και _.

  • Εξαγωγή των features. Όπως αναφέραμε στις ρυθμίσεις των features μπορούμε να εξάγουμε όποια και όσα features θέλουμε. Εδώ μπορούμε να ορίσουμε ποια από αυτά θα εξάγωντε σε κάθε feed. Για παράδειγμα, το Φύλλο για τα ρούχα τον θέλει μόνο το site A και όχι το siteB, τότε στο feed για το Α θα το επιλέξουμε ενώ στο feed για το Β, όχι.

Screenshot_7.png

Η δημιουργία διαφορετικών feed για κάθε site μας δίνει τη δυνατότητα να ορίζουμε ποιες κατηγορίες ή και προϊόντα θα εξαιρούντε σε κάθε ένα από αυτά ξεχωριστά.

Ρυθμίσεις κατηγοριών

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

Στην επόμενη εικόνα βλέπουμε την καρτέλα ShopFeed στη σελίδα επεξεργασίας κατηγορίας.

Screenshot_8.png

Στο πεδίο Να εξαιρείτε από την εξαγωγή εμφανίζονται όλα τα feed που έχουμε ορίσει. Έτσι μπορούμε να επιλέξουμε σε ποιο από αυτά θα εξαιρείτε η κατηγορία (μπορεί να μην εξαιρείται και από καμία). Στο πεδίο Επιλογή αποθέματος κατηγορίας επιλέξουμε την εξορισμού διαθεσιμότητα των προϊόντων της κατηγορίας. Έτσι για παράδειγμα αν έχουμε μια κατηγορία προϊόντων που γνωρίζουμε ότι από τον προμηθευτή μας τα έχουμε σε 1-3 ημέρες, τότε ορίζουμε στην κατηγορία διαθεσιμότητα 1-3 ημέρες και αυτή ισχύει για όλα τα προϊόντα της κατηγορίας και των υποκατηγοριών της. Ας δούμε σχηματικά τι συμβαίνει για να γίνει σαφές. Έστω ο κατάλογος αποτελείτε από τις κατηγορίες της επόμενης εικόνας. Αν στην κατηγορία 1 ορίσουμε ότι εξαιρείτε από την εξαγωγή τότε θα εξαιρεθούν και οι υποκατηγορίες της.

categories-2.jpg

Στην περίπτωση της εξορισμού διαθεσιμότητας τα πράγματα είναι λίγο πιο περίπλοκα. Αν στην κατηγορία 1 ορίσουμε διαθεσιμότητα 1-3 ημέρες, τότε αυτό ισχύει και για όλες τις υποκατηγορίες της.

categories-3.jpg

Μπορούμε όμως για την κατηγορία 1.1 και τις υποκατηγορίες της να ορίσουμε διαφορετική διαθεσιμότητα. Αν στην Κατηγορία 1.1. ορίσουμε διαθεσιμότητα Κατόπιν Παραγγελίας τότε τα προϊόντα της 1.1 και της υποκατηγορίας της θα έχουν διαθεσιμότητα Κατόπιν Παραγγελίας. Η ρύθμιση αυτή νικάει τη ρύθμιση της μαμάς κατηγορίας.

categories-4.jpg

Βλέπουμε ότι το ShopFeed με λίγο κόπο μας δίνει πολλές δυνατότητες.

Ρυθμίσεις προϊόντος

Στα προϊόντα στην καρτέλα ShopFeed όπως βλέπουμε στην επόμενη εικόνα υπάρχουν αρκετά πεδία.

Screenshot_9.png

  • ΕΑΝ. Είναι το ΕΑΝ ή Barcode του προϊόντος, πληροφορία προεραιτική για τα περισσότερα feed.

  • Κωδικός MPN. Μοναδικός κωδικός κατασκευαστή του προϊόντος. Πεδίο υποχρεωτικό για τα περισσότερα feed. Μπορεί να καταχωρηθεί εδώ ή σε feature όπως αναφέρθηκε στις Βασικές ρυθμίσεις και στις ρυθμίσεις των Feature.

  • Ελάχιστο απόθεμα για εξαγωγή. Είναι το ελάχιστο απόθεμα πάνω από το οποίο πρέπει να έχει το προϊόν για συμπεριληφθεί στην εξαγωγή. Λαμβάνεται υπόψιν μόνο όταν έχει ενεργοποιηθεί από τις Βασικές ρυθμίσεις η επιλογή Τα είδη που έχουν δεν έχουν απόθεμα να τα εξαιρεί από την εξαγωγή.

  • Να εξαιρείτε από την εξαγωγή. Εδώ μπορούμε να επιλέξουμε για το συγκεκριμένο προϊόν αν θα εξαιρείτε από την εξαγωγή σε κάποιο ή κάποια feed.

  • Επιλογή αποθέματος προϊόντος. Εδώ αν αφήσουμε την επιλογή Το εξορισμού τότε στο προϊόν θα εμφανίζεται η διαθεσιμότητα που έχουμε ορίσει για την κατηγορία που ανήκει ή αν δεν έχει οριστεί στις κατηγορίες η διαθεσιμότητα που έχουμε επιλέξει στις Βασικές Ρυθμίσεις.

  • Κατασκευαστής. Ο κατασκευαστής του προϊόντος. Πληροφορία υποχρεωτική στα περισσότερα site. Στις ρυθμίσεις των features είδαμε πως μπορεί να χρησιμοποιηθεί feature αντί να το καταχωρούμε εδώ.

Εκτέλεση του ShopFeed

Τα site σύγκρισης τιμών διαβάζουν περιοδικά σε γνωστά χρονικά διαστήματα τα feed των καταστημάτων. Αντί να γίνεται η παραγωγή των feed τη στιγμή που μας διαβάζει το site προκαλώντας ανεπιθύμητο φόρτο και καθυστερήσεις στο server μας, το ShopFeed το εκτελούμε με τη χρήση cron jobs. Το πλεονέκτημα είναι ότι το ShopFeed μαζεύει τα δεδομένα μια φορά και στη συνέχεια γράφει τα αρχεία για κάθε feed. Η εργασία που προκαλεί το φόρτο στο server είναι η συγκέντρωση των δεδομένων, την οποία το shopFeed κάνει μια φορά ανεξάρτητα από τα πόσα feed θα παραχθούν. Όλες οι διαδικασίες είναι βελτιστοποιημένες για τον ιδανικό συνδυασμό ταχύτητας και φόρτου στο server. Έτσι για να εκτελείτε κάθε 2 ώρες η παραγωγή των feed ο διαχειριστής του server πρέπει να ορίσει ένα cron job που να εκτελεί την επόμενη εντολή.

php admin.php --dispatch=shopfeed.run --cron_password=MY_PASS

όπου MY_PASS είναι το password που έχουμε ορίσει στις βασικές ρυθμίσεις.

ShopFeed log

Κάθε φορά που εκτελείτε η μηχανή και παράγει feeds κάνει μια εγγραφή στο log ώστε να μπορούμε οποιαδήποτε στιγμή να δούμε αν έτρεξε και τι feeds παρήγαγε. Από το μενού Προϊόντα -> ShopFeed οδηγούμαστε στο ShopFeed log. Μπορούμε επίσης παλιότερες εγγραφές να τις διαγράψουμε χωρίς σκέψη μιας και είναι μόνο για δική μας πληροφόρηση. Στην επόμενη εικόνα βλέπουμε ένα πραγματικό log.

Screenshot_10.png

FrontEnd

Τέλος, περιλαμβάνετε hook που δείχνει στα προϊόντα τη διαθεσιμότητα που έχουμε ορίσει να εξάγεται τελικά στα feed ώστε όπως πρέπει να είναι ίδια αυτή που δείχνουμε στο κατάστημα μας με αυτή που δίνουμε στα site.

Screenshot_11.png

Εκτός από τη σελίδα του προϊόντος εμφανίζεται και στα προϊόντα κατηγορίας, φυσικά στα layout που εμφανίζουν τη διαθεσιμότητα.

Screenshot_12.png

Υποστηριζόμενα format feed

To do

Μεταφράσεις

To do

  • shopFeed_avail_opt0: Το εξορισμού

  • shopFeed_avail_opt1: Σε απόθεμα

  • shopFeed_avail_opt2: 1 έως 3 ημέρες

  • shopFeed_avail_opt3: 4 έως 7 ημέρες

  • shopFeed_avail_opt4: 7+ ημέρες

  • shopFeed_avail_opt5: Κατόπιν Παραγγελίας

  • shopFeed_avail_opt6: Προ-παραγγελία