Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α

Σχετικά έγγραφα
Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Τάξη: Ά λυκείου. Ονοματεπώνυμο: Μαρούδα Κρινιώ

GoDigital.Store E-Commerce Platform

ΠΡΟΔΙΑΓΡΑΦΕΣ ΕΝΟΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ

Εγχειρίδιο Χρήσης. 1bank Internet Banking για Εταιρικούς Συνδρομητές

ΑΡΧΕς ΛΕΙΤΟΥΡΓΙΑς CMS (Content Management System) ΚΑΙ ΕΦΑΡΜΟΓΗ ΤΟΥς ςε ΜΙΚΡΟΜΕςΑΙΕς ΕΠΙΧΕΙΡΗςΕΙς

Internet Business Hellas

(Δημιουργία ηλεκτρονικού καταστήματος με την χρήση του Joomla CMS)

Δυναμικές Ιστοσελίδες στο Πανελλήνιο Σχολικό Δίκτυο

ΤΙΜΗ ΠΑΚΕΤΟΥ ΚΑΤΟΠΙΝ ΠΑΡΑΓΓΕΛΙΑΣ ΕΝΔΕΙΚΤΙΚΕΣ ΔΥΝΑΤΟΤΗΤΕΣ BASIC E-SHOP. Απεριόριστος Αριθμός Προϊόντων με κείμενο, φωτογραφίες, βίντεο κλπ

Μια καλή επιλογή θα ήταν (χωρίζοντας τις λέξεις με παύλα -) ή

Εργασία «Διαχείριση Δικτύων» Ιούνιος 2014, Θεσ/νίκη

ΠΡΟΪΟΝΤΑ ΔΙΑΔΙΚΑΣΙΑ ΑΓΟΡΑΣ ΠΡΟΪΟΝΤΩΝ

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

ΑΝΑΚΟΙΝΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ ΑΠΕΥΘΕΙΑΣ ΑΝΑΘΕΣΗΣ. Αριθμ. Πρωτ.: /2017 Ο ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

6 Εισαγωγή στο Wordpress 3.x

Ηλεκτρονικά Καταστήματα E Shops

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Don t hire us if you want average. We only do exceptional.

Περιεχόμενα. Τεχνικό εγχειρίδιο χρήσης IBNEWSLETTER

Παραδοτέο Π5.3: Έντυπο και ψηφιακό υλικό (Web site) προβολής των δράσεων έργου

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Αρχιτεκτονική Λογισμικού

Σεμινάριο Wordpress CMS (Δημιουργία Δυναμικών Ιστοσελίδων)

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

MANUAL PRESTASHOP 1.6

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΜΕ ΘΕΜΑ:

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Τεχνική υποστήριξη λογισμικού HP

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΣΤΕΡΕΑΣ ΕΛΛΑΔΑΣ- ΤΜΗΜΑ ΠΕΡΙΦΕΡΕΙΑΚΗΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΠΤΥΞΗΣ, ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΙΣΗ ΑΝΘΡΩΠΙΝΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΠΟΡΩΝ- ΧΡΙΣΤΟΣ ΑΠ.

Διαφέρουμε από τον ανταγωνισμό Τη στιγμή που οι περισσότεροι οραματίζονται το μέλλον εμείς το δημιουργούμε.

Για ποιον σκοπό χρησιμοποιούνται τα cookies σε αυτό τον ιστοχώρο; Για ποιούς σκοπούς ΔΕΝ χρησιμοποιούνται τα cookies σε αυτό τον ιστοχώρο;

Διαφορές single-processor αρχιτεκτονικών και SoCs

Ποια cookies χρησιμοποιούμε στον ιστότοπό μας;

Μονάδα Διασφάλισης Ποιότητας. ΜΟΔΙΠ Πανεπιστημίου Δυτικής Μακεδονίας. Κωδικός Πράξης ΟΠΣ: Επιχειρησιακό Πρόγραμμα:

ΜΟ.ΔΙ.Π.Α.Β. Κεντρική Υποδομή Επιχειρησιακής Ευφυΐας για Βιβλιοθήκες και Υπηρεσίες Πληροφόρησης

XAMPP Apache MySQL PHP javascript xampp

Περιεχόμενα. Visio / White paper 1

Ο SKROUTZ ΕΠΙΧΕΙΡΕΙ ΗΛΕΚΤΡΟΝΙΚΑ - ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ

Έκδοσης 2005 Π. Κεντερλής

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

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

Χαρακτηριστικά ιστοσελίδας

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ web εφαρµογής - ηλεκτρονικού κατατήµατος για έξυπνα κινητά

ΟΝΟΜΑ : ΚΩΝΣΤΑΝΤΙΝΟΣ ΕΠΩΝΥΜΟ : ΚΟΚΟΛΟΓΟΣ Α.Μ. : Ε11060 ΕΞΑΜΗΝΟ : ΕΠΙ ΠΤΥΧΙΟ ΤΜΗΜΑ : ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΑΘΗΜΑ : ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΕΦΑΡΜΟΓΗ

Ενσωματωμένα controls τα οποία προσαρμόζονται και χρησιμοποιούνται σε οποιαδήποτε ιστοσελίδα επιλέγει ο φορέας.

Πληροφορική 2. Τεχνολογία Λογισμικού

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ [e-shop] 1. Επιλογή προτύπου 2. Δοκιμή σε πραγματικό χρόνο 3. Αγορά

Σύστημα διαχείρισης περιεχομένου (Content Management System)

Χαρακτηριστικά ιστοσελίδας

Εγχειρίδιο Διαχειριστή. (Υπηρεσία Αναζήτησης Συνεπιβατών)

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

ΕΓΧΕΙΡΙΔΙΟ ΟΡΘΩΝ ΠΡΑΚΤΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΜΕΣΟΛΟΓΓΙΟΥ

Διαχείριση Πολιτισμικών Δεδομένων

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Ηλεκτρονικό Εμπόριο

ΟΔΗΓΟΣ ΧΡΗΣΗΣ ΥΠΗΡΕΣΙΑΣ [ΥΠΗΡΕΣΊΑ 4 - ΑΝΆΠΤΥΞΗ

ΟΙΚΟΝΟΜΙΚΗ ΠΡΟΣΦΟΡΑ ΣΧΕ ΙΑΣΗΣ ΚΑΙ ΚΑΤΑΣΚΕΥΗΣ ΙΑ ΙΚΤΥΑΚΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΎ ΣΥΣΤΗΜΑΤΟΣ. Τρίτη, 7 Φεβρουαρίου 2012

Χαρακτηριστικά ιστοσελίδας

Ανάπτυξη ηλεκτρονικών μαθημάτων στην πλατφόρμα Open eclass. Γνωριμία με την Open eclass

Ηλεκτρονικό εμπόριο. HE5 Ηλεκτρονικό κατάστημα Σχεδιασμός και λειτουργίες

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Βασικές Έννοιες Web Εφαρμογών

φιλοξενία & διαχείριση ιστοσελίδων

Τεχνολογίες Ανάπτυξης Ηλεκτρονικού Καταστήματος Μικρομεσαίας Επιχείρησης. Μικρομεσαίες Επιχειρήσεις και Καινοτομία

Αρχίζοντας. Το Joomla τρέχει: Στο Joomla μπορούμε να προσθέσουμε επιπλέον λειτουργικότητα, να την επεκτείνουμε δηλαδή (extensions) PHP MySql

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Οδηγός Ηλεκτρονικού Επιχειρείν


BUSINESS GROWTH Web Facility Management (WFM)

± ² ² ² Đ ā ĉ Ĕ Ė ĉ ę Đ Ē ď Ē ć ă ĉ Ĕ ö ìñéòöëöù ėēę îđċďėĕēđďďēġ ìó öøðöû 134 1)"3."$: NBOBHFNFOU,"* & i ² ³ ] ΔΕΚΕΜΒΡΙΟΣ 2014

Αξιολόγηση Πλατφόρµων Ηλεκτρονικού Καταστήµατος Ανοικτού Κώδικα και Μελέτη Περίπτωσης Ανάπτυξης Εικονικού Ηλεκτρονικού Καταστήµατος

ΤΙΜΟΚΑΤΑΛΟΓΟΣ ΣΧΕΔΙΑΣΜΟΥ E-SHOP ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ

ELECTRONIC DATA PROCESSING SOURCE SA

Η λ ε κ τ ρ ο ν ι κ ό κ α τ ά σ τ η μ α. Γενικά χαρακτηριστικά της εφαρμογής για κατασκευή eshop

website guide B2B e-shop

SGA Διαχείριση Ηλεκτρονικού Πρωτόκολλου

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

Εγχειρίδιο Παρόχου. (Υπηρεσία Διάθεσης και Ανταλλαγής Αγαθών)

Περιεχόμενα. Δημιουργία σύνδεσης ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ Γνωριμία με μια ιστοσελίδα:... 38

Κατασκευή Ιστολόγιου

Σύστημα Διαχείρισης, Ελέγχου και Παρακολούθησης Ασθενοφόρων και Περιστατικών

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Δρ. Δημήτριος Α. Κουτσομητρόπουλος. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Α.Τ.Ε.Ι. Πάτρας

ΔΗΜΙΟΥΡΓΙΑ ΚΑΙ ΠΑΡΑΓΩΓΗ ΔΙΑΦΗΜΙΣΗΣ

Μέρος Ι: Εγκατάσταση και ιαμόρφωση των MySQL, Apache και PHP

ΤΙΜΟΚΑΤΑΛΟΓΟΣ. Κωνσταντινίδη , Ρόδος Τηλ: , info@rodosdata.gr url:

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

Vodafone Business Connect

Transcript:

Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α ΑΝΑΠΤΥΞΗ ΕΠΕΚΤΑΣΗΣ ΓΙΑ ΟΠΤΙΚΟΠΟΙΗΣΗ ΔΕΔΟΜΕΝΩΝ ΧΡΗΣΤΩΝ ΤΗΣ ΠΛΑΤΦΟΡΜΑΣ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΑΤΑΣΤΗΜΑΤΟΣ MAGENTO ΑΝΤΙΓΟΝΗ ΚΡΗΤΙΩΤΗ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΒΛΑΧΑΒΑΣ ΙΩΑΝΝΗΣ ΘΕΣΣΑΛΟΝΙΚΗ 2014

Π Ε Ρ Ι Λ Η Ψ Η Ένα αυξανόμενο πλήθος καταστημάτων παρέχει την δυνατότητα αγοράς προϊόντων μέσω ηλεκτρονικού εμπορίου, πολλαπλασιάζοντας τις απαιτήσεις των καταναλωτών. Αποτέλεσμα της ραγδαίας αυτής αλλαγής, στον τομέα των ηλεκτρονικών καταστημάτων, είναι η παροχή περισσότερων υπηρεσιών που διευθύνονται από τους διαχειριστές. Με την βελτίωση της σελίδας των διαχειριστών παρέχεται πλέον πληθώρα δυνατοτήτων για αποδοτικότερες αγορές. Αντιλαμβανόμενοι αυτή την ανάγκη στα πλαίσια της πτυχιακής αυτής γίνεται ανάπτυξη επέκτασης βασισμένη στην πλατφόρμα δημιουργίας ηλεκτρονικών καταστημάτων Magento. Η επέκταση αυτή αποσκοπεί κυρίως στην γραφική αναπαράσταση των δεδομένων των πελατών ενός καταστήματος για να μπορεί ο διαχειριστής να έχει μια ολοκληρωμένη άποψη των αγορών των πελατών του. Η λειτουργία της επέκτασης είναι βασισμένη στη γλώσσα προγραμματισμού PHP και ακολουθεί το μοντέλο ΜVC(MODEL VIEW CONTROLLER) στο οποίο στηρίζεται η πλατφόρμα του ηλεκτρονικού εμπορίου Magento. 5

A B S T R A C T In recent years, there has been an upward trend for shops to provide their products using electronic commerce. This modern and highly used sales method has initiated a new type of customers whose demands are constantly growing. The appearance of this transition of sales method in the electronic market industry, has provoked the need of induction of more services and tools that should provide a large variety of options to achieve more efficient sales. Having in mind this need, we present this dissertation in which we demonstrate the development of a plugin which is based in the platform of the electronic shop Magento. The purpose of this plugin is the visual representation customer data so that the system administrator can have a high level view of the shop's sales. The plugin is developed using the programming language PHP and it is based on the MVC(Model View Controller) design pattern on which the Magento Platrform is based. 7

Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Η πραγματοποίηση της παρούσας πτυχιακής εργασίας δεν θα ήταν εφικτή χωρίς την βοήθεια κάποιων ανθρώπων που με τις πολύτιµες συμβουλές τους και τη στήριξή τους, κατάφερα να ολοκληρώσω αυτήν την πτυχιακή εργασία. Αρχικά νιώθω την ανάγκη να ευχαριστήσω τους γονείς µου και τον αδερφό μου που όλα αυτά τα χρόνια βρίσκονται στο πλάι μου και μου συμπαραστέκονται σε κάθε στάδιο της ζωής μου. Πάντοτε δείχνουν εμπιστοσύνη σε εμένα και στις επιλογές μου και ό,τι έχω καταφέρει μέχρι σήμερα το οφείλω στους γονείς μου, που με την υποστήριξή τους κατάφερα να ολοκληρώσω τις σπουδές μου με επιτυχία και να διαμορφώσω την προσωπικότητά μου. Θέλω να ευχαριστήσω θερμά τον καθηγητή κ. Βλαχάβα Ιωάννη για την επιστημονική του αρωγή και για την ευκαιρία που µου έδωσε να αναλάβω αυτό το θέµα της πτυχιακής εργασίας και να το φέρω εις πέρας. Ένα μεγάλο ευχαριστώ δεν είναι αρκετό για την σημαντική βοήθεια του κ. Φαχαντίδη Ανέστη που υπήρξε υπερπολύτιµη στην ολοκλήρωση της παρούσας πτυχιακής εργασίας. Οι συμβουλές του στον κώδικα, η ενθάρρυνση και η υποστήριξη που µου προσέφερε καθ όλη τη διάρκεια της συνεργασίας μας, ήταν πολύ χρήσιµες και πολύτιµες για την επιτυχή ολοκλήρωση της πτυχιακής εργασίας µου. Τέλος, θα ήθελα να εκφράσω την ειλικρινή ευγνωμοσύνη μου σε όλους τους καθηγητές του τμήματος που με βοήθησαν καθ' όλη την διάρκεια της φοίτησης μου και μου παρείχαν όλες εκείνες τις γνώσεις και τα εφόδια για να φέρω αυτή την εργασία εις πέρας. 3 Ιουλίου 2014 Αντιγόνη Κρητιώτη 9

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΛΗΨΗ... 5 ABSTRACT...7 ΕΥΧΑΡΙΣΤΙΕΣ... 9 ΠΕΡΙΕΧΟΜΕΝΑ... 11 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ... 14 1.1 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ΤΗΣ ΕΡΓΑΣΙΑΣ... 16 1.2 ΔΟΜΗ ΕΡΓΑΣΙΑΣ... 16 ΚΕΦΑΛΑΙΟ 2: ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΚΑΙ ΛΟΓΙΣΜΙΚΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΑΤΑΣΤΗΜΑΤΩΝ... 17 2.1 ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ... 19 2.1.1 ΓΕΝΙΚΑ... 19 2.1.2 ΑΣΦΑΛΕΙΑ ΣΥΝΑΛΛΑΓΩΝ... 20 2.1.3 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΑΓΟΡΩΝ...21 2.2 ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ (CMS)... 22 2.2.1 ΓΕΝΙΚΑ... 22 2.2.2 EΙΔΗ ΣΥΣΤΗΜΑΤΩΝ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΘ (CMS)... 22 2.3 MAGENTO... 23 2.3.1 ΓΝΩΡΙΜΙΑ ΜΕ ΤΟ ΜΑGΕΝΤΟ... 24 2.3.2 ΤΟ ΜΟΝΤΕΛΟ MVC... 32 2.3.3 ΔΟΜΗ ΦΑΚΕΛΩΝ... 35 2.3.4 EΠΕΚΤΑΣΕΙΣ... 36 2.3.5 WIDGETS... 37 2.3.6 ΤΕΧΝΙΚΗ ΥΠΟΣΤΗΡΙΞΗ... 38 ΚΕΦΑΛΑΙΟ 3: MΕΘΟΔΟΛΟΓΙΑ ΥΛΟΠΟΙΗΣΗΣ... 39 3.1 ΔΟΜΗ-ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΠΕΚΤΑΣΕΩΝ MAGENTO... 41 3.2 ΜΕΘΟΔΟΣ ΑΝΑΠΤΥΞΗΣ ΕΠΕΚΤΑΣΗΣ MAGENTO... 43 3.3 ΕΡΓΑΛΕΙΑ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΚΑΙ ΓΡΑΦΗΜΑΤΩΝ ΣΕ PHP... 48 3.4 ΣΥΝΔΕΣΗ ΜΕ ΤΗΝ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ΤΟΥ MAGENTO... 52 11

ΚΕΦΑΛΑΙΟ 4: ΤΟ ΥΠΟΣΥΣΤΗΜΑ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΔΕΔΟΜΕΝΩΝ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΕΥΦΥΪΑΣ... 54 4.1 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ ΥΠΟΣΥΣΤΗΜΑΤΟΣ... 55 4.2 ΕΓΚΑΤΑΣΤΑΣΗ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΕΠΕΚΤΑΣΗΣ... 58 4.3 ΕΝΔΕΙΚΤΙΚΗ ΧΡΗΣΗ ΣΕ ΠΡΑΓΜΑΤΙΚΑ ΔΕΔΟΜΕΝΑ... 62 ΚΕΦΑΛΑΙΟ 5: ΕΠΙΛΟΓΟΣ... 63 5.1 ΣΥΜΠΕΡΑΣΜΑΤΑ... 64 5.2 ΜΕΛΛΟΝΤΙΚΕΣ ΠΡΟΟΠΤΙΚΕΣ... 65 ΠΑΡΑΡΤΗΜΑ I: ΑΝΑΦΟΡΕΣ... 66 ΠΑΡΑΡΤΗΜΑ II: ΑΚΡΩΝΥΜΑ... 69 ΠΑΡΑΡΤΗΜΑ III: ΓΛΩΣΣΑΡΙΟ... 72 12

Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η 14

ΕΙΣΑΓΩΓΗ Το ηλεκτρονικό εμπόριο παρουσιάζει σημαντική ανάπτυξη στις μέρες μας και καλείται να εξυπηρετήσει τις ανάγκες πολλών πελατών. Για την επίτευξη του στόχου αυτού, ένα αυξανόμενο πλήθος ηλεκτρονικών καταστημάτων παρέχει την δυνατότητα αγοράς προϊόντων μέσω ηλεκτρονικού εμπορίου. Αποτέλεσμα της εξέλιξης του τομέα είναι η παροχή περισσότερων υπηρεσιών, τις οποίες καλούνται να διαχειριστούν πλήρως οι υπεύθυνοι καταστημάτων. Επομένως καθίσταται αναγκαία η υποστήριξη των διαχειριστών με νέες λειτουργίες προκειμένου να παρέχονται δυνατότητες που θα καλύπτουν στο μέγιστο τις απαιτήσεις των πελατών για αποδοτικότερες αγορές. Στα πλαίσια της παρούσας εργασίας αναπτύσσεται μια επέκταση βασισμένη στην πλατφόρμα ηλεκτρονικών καταστημάτων Magento. Σκοπός της λειτουργίας αυτής είναι η οπτικοποίηση των δεδομένων των πελατών για να μπορεί ο διαχειριστής της σελίδας να έχει μια καλύτερη άποψη των αγορών και της καταναλωτικής συμπεριφοράς των πελατών του. Αυτό επιτυγχάνεται με τη γραφική αναπαράσταση των δεδομένων των πελατών που εξάγονται από την βάση του Magento. Χρησιμοποιείται η γλώσσα προγραμματισμού PHP σε συνδυασμό με XML και ακολουθείται το μοντέλο ΜVC(MODEL VIEW CONTROLLER) στο οποίο στηρίζεται η πλατφόρμα του ηλεκτρονικού εμπορίου Magento. H πλατφόρμα ηλεκτρονικού καταστήματος Magento αποτελεί λογισμικό ανοικτού κώδικα προσφέροντας τη δυνατότητα σε πλήθος προγραμματιστών να τροποποιήσει τον πηγαίο κώδικα. Έτσι προσθέτονται συνεχώς νέα χαρακτηριστικά και λειτουργίες επεκτείνοντας τις δυνατότητες της πλατφόρμας. Οι μεγαλύτερες εταιρείες επιλέγουν το Magento για τη δημιουργία των ηλεκτρονικών καταστημάτων τους γιατί είναι ένα ισχυρό εργαλείο, κομψό στο σχεδιασμό του, που καλύπτει όλες τις ανάγκες τους άμεσα. Επιπρόσθετα τους δίνεται η δυνατότητα ελέγχου πολλών ηλεκτρονικών καταστημάτων μέσα από το ίδιο περιβάλλον διαχείρισης. Η ανάλυση συμπεριφοράς των πελατών που βασίζεται σε πληροφορίες, όπως για παράδειγμα στο ιστορικό των αγορών και στις προτιμήσεις τους σε προϊόντα βοηθούν το διαχειριστή να σχεδιάσει τις μελλοντικές προωθητικές του ενέργειες. Απώτερος στόχος είναι να βελτιστοποιήσει τις συνθήκες αγορών επιφέροντας αύξηση των κερδών της επιχείρησης μέσω του ηλεκτρονικού καταστήματος. Επομένως είναι αρκετά χρήσιμο και ενδιαφέρον για ένα διαχειριστή να βλέπει γραφικά την ομαδοποίηση των πελατών του. 15

1.1 ΣΚΟΠΟΙ ΚΑΙ ΣΤΟΧΟΙ ΤΗΣ ΕΡΓΑΣΙΑΣ Σκοπός της παρούσας εργασίας είναι η κατανόηση του πηγαίου κώδικα της πλατφόρμας Magento και η επιτυχής ενσωμάτωση μιας νέας επέκτασης που παρουσιάζει τα δεδομένα των πελατών. Το σύνολο του κώδικα του Magento βασίζεται στο μοντέλο ΜVC(MODEL VIEW CONTROLLER) το οποίο καθορίζει τον ρόλο και λειτουργία κάθε τμήματος ξεκαθαρίζοντας την σημασία του κώδικα στο σύνολο του προγράμματος. Η επέκταση αφορά την οπτικοποίηση του συνόλου δεδομένων των πελατών μέσω της γραφικής αναπαράστασής του. Το μοντέλο MVC και η λειτουργία της επέκτασης αναλύονται στα κεφάλαια. 1.2 ΔΟΜΗ ΕΡΓΑΣΙΑΣ Αρχικά στο κεφάλαιο δύο, γίνεται μια θεωρητική εισαγωγή στην έννοια του ηλεκτρονικού εμπορίου και στα ηλεκτρονικά καταστήματα. Επίσης παρουσιάζονται τα χαρακτηριστικά και η δομή του λογισμικού ηλεκτρονικών καταστημάτων Magento. Στην συνέχεια αναλύεται η μεθοδολογία ανάπτυξης επέκτασης στο κεφάλαιο τρία, και δίνονται περισσότερα στοιχεία σχετικά με την δομή της επέκτασης και του μοντέλου MVC. Επιπρόσθετα περιγράφονται τα εργαλεία οπτικοποίησης και γραφημάτων της γλώσσας PHP που χρησιμοποιούνται στην συγκεκριμένη περίπτωση. Τα δεδομένα των πελατών ανακτώνται με ανάγνωση στην βάση δεδομένων του Magento και η διαδικασία περιγράφεται αναλυτικά. Στο τέταρτο κεφάλαιο παρουσιάζεται το υποσύστημα οπτικοποίησης δεδομένων επιχειρηματικής ευφυΐας και παρατίθενται τα χαρακτηριστικά του συστήματος. Επίσης, δίνονται οδηγίες για εγκατάσταση και χρήση της επέκτασης. Τέλος, αναλύονται οι μελλοντικές προοπτικές και τα συμπεράσματα. Στο Παράρτημα I παρουσιάζονται αλφαβητικά η βιβλιογραφία και οι δικτυακοί τόποι που αναφέρονται στην εργασία. Στο Παράρτημα IΙ παρουσιάζονται τα ακρωνύμια τα οποία χρησιμοποιούνται σε αυτή την εργασία για τη διευκόλυνση του αναγνώστη. Στο Παράρτημα IIΙ παρουσιάζεται το γλωσσάριο ξενικών όρων οι οποίοι χρησιμοποιούνται σε αυτή την εργασία για τη διευκόλυνση του αναγνώστη. 16

Κ Ε Φ Α Λ Α Ι Ο 2 : Η Λ Ε Κ Τ Ρ Ο Ν Ι ΚΟ Ε Μ Π Ο Ρ Ι Ο Κ Α Ι Λ Ο Γ Ι Σ Μ Ι ΚΟ Η Λ Ε Κ Τ Ρ Ο Ν Ι Κ Ω Ν Κ ΑΤΑ Σ Τ Η Μ ΑΤ Ω Ν

ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΚΑΙ ΛΟΓΙΣΜΙΚΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΑΤΑΣΤΗΜΑΤΩΝ 2.1 ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ 2.1.1 Γενικά Τα τελευταία χρόνια, η επανάσταση της πληροφορικής και η διάδοση του διαδικτύου έχουν αλλάξει σημαντικά τον τρόπο ζωής των ανθρώπων, επιφέροντας μια σειρά από αλλαγές οι οποίες επηρεάζουν και τις εμπορικές επιχειρήσεις. Αυτές οι αλλαγές μπορούν να αποτελέσουν σημαντικό παράγοντα για την ανέλιξη των επιχειρήσεων εφόσον ανταποκρίνονται στις απαιτήσεις ενός νέου περιβάλλοντος που χαρακτηρίζεται από συνεχώς μεταβαλλόμενες συνθήκες, διεθνοποίηση και εντατικοποίηση του ανταγωνισμού. Οι επιχειρήσεις που θα αντεπεξέλθουν, είναι αυτές που στον παρόντα χρόνο θα κινηθούν προς την ενσωμάτωση των νέων τεχνολογιών. Παλαιότερα, η ενσωμάτωση αυτή περιλάμβανε μόνο την ηλεκτρονική παρουσίαση των καταστημάτων, δεν υπήρχε η δυνατότητα άμεσης παραγγελίας κάποιου είδους. Σήμερα, αναπτύσσονται διεθνώς τα ηλεκτρονικά καταστήματα (eshops), τα οποία προσφέρουν ημερησίως χιλιάδες προϊόντα και υπόσχονται χαμηλότερες τιμές καθώς υπάρχει και η δυνατότητα άμεσης παραγγελίας των προϊόντων. Η ευκολία χρήσης ενός ηλεκτρονικού καταστήματος όπως επίσης και η ύπαρξη φιλικών χαρακτηριστικών προς το χρήστη είναι καθοριστικοί παράγοντες για τη διαμόρφωση θετικής εντύπωσης του πελάτη ως προς το ηλεκτρονικό κατάστημα. Για αυτό τον λόγο, είναι πολύ σημαντική η διεξαγωγή δοκιμαστικών ελέγχων, έτσι ώστε να εντοπίζονται πιθανά προβλήματα και να εφαρμόζονται διορθώσεις ή βελτιώσεις. Δυο από τις τεχνικές με τις οποίες εκτελείται η αξιολόγηση σε ένα ηλεκτρονικό κατάστημα, είναι η ευριστική αξιολόγηση (heuristic evaluation) και η αξιολόγηση από τους χρήστες (user testing). Κάθε μια από τις μεθόδους αυτές διαθέτει τα δικά της χαρακτηριστικά και δίνει έμφαση σε διαφορετικούς τομείς της χρήσης του ηλεκτρονικού καταστήματος. Για να χαρακτηριστεί όμως, ένα ηλεκτρονικό κατάστημα πετυχημένο, δεν αρκεί απλά να διαθέτει ωραία εμφάνιση και εύχρηστο περιβάλλον χρήστη (user interface), αλλά θα πρέπει να είναι ικανό να διαμορφώνει σχέσεις εμπιστοσύνης με τους πελάτες και επίσης, να αποδίδει κέρδη. 19

Συχνά οι επιχειρήσεις προσπαθούν να υιοθετήσουν τεχνικές διαδικτυακού μάρκετινγκ, χωρίς να διαθέτουν γνώσεις πάνω σε αυτό το αντικείμενο, ή χωρίς την ύπαρξη κάποιου επιχειρηματικού μοντέλου. Κάτι τέτοιο συχνά οδηγεί στην δημιουργία ηλεκτρονικών καταστημάτων τα οποία δεν ικανοποιούν τις προσδοκίες του πελάτη. Έτσι λοιπόν, κρίνεται απαραίτητη η υιοθέτηση ενός μοντέλου με επίκεντρο τον χρήστη/πελάτη. Είναι απαραίτητο δηλαδή, να εντοπίζονται και να λαμβάνονται σοβαρά υπόψη τα θέλω και οι ανάγκες των αγοραστών. Οι ανάγκες και οι προσδοκίες διαφέρουν από πελάτη σε πελάτη. Σημαντικοί παράγοντες είναι η ηλικία, το φύλο και η εθνικότητα. Επίσης, πολύ σημαντικό ρόλο παίζει η εμπειρία του εκάστοτε χρήστη στο διαδίκτυο. Οι χρήστες που είναι πιο εξοικειωμένοι με την χρήση του internet εστιάζουν περισσότερο στις λεπτομέρειες που σχετίζονται με αυτό το οποίο ψάχνουν στο e-shop, ενώ οι λιγότερο πεπειραμένοι χρήστες, εστιάζουν κυρίως στην κατανόηση της πληροφορίας που υπάρχει στο ηλεκτρονικό κατάστημα. Εν κατακλείδι, προκειμένου να αυξήσουν τις πωλήσεις τους, οι επιχειρήσεις θα πρέπει να επενδύσουν χρήμα και χρόνο για να σχεδιάσουν, να αναπτύξουν, να εξετάσουν, να υλοποιήσουν αλλά και να συντηρήσουν το δικό τους ηλεκτρονικό κατάστημα. 2.1.2 Πλεονεκτήματα Ηλεκτρονικών Αγορών Τα e-shops είναι πλέον πολύ διαδεδομένα και δημοφιλή και αυτό οφείλεται στα πάρα πολλά πλεονεκτήματα που έχει σε σχέση με τα συμβατικά καταστήματα. Αρχικά, προσφέρουν τρομερή διευκόλυνση στους πελάτες τους. Είναι διαθέσιμα σε 24ωρη βάση και για 365 μέρες ετησίως και οι καταναλωτές μπορούν να έχουν πρόσβαση σε αυτά από το σπίτι τους ή και από την δουλειά τους, σε αντίθεση με τα συμβατικά καταστήματα τα οποία είναι ανοιχτά συγκεκριμένες ώρες και μέρες τον χρόνο και για να τα επισκεφθεί κάποιος χρειάζεται να διανύσει κάποια απόσταση. Επίσης, σε περίπτωση προβλήματος με τα αγορασθέντα αντικείμενα (π.χ. το αντικείμενο ήταν προβληματικό ή δεν ήταν αυτό που παρήγγειλε ο αγοραστής) υπάρχει η δυνατότητα αντικατάστασης του προϊόντος ή η επιστροφή των χρημάτων του αγοραστή. Ακόμα, ανάλογα με τα προσφερόμενα είδη, ο πελάτης μπορεί να αναζητήσει ανάμεσα σε πολλά ομοειδή το συγκεκριμένο είδος που επιθυμεί, να μάθει την τιμή και τον χρόνο αποστολής, να το δει σε εικόνες (ορισμένες φορές και σε βίντεο) και να κάνει σχετικές συγκρίσεις τιμών. Επίσης, μπορεί να βρει και να παραγγείλει είδη που δεν υπάρχουν στα συμβατικά καταστήματα της πόλεως ή της χώρας του. Αρκετά e-shops παρέχουν στους πελάτες τους συμπληρωματικές πληροφορίες για τα προϊόντα τους, όπως οδηγίες χρήσεις, οδηγίες ασφάλειας, προδιαγραφές κατασκευαστή κ.α. Ακόμα, τα περισσότερα ηλεκτρονικά καταστήματα δίνουν στους χρήστες την δυνατότητα να σχολιάσουν ή να αξιολογήσουν τα προϊόντα που αγόρασαν. Έτσι, δίνεται η δυνατότητα σε οποιονδήποτε άλλον θελήσει να αγοράσει τα συγκεκριμένα προϊόντα να έχει εκ των προτέρων γνώση για την ποιότητα και την χρηστικότητά τους, κάτι που οδηγεί σε πιο συνετές και ουσιαστικές αγορές. 20

Επιπλέον, όλα τα e-shops διαθέτουν εξυπηρέτηση πελατών η οποία παρέχεται μέσω τηλεφώνου, e-mail και ορισμένες φορές ακόμα και μέσω online chat. Τέλος, ένα μεγάλο πλεονέκτημα των ηλεκτρονικών καταστημάτων είναι το ότι οι τιμές των προϊόντων είναι φθηνότερες, γιατί ένα τέτοιο κατάστημα δεν διατηρεί σημεία πώλησης με υψηλό ενοίκιο και δεν απασχολεί αριθμητικά το ίδιο προσωπικό με ένα συμβατικό κατάστημα. 2.1.3 Ασφάλεια συναλλαγών Εκτός από την πληθώρα προϊόντων που μπορεί κάποιος να βρει σε ένα e-shop, μπορεί επίσης να επιλέξει μεταξύ πολλών τρόπων διεκπεραίωσης της πληρωμής προς το ηλεκτρονικό κατάστημα. Συνήθως οι πελάτες επιλέγουν να πληρώσουν με πιστωτική κάρτα ή μέσω PayPal. Ωστόσο, τα περισσότερα συστήματα δίνουν την δυνατότητα στους καταναλωτές να πληρώσουν και με άλλους τρόπους όπως : χρέωση μέσω κινητού τηλεφώνου, επιταγή, χρεωστική κάρτα, ηλεκτρονικά χρήματα, Bitcoin και πληρωμή κατά την παραλαβή (αντικαταβολή). Η οικονομική συναλλαγή εκτελείται είτε σε πραγματικό χρόνο (π.χ. ενημερώνοντας τον καταναλωτή εάν η κάρτα του έγινε δεκτή από το σύστημα, πριν αυτός "απομακρυνθεί" από το ηλεκτρονικό κατάστημα), είτε αργότερα ως κομμάτι της συνολικής διαδικασίας διεκπεραίωσης της αγοράς. Κατά καιρούς εντοπίζονται διάφορα προβλήματα στην ασφάλεια των συναλλαγών μέσω διαδικτύου, όπως παρεμβολές κακόβουλων χρηστών και υποκλοπές στοιχείων πιστωτικών καρτών. Ωστόσο, όλα αυτά τα προβλήματα έχουν, κατά τον μεγαλύτερο βαθμό, επιλυθεί και έτσι, η συναλλαγή μέσω διαδικτύου έχει γίνει κατά πολύ ασφαλέστερη σε σχέση με το παρελθόν. Σήμερα οι δύο τύποι αξιόπιστων τεχνολογιών ασφάλειας που είναι διαθέσιμοι για ηλεκτρονικές αγορές είναι το SSL (Secure Socket Layer) και το SET (Secure Electronic Transaction). Όταν πραγματοποιούνται συναλλαγές με ηλεκτρονικά καταστήματα μπορεί να χρησιμοποιηθεί το SSL για να προστατευτεί η μυστικότητα των συναλλαγών. Παρέχεται μυστικότητα κρυπτογράφησης του "καναλιού" της συναλλαγής μεταξύ πελάτη και εμπόρου. Όταν η συναλλαγή είναι πράγματι εμπιστευτική θα πρέπει να εμφανιστεί το ανάλογο λογότυπο προστασίας πχ κλειδαριά στο πλαίσιο του φυλλομετρητή και η διεύθυνση (URL) να έχει αλλάξει από http://διαδρομή... σε https://διαδρομή... Το HTTPS είναι μια ασφαλής μορφή του γνωστού πρωτοκόλλου μεταφοράς υπερκειμένου HTTP (Hyper Text Transfer Protocol), ώστε να είναι εξασφαλισμένη η ανταλλαγή πληροφοριών ανάμεσα στον φυλλομετρητή και τον Web server. Η τεχνολογία SET αναπτύχθηκε για την εξακρίβωση και γνησιότητας ταυτότητας μεταξύ εμπόρων και καταναλωτών πριν από μία ηλεκτρονική συναλλαγή. Συγκεκριμένα παρέχει εμπιστευτικότητα και ακεραιότητα των κρίσιμων 21

μεταδιδόμενων πληροφοριών αλλά και πιστοποίηση ότι ο έμπορος μπορεί να δέχεται συναλλαγές με πιστωτική κάρτα μέσω συνεργασίας από κάποιο οικονομικό οργανισμό αλλά και πιστοποίηση ότι ο κάτοχος της κάρτας είναι πραγματικά ο νόμιμος και γνήσιος χρήστης του λογαριασμού. Το SET δημιουργήθηκε από τη Visa και τη MasterCard. 2.2 ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΕΡΙΕΧΟΜΕΝΟΥ (CMS) 2.2.1 Γενικά Τα CMS (Content Management Systems ή Συστήματα Διαχείρισης Περιεχομένου) είναι διαδικτυακές εφαρμογές που επιτρέπουν την online τροποποίηση του περιεχομένου ενός δικτυακού τόπου. Οι διαχειριστές μέσω διαδικτύου ενημερώνουν το περιεχόμενο στο CMS, το οποίο είναι εγκατεστημένο σε έναν διακομιστή. Οι αλλαγές αυτές γίνονται αυτόματα διαθέσιμες πάλι μέσω του διαδικτύου σε όλους τους επισκέπτες και χρήστες του διαδικτυακού τόπου. Η φιλοσοφία της χρήσης των CMS είναι το να αποφευχθεί η ανάγκη για συνεχείς αλλαγές στον πηγαίο κώδικα για κάθε ανανέωση περιεχομένου. Πολλά CMSs χρησιμοποιούνται και για την υποστήριξη ηλεκτρονικών καταστημάτων. Μερικά από αυτά τα CMS είναι τα : Magento, Preta Shop, Zen-Cart κ.α. 2.2.2 Είδη Συστημάτων Διαχείρισης Περιεχομένου (CMS) Η βασική λειτουργία και χρήση των CMS είναι η εύκολη επεξεργασία και παρουσίαση σε ένα website. Οι λειτουργίες και οι δυνατότητές τους ποικίλουν. Μερικές από αυτές είναι η δημοσιοποίηση πληροφοριών, η διαχείριση του user interface, η αναζήτηση, η αρχειοθέτηση και η ανάκτηση πληροφοριών σχετικά με το εκάστοτε website. Επίσης, ένα CMS μπορεί να χρησιμοποιηθεί σαν ένα κεντρικό repository που περιέχει έγγραφα, ταινίες, φωτογραφίες, επιστημονικά δεδομένα κ.α. Τα τρία είδη CMS είναι τα ακόλουθα: WCMS (Web Content Management System), CCMS ( Component Content Management System), ECMS (Enterprise Content Management System). Ένα WCMS, είναι ένα σύστημα CMS σχεδιασμένο για να απλοποιήσει τη δημοσίευση του δικτυακού περιεχομένου των web sites και των κινητών συσκευών, μεταξύ άλλων, επιτρέπει στους δημιουργούς περιεχομένου να υποβάλουν περιεχόμενο χωρίς να απαιτεί τεχνική γνώση HTML ή μεταφόρτωση των αρχείων. 22

Πολλά web-based συστήματα διαχείρισης περιεχομένου υφίστανται τόσο Ανοιχτού Κώδικα όσο και με εμπορικά κατοχυρωμένα πνευματικά δικαιώματα. Ωστόσο, αυτός είναι ένας τομέας στον οποίο το OSS (Open Source Software) έχει αποκτήσει δεσπόζουσα θέση έναντι των ιδιοκτησιακής μορφής ομολόγων του. Ενα CCMS, εξειδικεύεται στην δημιουργία εγγράφων από components. Για παράδειγμα, ένα CCMS που χρησιμοποιεί DITA XML, δίνει την δυνατότητα στους χρήστες να συναρμολογήσουν πολλά διαφορετικά components, δημιουργώντας έτσι ένα ομογενές έγγραφο. Αυτά τα components μπορούν να ξαναχρησιμοποιηθούν στην συνέχεια για την δημιουργία κάποιου άλλου εγγράφου. Αυτό εξασφαλίζει την μεγαλύτερη δυνατή επαναχρησιμοποίηση του περιεχομένου. Ενα ECMS, οργανώνει έγγραφα, επαφές και αρχεία καταγραφής που σχετίζονται με τις λειτουργίες ενός εμπορικού οργανισμού ή μιας επιχείρησης. Συντηρεί δομημένη όλη την πληροφορία του website και έχει ως στόχο την βελτιστοποίηση της ασφάλειας και της σταθερότητας του website. Αποτελείται από δυο διακριτά στοιχεία : Το CMA (Content Management Application), το οποίο αποτελεί την front-end διεπαφή του χρήστη, το οποίο δίνει την δυνατότητα στον χρήστη να προσθέσει, να τροποποιήσει και να αφαιρέσει περιεχόμενο από το website, χωρίς την παρέμβαση κάποιου διαχειριστή. Το CDA (Content Delivery Application), το οποίο "μεταγλωττίζει" την πληροφορία στην οποία παρενέβη ο χρήστης μέσω του CMA και ενημερώνει αναλόγως το website. 2.3 MAGENTO Το Magento είναι μια ισχυρή πλατφόρμα ηλεκτρονικού εμπορίου ανοιχτού κώδικα γραμμένη σε PHP (ΜVC). Το ξεκίνημα έγινε τον Μάρτιο του 2008 με το όνομα Βento από την εταιρία Varien, με τη συμβολή προγραμματιστών της κοινότητας ανοιχτού κώδικα. Πλέον το Magento αποτελεί αποκλειστική ιδιοκτησία του ebay Inc. Θεωρείται μία αξιόπιστη λύση ηλεκτρονικού εμπορίου που παρέχει την δυνατότητα σε εμπόρους να δημιουργήσουν τη δική τους επιχείρηση στο διαδίκτυο και να συμμετέχουν στο ηλεκτρονικό εμπόριο. Το Νοέμβριο του 2013, εκτιμήθηκε ότι το Magento χρησιμοποιήθηκε από το 0,9% του συνόλου των ιστοχώρων. Πρόκειται επίσης για ένα αντικειμενοστραφής PHP-framework που μπορεί να χρησιμοποιηθεί για την ανάπτυξη σύγχρονων δυναμικών εφαρμογών, οι οποίες αξιοποιούν τα ισχυρά χαρακτηριστικά γνωρίσματα ηλεκτρονικού εμπορίου του Magento. Βασίζεται σε Open Source λογισμικό και είναι ελεύθερο προς χρήση. Διανέμεται υπό την άδεια GNU Lesser General Public Licence: http://www.gnu.org/licenses/lgpl.html 23

Η επίσημη ιστοσελίδα του βρίσκεται στην διεύθυνση: http://magento.com/ και παρουσιάζεται στην εικόνα 2.1. ΕΙΚΟΝΑ 2.1 Ιστοσελίδα Magento 2.3.1 Γνωριμία με το Magento Το Magento αποσκοπεί κυρίως στη δημιουργία ηλεκτρονικού καταστήματος εμπορίου προϊόντων, με ευέλικτες και επεκτάσιμες λύσεις για την επιτυχή διεξαγωγή αγοραπωλησίας προϊόντων. Αποτελεί μια οικονομικά αποδοτική πλατφόρμα, η οποία καθιστά δυνατό τον έλεγχο του περιεχόμενου, της λειτουργικότητας και της εμφάνισης του ηλεκτρονικού καταστήματος. Ενέργειες όπως η επεξεργασία σελίδων, η προσθήκη προϊόντος καθώς και η διαχείριση των πόρων είναι αρκετά απλές έτσι ώστε να μην απαιτούνται πολύ προχωρημένες γνώσεις. 24

Το Magento συνεργάζεται εύκολα με τα απαραίτητα εργαλεία που καθιστούν αποτελεσματική μια ιστοσελίδα ηλεκτρονικού εμπορίου όπως η Google, βάσεις δεδομένων ανοικτού κώδικα MySQL, μεγάλες πύλες πληρωμής καθώς και ναυτιλιακές υπηρεσίες. Είναι μια ιδιαίτερα πλούσια σε χαρακτηριστικά πλατφόρμα, έρχεται με ενσωματωμένο SEO ( Search Engine Optimization), αναγνωρίζει διεθνή νομίσματα, παρέχει online εργαλεία μάρκετινγκ, επιτρέπει στους αγοραστές να αξιολογήσουν τα προϊόντα τους και πολλά άλλα. Δεν περιορίζεται στη χρήση ενός μοναδικού ηλεκτρονικού καταστήματος αλλά παρέχει την δυνατότητα να τρέχει σε πολλαπλά καταστήματα από το ίδιο backend, με όλες τις πληροφορίες να είναι διαθέσιμες για όλα τα καταστήματα. Ως open-source πλατφόρμα, το Magento ενημερώνεται τακτικά από τους σχεδιαστές, το οποίο σημαίνει ότι ανανεώνονται και προσθέτονται συνεχώς νέα χαρακτηριστικά. Παράλληλα υπάρχει άμεση διόρθωση σφαλμάτων καθώς υπάρχει μεγάλη υποστήριξη από την διαδικτυακή κοινότητα. Ακολούθως παρουσιάζεται η μορφή του ηλεκτρονικού καταστήματος στην πλατφόρμα του Magento και περιγράφονται οι διάφορες λειτουργίες του οι οποίες παρέχονται στη σελίδα του διαχειριστή. Η παρακάτω εικόνα απεικονίζει μια βασική ιστοσελίδα στην εντελώς αρχική της μορφή. Αυτή η σελίδα εμφανίζεται όταν για πρώτη φορά ο πελάτης επισκεφτεί το Magento που στην προκειμένη περίπτωση επιτυγχάνεται με την χρήση τοπικού εξυπηρετητή. ΕΙΚΟΝΑ 2.2 Σελίδα Ηλεκτρονικού Καταστήματος Magento 25

Όπως παρατηρείται στην εικόνα 2.2 υπάρχουν πέντε βασικές επιλογές που μπορεί ο χρήστης να επιλέξει από το μενού. Η πρώτη καρτέλα ονομάζεται «Μy Account» και από εκεί μπορεί να διαχειριστεί κανείς τον λογαριασμό του ως πελάτης του καταστήματος. Εμφανίζονται οι πιο πρόσφατες αγορές του πελάτη, επίσης ο ίδιος μπορεί να τροποποιήσει τα προσωπικά του στοιχεία σε συνδυασμό με τις διευθύνσεις αποστολής των προϊόντων και να αλλάξει τα στοιχεία της αποθηκευμένης κάρτας που χρησιμοποιείται για τις αγορές. Ακολούθως η επιλογή «My Wishlist» προβάλλει τα προϊόντα που ο καταναλωτής έχει προσθέσει σε μια λίστα με τα αντικείμενα του καταστήματος που επιθυμεί να αγοράσει μελλοντικά. Μπορεί να δημιουργήσει διαφορετικές λίστες ανάλογα με την κατηγορία του προϊόντος για παράδειγμα και να μεταφέρει κάτι στο καλάθι αγορών εάν το επιθυμεί. Το «My cart» εμφανίζει τα προϊόντα που προστέθηκαν στον καλάθι για αγορά. Είναι το σύνολο των προϊόντων που θα αγοραστούν εάν γίνει επιλογή της επόμενης καρτέλας «Checkout». Ο χρήστης με την συμπλήρωση των απαραίτητων στοιχείων ολοκληρώνει τις αγορές του. Για όλες τις επιλογές του μενού απαραίτητη προϋπόθεση είναι ο καταναλωτής να συνδεθεί με τον προσωπικό του λογαριασμό στον οποίο συνδέονται όλα αυτά τα δεδομένα. Για να επιτευχθεί η σύνδεση στο κατάστημα, κατά την πρώτη επίσκεψη, χρειάζεται να δημιουργηθεί νέος λογαριασμός. Όταν κάποιος επιλέξει για παράδειγμα την καρτέλα «My Account» εμφανίζεται η ακόλουθη σελίδα που ζητά από τον πελάτη είτε να δημιουργήσει νέο λογαριασμό, εάν είναι η πρώτη του επίσκεψη, είτε να συνδεθεί με τα στοιχεία που συμπλήρωσε κατά την δημιουργία του λογαριασμού του. Η σύνδεση μπορεί να γίνει απευθείας με την επιλογή «Log In». ΕΙΚΟΝΑ 1.3 Σύνδεση στον Λογαριασμό Χρήστη 26

Για τη δημιουργία νέου λογαριασμού απαιτείται η συμπλήρωση των πεδίων που αντιστοιχούν στο όνομα του πελάτη, ενός έγκυρου email και του κωδικού πρόσβασης. Προαιρετικά ο χρήστης μπορεί να δηλώσει το φύλο του και να επιλέξει εάν θέλει να ενημερώνεται για τα νέα του καταστήματος. Με την επιλογή «Submit» ολοκληρώνεται η διαδικασία της δημιουργίας του λογαριασμού. ΕΙΚΟΝΑ 2.4 Σελίδα Εγγραφής Πελάτη Μετά την ολοκλήρωση του λογαριασμού, ο πελάτης έχει τη δυνατότητα να αξιοποιήσει τις δυνατότητες που παρέχονται όπως αυτές παρουσιάζονται στην εικόνα 2.5. Αρχικά θα ήταν χρήσιμο να συμπληρώσει τις πληροφορίες που τον αφορούν όπως τις ενδεχόμενες διευθύνσεις αποστολής προϊόντων στο «Address Book» και τη διεύθυνση αποστολής του λογαριασμού της κάρτας που χρησιμοποιείται για την αγορά των προϊόντων στο «DEFAULT SHIPING ADDRESS». Επίσης στο νέο μενού επιλογών της διαχείρισης του λογαριασμού του μπορεί να δει τις παραγγελίες που έχει κάνει μέχρι τώρα με χρονολογική σειρά («Μy Orders»), τις αποδείξεις των αγορών του («Billing Agreements»), τα σχόλια και τη βαθμολόγηση που έχει κάνει σε προϊόντα που τον ενδιαφέρουν («My Products Reviews»), τις ετικέτες που έχει προσθέσει(«my Tags»), τις εφαρμογές που ενσωμάτωσε («My Applications»), τα νέα των συνδρομών του («Newsletter Subscriptions») και άλλα πολλά. Σαν ξεχωριστές επιλογές εμφανίζονται τα περιεχόμενα του καλαθιού αγοράς και η σύγκριση μεταξύ των προϊόντων. 27

ΕΙΚΟΝΑ 2. 5 Σελίδα Λογαριασμού Πελάτη Παραπάνω, έγινε μια ανάλυση της μορφής της σελίδα του καταστήματος και μια περιγραφή για το πως ο χρήστης μπορεί να διαχειριστεί τον λογαριασμό του ο οποίος περιλαμβάνει κυρίως τα προσωπικά του στοιχεία, τις αγορές του και τα προϊόντα που τον ενδιαφέρουν. Εξίσου σημαντική όμως είναι η διαχείριση της σελίδας αυτής που βλέπει ο πελάτης και μπορεί να εκτελέσει πλήθος ενεργειών. Όλα αυτά είναι αποτέλεσμα της σελίδας του διαχειριστή, όπου καθορίζεται το τι μπορεί ο χρήστης να δει και να κάνει. Παράλληλα εξάγονται συμπεράσματα και άλλα δεδομένα χρήσιμα για τον υπεύθυνο καταστήματος αφού μπορεί να τα αξιοποιήσει για να έχει ένα πιο αποδοτικό και προσιτό ηλεκτρονικό κατάστημα. 28

Στη σελίδα του διαχειριστή το λεγόμενο backend, μπορεί να έχει πρόσβαση μόνο ο υπεύθυνος λειτουργίας του καταστήματος και τα στοιχεία σύνδεσης καθορίζονται με την εγκατάσταση του Μagento. Xρειάζεται προσοχή λοιπόν στην εγκατάσταση, καθώς πρέπει ο διαχειριστής να θυμάται τα στοιχεία που βάζει για την πρόσβαση στη σελίδα αφού μετά είναι σχεδόν ακατόρθωτο να τα ανακτήσει. Για να συνδεθεί λοιπόν ο διαχειριστής με το backend, πηγαίνει http://localhost/magento/admin. Τότε εμφανίζεται το παράθυρο που ακολουθεί για την εισαγωγή των στοιχείων του. ΕΙΚΟΝΑ 2.6 Σελίδα Διαχειριστή Με την είσοδο στο backend εμφανίζεται η σελίδα του διαχειριστή, εικόνα 2.6, με τα έσοδα του καταστήματος, οι πέντε τελευταίες αγορές, τα πέντε τελευταία προϊόντα που αναζητήθηκαν και οι πέντε πρώτες, δηλαδή πιο συχνές, αναζητήσεις. Επίσης εμφανίζεται ο φόρος των αγορών, το κόστος αποστολής και τα συνολικά έσοδα των παραγγελιών. Το πλήθος των προεγκατεστημένων εφαρμογών του Magento, καθιστά εύκολη την διαχείριση του καταστήματος. Είναι απλές σε χρήση εφαρμογές που δεν απαιτούν ιδιαίτερες γνώσεις, επιτυγχάνοντας έτσι ένα απλό αλλά αποτελεσματικό λειτουργικό σύστημα για τους διαχειριστές. 29

Οι πωλήσεις(«sales») περιλαμβάνουν όλες τις πληροφορίες που αφορούν τις παραγγελίες που γίνονται. Όπως φαίνεται στις υποεπιλογές της καρτέλας, μπορεί να γίνει προβολή των παραγγελιών βάση συγκεκριμένων ερωτημάτων που θέτει ο υπεύθυνος. Για παράδειγμα δίνεται η δυνατότητα εμφάνισης όλων των παραγγελιών που έγιναν μια συγκεκριμένη ημερομηνία, είτε η εμφάνιση της πορείας κάποιας παραγγελίας και άλλα πολλά. Η αναζήτηση των παραγγελιών γίνεται με μεγάλη ευκολία και παρέχεται ικανοποιητικό πλήθος επιλογών για την εκτέλεση ερωτημάτων. Ακριβώς το ίδιο ισχύει και για τις επόμενες επιλογές, αφού σε όλες τις καρτέλες μπορεί να τεθεί κάποιο ερώτημα και να εμφανιστούν οι σχετικές εγγραφές. Οι αναζητήσεις μπορούν να γίνουν για τα δεδομένα των τιμολογίων, των αποστολών, των σημειώσεων καρτών για επιστροφές, των συναλλαγών, των συνδεδεμένων λογαριασμών των πελατών, των χρεώσεων, των όρων και προϋποθέσεων και τέλος των φόρων. ΕΙΚΟΝΑ 2.7 Επιλογή Sales 30

ΕΙΚΟΝΑ 2.8 Επιλογή Catalog Η επιλογή του καταλόγου («Catalog»-εικόνα 2.8) διαχειρίζεται ουσιαστικά τα προϊόντα του καταστήματος και όλες τις πληροφορίες γύρω από αυτά. Παρέχει την δυνατότητα αναζήτησης στα προϊόντα με εκτέλεση του ερωτήματος που θέτει ο διαχειριστής. Επίσης διευθύνει τις κατηγορίες των προϊόντων και μπορεί να τροποποιήσει τις ήδη υπάρχουσες ή να προσθέσει καινούργια κατηγορία προϊόντων. Επιτρέπει την τροποποίηση του υπερσυνδέσμου μιας σελίδας για να είναι σε μορφή πιο κατανοητή και εύκολα χρησιμοποιήσιμη από τον πελάτη. Επιπρόσθετα, προβάλλει όλες τις πληροφορίες γύρω από ένα προϊόν όπως τις ετικέτες που έχουν προστεθεί σε αυτό, τις βαθμολογίες και τα διάφορα σχόλια. Η καρτέλα κινητής τηλεφωνίας («Mobile»-εικόνα 2.9) αναφέρεται στις εφαρμογές του καταστήματος και τα μηνύματα ανταπόκρισης. Επιτρέπει την διαχείριση των εφαρμογών που οι πελάτες μπορούν να εγκαταστήσουν και υπάρχει ιστορικό υποβολής εφαρμογών. Επιπλέον ελέγχει τα πρότυπα μηνυμάτων και δρομολογεί αυτά που είναι σε αναμονή και περιμένουν απάντηση. Τέλος γίνεται χειρισμός της εφαρμογής αποκλειστικά για τον διαχειριστή του συστήματος και έγκειται στον υπεύθυνο η ενεργοποίηση ή απενεργοποίηση. 31

ΕΙΚΟΝΑ 2.9 Επιλογή Mobile Η επιλογή των πελατών («Customers»-εικόνα 2.10) συμβάλει στη διαχείριση των καταναλωτών. Ο διαχειριστής μπορεί να κάνει αναζήτηση στο πελατολόγιο και να θέσει ερωτήματα στη βάση για πιο συγκεκριμένα δεδομένα. Επίσης προβάλλονται ομάδες των πελατών ανάλογα με την κατηγορία τους. Δηλαδή, οι πελάτες κατηγοριοποιούνται ανάλογα με το αν είναι έμποροι λιανικής ή χονδρικής πώλησης και εάν είναι αποσυνδεδεμένοι από το σύστημα. Οι χρήστες που είναι συνδεδεμένοι στην ιστοσελίδα εμφανίζονται σε ξεχωριστή κατηγορία άλλης καρτέλας και υπάρχουν δεδομένα που πληροφορούν το διαχειριστή για τη δραστηριότητά τους στην σελίδα. Αποθηκεύεται ο χρόνος που είναι συνδεδεμένος ο χρήστης, οι τελευταίες του ενέργειες και άλλες σχετικές πληροφορίες. ΕΙΚΟΝΑ 2.10 Επιλογή Customers 32

Ο διαχειριστής μπορεί να ελέγξει τη λειτουργία του συστήματος («System»-εικόνα 2.11) και να δει σημαντικά δεδομένα. Αρχικά υπάρχουν τα στοιχεία του λογαριασμού για πρόσβαση στο backend και μπορεί να γίνει τροποποίηση των στοιχείων εισόδου. Επίσης υπάρχουν ειδοποιήσεις σχετικά με την λειτουργία του Magento αλλά και του καταστήματος που μπορεί να δει ο διαχειριστής τα νέα της πλατφόρμας όπως την δημοσιοποίηση μιας νέας έκδοσης και την ενημέρωση μιας εφαρμογής. Παρέχεται η δυνατότητα εισαγωγής εξαγωγής δεδομένων από τη βάση, όπως επίσης και ο χειρισμός των εργαλείων του διαδικτύου που χρησιμοποιούνται. Σημαντική δυνατότητα της καρτέλας είναι η διαχείριση της κρυφής μνήμης και των αρχείων για την σύνθεση του τελικού χώρου λειτουργίας. ΕΙΚΟΝΑ 2.11 Επιλογή Systems Η καρτέλα των Αναφορών («Reports») προβάλλει τα δεδομένα των πελατών και των πωλήσεων, ενώ γίνεται επίσης, ανάλυση των ετικετών και των κριτικών των προϊόντων. Τέλος, οι υπόλοιπες κατηγορίες όπως οι προωθητικές ενέργειες («Promotions»), το ενημερωτικό δελτίο («Newsletter»), το «Cms» και το κατάστημα του Facebook («Facebook Store») δεν προσφέρουν σημαντικές υπηρεσίες διαχείρισης. Στην πρώτη περίπτωση γίνεται μια επισκόπηση των τιμών που συμπεριλαμβάνονται στην προωθητική ενέργεια. Για το ενημερωτικό δελτίο ο διαχειριστής βλέπει τους συνδρομητές των νέων της σελίδας και τις ανακοινώσεις αυτές που είναι προς δημοσιοποίηση. Η επιλογή του καταστήματος του κοινωνικού δικτύου προϋποθέτει τη σύνδεση και εμφανίζει το κατάστημα εάν υπάρχει, στην μορφή που έχει στο Facebook. Γενικότερα οι λειτουργίες αυτές διευκολύνουν την προώθηση του ηλεκτρονικού καταστήματος χωρίς να το επηρεάζουν με οποιοδήποτε τρόπο. 33

2.3.2 Το μοντέλο MVC Το μοντέλο Model View Controller(MVC) διαιρεί ένα υποσύστημα σε τρία λογικά μέρη για βελτίωση της διαδικασίας τροποποίησης κάθ ενός απ αυτά. Πρώτο μέρος αποτελεί το μοντέλο(model), το οποίο περιέχει τουλάχιστον μία κλάση ή ένα interface που είναι υπεύθυνο για την υποστήριξη των πληροφοριών του μοντέλου. Η κατάσταση του, διατηρείται στα πεδία και διαφοροποιείται από μεθόδους ενώ μια αναφορά συντηρείται σε κατάλληλες αναπαραστάσεις(v) έτσι ώστε να ενημερώνονται κάθε φορά που παρατηρούνται αλλαγές. Ακολουθεί η αναπαράσταση(view) αποτελούμενη από κλάσεις και διεπαφές που παρέχουν οπτικές αναπαραστάσεις του υποσυστήματος. Κάθε φορά που παρατηρείται κάποια αλλαγή των πληροφοριών του μοντέλου, το View είναι υπεύθυνο για την οπτικοποίηση αυτής της αλλαγής. Τέλος, ο διαχειριστής(controller) είναι υπεύθυνος για τον χειρισμό των αλλαγών του μοντέλου. Διατηρεί μια αναφορά στο συστατικό Model που είναι υπεύθυνο για τις αλλαγές ενώ καλεί μια ή περισσότερες update μεθόδους. Η εντολή αλλαγής μπορεί βέβαια να σταλεί και από κάποιο View. ΕΙΚΟΝΑ 2.12 Μοντέλο MVC Το Pattern MVC παρέχει υποσυστήματα ευέλικτα και προσαρμόσιμα σε διαφορετικές συνθήκες. Αυτή η ευελιξία μπορεί να χρησιμοποιηθεί είτε στατικά είτε δυναμικά. Νέες View ή Controller κλάσεις μπορούν να προστεθούν στην εφαρμογή (στατικά) και View ή Controller αντικείμενα μπορούν να αλλάξουν καθώς η εφαρμογή εκτελείται (δυναμικά). 34

Η αρχιτεκτονική του μοντέλου Model View Controller(MVC) χρησιμοποιείται από αρκετά συστήματα ωστόσο σε κάθε περίπτωση τροποποιείται ανάλογα. Στην περίπτωση αυτή του Magento έχει δημιουργηθεί μια πιο αφηρημένη έκδοση που έχει ως εξής: 1. Μια διεύθυνση(url) χαρακτηρίζεται από ένα αρχείο PHP. 2. Αυτό το αρχείο, δημιουργεί μια εφαρμογή Magento. 3. Η εφαρμογή Magento κατασκευάζει με την σειρά της, ένα αντικείμενο Front Controller. 4. Το Front Controller αντιπροσωπεύει οποιοδήποτε αριθμό αντικειμένων δρομολογητών (όπως ορίζεται από τον παγκόσμιο κανονισμό). 5. Οι δρομολογητές ελέγχουν για την ύπαρξη του αιτούμενου URL. 6. Αν υπάρχει ταίριασμα τότε αντλείται ένας Action Controller και ένα Action. 7. Ακολουθεί η δημιουργία ενός Action Controller και καλείται η μέθοδος που το όνομά της ταιριάζει με αυτό του Action. 8. Η μέθοδος που κλήθηκε πιο πάνω, θα δημιουργήσει και θα καλέσει τις απαιτούμενες μεθόδους των μοντέλων. 9. Τότε το Action Controller θα δημιουργήσει ένα Layout Object. 10. Αυτό το Layout Object θα κατασκευάσει μια λίστα Block Οbject που ισχύον για το συγκεκριμένο αίτημα. 11. Θα καλέσει επίσης, μια μέθοδο εξόδου σε ορισμένα Block Οbject που θα έχει ως αποτέλεσμα μια εμφωλευμένη κατάσταση (ένα Block θα περιέχει και άλλα Blocks). 12. Κάθε μπλοκ έχει ένα αντίστοιχο αρχείο Template. Τα μπλοκ ακολουθούν PHP λογική, ενώ τα αρχεία Template περιέχουν HTML και PHP κώδικα εξόδου. 13. Κάθε μπλοκ απευθύνεται άμεσα στα μοντέλα για δεδομένα που χρειάζεται. 2.3.3 Δομή φακέλων Απαραίτητη προυπόθεση για την κατανόηση του πηγιαίου κώδικα του Magento είναι να αντιληφθούμε την δομή και την δραστηριότητα των module στο σύστημα. Όλος ο κώδικας ενός module περιέχεται στην δομή app / code / core / Mage και πιο συγκεκριμένα app / code / core / Mage / Catalog. Ο τελικός φάκελος Catalog διαιρείται στους υποφακέλους που ακολουθούν /Block Εδώ γίνεται η επίβλεψη του συστήματος προτύπων. Ο κώδικας σε αυτό το σημείο χρησιμοποιείται για να φορτώσει τη βάση δεδομένων και να εμφανίσει το πρότυπο. Επίσης τροποποιείται η βάση δεδομένων όπου θεωρείται αναγκαίο πριν την εμφάνιση του προτύπου. /controllers Σε αυτό το σημείο καθορίζεται η διαδικασία που πρέπει να ακολουθηθεί για την διεκπεραίωση της εντολής του χρήστη. 35

/etc Στον φάκελο αυτό περιέχονται XML αρχεία που εναρμονίζουν κάθε module και αρχεία του συστήματος /Helper Η κλάση αυτή αποτελεί βοηθητικό μέρος στον κώδικα που περιλαμβάνει ευρέως χρησιμοποιημένες μεθόδους και δίνει την δυνατότητα πρόσθεσης οποιασδήποτε άλλης μεθόδου επιθυμούμε. Για την κλήση μιας μεθόδου χρησιμοποιείται η εντολή Mage::helper( yourmodule/yourhelp )->functionname(); /Model Εδώ γίνεται η διαχείριση της πρόσβασης των δεδομένων. Το Magento σχεδιάζει την βάση δεδομένων του σύμφωνα με το μοντέλο EAV και αυτό καθιστά την πρόσβαση αρκετά πολύπλοκη. Είναι το κατάλληλο μέρος για μεθόδους που ανταποκρίνονται άμεσα σε ένα ερώτημα. /sql Ο υποφάκελος αυτός περιέχει αρχεία για τον καθορισμό των ρυθμίσεων των δεδομένων ενός module που αλληλεπιδρά με μια βάση δεδομένων. Επιπρόσθετα γίνεται ενημέρωση των υπαρχόντων αρχείων. 2.3.4 Επεκτάσεις Το magento προσφέρει ένα ικανοποιητικό πλήθος επιλογών επεκτάσεων για την ενίσχυση των λειτουργιών του ενώ συνεχώς προστίθενται νέες. ΕΙΚΟΝΑ 2.13 Σελίδα Επεκτάσεων 36

Από προεπιλογή είναι εγκατεστημένες μερικές επεκτάσεις που αφορούν (κυρίως ρυθμίσεις σχετικά με την αγορά και τα προϊόντα, όπως οι τρόποι πληρωμής ή ο συσχετισμός προϊόντων). Μπορούμε να εγκαταστήσουμε μία επέκταση αφού πρώτα επισκεφθούμε τη σελίδα του magento στην οποία εμφανίζονται όλες οι επεκτάσεις ( http://www.magentocommerce.com/magento-connect/ ) και βρούμε το κλειδί αυτής που μας ενδιαφέρει. Στη συνέχεια, βάζουμε τα στοιχεία μας για είσοδο στον λογαριασμό του διαχειριστή του ηλεκτρονικού καταστήματος και εκτελούμε την εξής ακολουθία εντολών: System > Magento Connect > Magento Connect Manager. Απομένει να γράψουμε το κλειδί της επέκτασης που επιθυμούμε να εγκαταστήσουμε και να επιλέξουμε Ιnstall. Σε περίπτωση εμφάνισης προβλήματος υπάρχει στον χώρο των επεκτάσεων ένα κείμενο με αναλυτικές οδηγίες της διαδικασίας και τους τρόπους χειρισμού κάθε κατάστασης κωλύματος. 2.3.5 Widgets Τα Magento Widgets επιτρέπουν σε επαγγελματίες χωρίς τεχνικές γνώσεις να προσθέσουν εύκολα δυναμικό περιεχόμενο στις σελίδες των καταστημάτων τους, πετυχαίνοντας έτσι καλύτερο έλεγχο και ευελιξία στην δημιουργία ενημερωτικού αλλά και εμπορικού περιεχομένου. Πιθανή υλοποίηση είναι μια δυναμική λίστα με τα προϊόντα με την μεγαλύτερη επισκεψιμότητα την τελευταία περίοδο καθώς και προωθητικές διαφημίσεις σε διάφορα μέρη της σελίδας. Η εγκατάσταση ενός widget γίνεται εύκολα αρκεί να βρούμε αυτό που ταιριάζει για την περίπτωση που το θέλουμε και να συμβαδίζει με την έκδοση του Magento που έχουμε εγκατεστημένη. Βρίσκουμε το κλειδί του widget όπως και στην περίπτωση των επεκτάσεων και ακολούθως από το Magento Admin Area επιλέγουμε >System- >Magento Connect->Magento Connect Manager. Μετά την απαραίτητη συμπλήρωση των στοιχείων του διαχειριστή εισάγουμε τον κωδικό κλειδί του widget που κατεβάσαμε και μετά την εγκατάσταση μπορούμε να το χρησιμοποιήσουμε. Επόμενο βήμα μετά την επιστροφή μας στο Magento Admin Area είναι οι ενέργειες CMS- >Pages και η επιλογή της σελίδας που επιθυμούμε να εμφανίζεται. Τέλος στην στήλη των περιεχομένων υπάρχει η εικόνα προσθήκης widget, επιλέγουμε τον τύπο που θέλουμε και αφού αποθηκεύσουμε τις αλλαγές μπορούμε να δούμε στην σελίδα μας το widget. 37

2.3.6 Τεχνική υποστήριξη Η πλατφόρμα προσφέρει τεχνική υποστήριξη, υπηρεσίες και εκπαίδευση για την εξασφάλιση της επιτυχίας του ηλεκτρονικού καταστήματος των χρηστών. Το δίκτυο των εταίρων και των πιστοποιημένων προγραμματιστών προσφέρουν τεχνογνωσία και πόρους για συμβολή στον σχεδιασμό, στην κατασκευή και τέλος στην φιλοξενία του καταστήματος. Η υποστήριξη αυτή παρέχεται μέσω του επίσημου φόρουμ (http://www.magentocommerce.com/boards) στο οποίο ο χρήστης έχει εύκολη πρόσβαση και μπορεί να θέσει οποιοδήποτε ερώτημα σχετικά με κάποια δυσκολία που αντιμετωπίζει. Επίσης έχει την δυνατότητα να δει τα ερωτήματα που έθεσαν άλλοι χρήστες και όπου θεωρεί ότι γνωρίζει μια κατάσταση να συμβάλει στην επίλυση του προβλήματος. Επιπρόσθετα υπάρχει η δυνατότητα τηλεφωνικής ή γραπτής επικοινωνίας με την ομάδα του magento αποκλειστικά, όπου ένας εκπρόσωπος καλείται να λύσει το θέμα που προέκυψε. Τέλος τεχνική υποστήριξη υπάρχει και μέσω ζωντανής συνομιλίας. Σε κάθε περίπτωση επικοινωνίας θεωρείται απαραίτητη η ύπαρξη λογαριασμού στο magento. 38

Κ Ε Φ Α Λ Α Ι Ο 3 : Μ Ε Θ Ο Δ Ο Λ Ο Γ Ι Α ΥΛ Ο Π Ο Ι Η Σ Η Σ

ΜΕΘΟΔΟΛΟΓΙΑ ΥΛΟΠΟΙΗΣΗΣ 3.1 ΔΟΜΗ-ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΠΕΚΤΑΣΕΩΝ MAGENTO Η πλατφόρμα του Magento παρέχει μια ισχυρή διεπαφή για την δυνατότητα δημιουργίας επεκτάσεων. Οι λειτουργίες που παρέχονται ποικίλουν ενώ προσφέρεται η εύκολη ανάπτυξη επεκτάσεων με σκοπό την προσαρμογή του συστήματος στις απαιτήσεις του χρήστη. Μια επέκταση, αποτελεί ουσιαστικά ένα ξεχωριστό μέρος κώδικα που επεκτείνει την λειτουργικότητα του Magento, χωρίς όμως να επηρεάζει τον βασικό πυρήνα του. Η δομή που ακολουθείται για την δημιουργία μιας επέκτασης βασίζεται στο μοντέλο MVC (Model View Controller) που έχει αναλυθεί στο προηγούμενο κεφάλαιο. Οι επεκτάσεις του Magento περιλαμβάνουν τρεις επιμέρους κατηγορίες όπως περιγράφονται στην συνέχεια. Η πρώτη κατηγορία σχετίζεται με τις επεκτάσεις που αναπτύχθηκαν από το Μagento και διατίθενται με την εγκατάσταση του. Βρίσκονται στον βασικό φάκελο τον οποίο μπορούμε να βρούμε ακολουθώντας την εξής δομή: [magentodirectory] /app/code/core/mage. Υπάρχουν επίσης επεκτάσεις που προσφέρονται δωρεάν απο την ιστοσελίδα της πλατφόρμας ή από ιστοχώρους της κοινότητας του Magento. Αυτή την κατηγορία την βλέπουμε στη δομή που παρουσιάζεται πιο κάτω: [magentodirectory] / app / code / community /. Τέλος, έχουμε τις επεκτάσεις που αναπτύχθηκαν από άλλους χρήστες βάσει διαφορετικών προσωπικών απαιτήσεων. Η δομή είναι [magentodirectory] / app / code / local/. Η προκαθορισμένη δομή [Magento URL]/[Όνομα Διαχειριστή]/[Όνομα Ενέργειας] παρέχει την δυνατότητα πρόσβασης σε μια επέκταση μέσω της διεύθυνσης URL και πρέπει πάντοτε να ακολουθείται πιστά ως πρότυπο. Παρακάτω παρουσιάζεται αναλυτικότερα η μορφή που έχει ένας φάκελος μιας επέκτασης. Ο χώρος ονομάτων(namespace) παρουσιάζεται στην εικόνα 3.1 και αποτελεί την συλλογή μια νέας επέκτασης. ΕΙΚΟΝΑ 3.1 Νamespace 41

Ο διαχειριστής στο βασικό μοντέλο MVC καθώς και στην περίπτωση χρήσης του στο Magento, είναι η κλάση που ελέγχει την επιχειρηματική λογική και οπτικοποίηση. Αποτελεί ξεχωριστή κλάση σε ένα αρχείο php και πρέπει να δημιουργηθεί στον υποφάκελο controllers της επέκτασης, με το όνομα του διαχειριστή να προηγείται του προθέματος Controller, όπως για παράδειγμα SaveController.php. Αντίστοιχα μία ενέργεια αποτελεί ένα γεγονός το οποίο ανατίθεται για διαχείριση, επομένως οι ενέργειες μιας επέκτασης αποτελούν μια συνάρτηση της κλάσης του διαχειριστή. Ο υποφάκελος Block συντονίζεται με το μοντέλο για την οπτική αναπαράσταση. Ένα Block μπορεί να είναι άμεσα ή έμμεσα συνδεδεμένο με την οπτικοποίηση ή τον σχεδιασμό του μοντέλου. Βασισμένος στην τυπική δομή καταλόγου του Linux ο φάκελος etc περιέχει όλα τα αναγκαία αρχεία ρυθμίσεων. Θεωρείται απαραίτητη η ύπαρξη των αρχικών ρυθμίσεων που καθορίζονται στο αρχείο config.xml, για να είναι εφικτή η λειτουργία μια νέας επέκτασης. Παρέχεται, επίσης, η δυνατότητα δημιουργίας αρχείου ρυθμίσεων προσαρμοσμένου στις ανάγκες του μοντέλου. Γενικότερα στον φάκελο περιέχονται οι ενότητες μοντέλου, οι ελεγκτές κατάστασης, οι δρομολογητές, το μενού επιλογών, οι διαθέσιμοι πόροι και άλλες πληροφορίες. Οι συναρτήσεις χρησιμότητας αποθηκεύονται στον φάκελο Helper ο οποίος απαιτείται από τους υπόλοιπους φακέλους και κυρίως τον Block. Μεθόδοι που δηλώνονται σε αυτό τον χώρο μπορούν να κληθούν από οποιοδήποτε σημείο του συστήματος με τη δημιουργία αντικειμένων. Ο χώρος του Μοντέλου (Model) αποτελεί τον βασικό φάκελο του συστήματος που χειρίζεται την επιχειρηματική λογική στο Magento. Η ανάπτυξη των μοντέλων βασίζεται σε προκαθορισμένη σχέση από το Magento, που δημιουργεί δυναμικά την λειτουργία php που φορτώνει τα πεδία της βάσης δεδομένων. Η σχέση Object Relation Mapper(ORM), είναι μια τεχνική βασισμένη στον αντικειμενοστραφής προγραμματισμό, για μετατροπή διαφόρων τύπων δεδομένων σε αντικείμενα και το αντίστροφο. Η λανθασμένη χρήση της σχέσης αυτής προκαλεί χαμηλή απόδοση της βάσης δεδομένων. MAGENTO MODEL EXPRESSION DBMS SQL ORM 42

Τέλος, ο υποφάκελος SQL διαχειρίζεται προσαρμοσμένες βάσεις δεδομένων ειδικά κατά την διάρκεια της αναβάθμισης ή εγκατάστασης μιας μονάδας. Για παράδειγμα, εάν απαιτείται η δημιουργία ενός νέου πίνακα κατά την εγκατάσταση της επέκτασης μπορεί να γίνει προσθήκη ειδικού script στον φάκελο αυτό. Σε περίπτωση αναβάθμισης γίνεται δημιουργία νέου script που συμπεριλαμβάνει τις αλλαγές που απαιτούνται για την ολοκλήρωση της ενημέρωσης. 3.2 ΜΕΘΟΔΟΣ ΑΝΑΠΤΥΞΗΣ ΕΠΕΚΤΑΣΗΣ MAGENTO Η ανάπτυξη μιας νέας επέκτασης στο magento αποτελεί μια διαδικασία που απαιτεί μεγάλη προσοχή και συγκέντρωση. Πολύ εύκολα μπορεί να προκληθεί πρόβλημα στη σελίδα του διαχειριστή καθώς ο κώδικας επηρεάζει έμμεσα ολόκληρη την εγκατάσταση παρόλο που αφορά ξεχωριστό τμήμα. Η δημιουργία μιας νέας επέκτασης προϋποθέτει οτι έχει εγκατασταθεί η πλατφόρμα του magento σε κάποιο εξυπηρετητή, στον οποίο μπορούν να προστεθούν αρχεία. Αρχικό και σημαντικό βήμα αποτελεί η απενεργοποίηση της κρυφής μνήμης(cache). Αυτό μπορεί να γίνει από το βασικό μενού της σελίδας του διαχειριστή, όπως φαίνεται και στην εικόνα 3.2, ακολουθώντας τις εξής επιλογές: System > Cache Management > Select All > Actions: Disable > Submit. Η απενεργοποίηση είναι καθοριστική καθώς με μια ενημέρωση του κώδικα η σελίδα θα έδειχνε την μορφή που είχε την τελευταία φορά που αποθηκεύτηκε στη μνήμη. ΕΙΚΟΝΑ 3.2 Aπενεργοποίηση Κρυφής Μνήμης 43

Για να ξεκινήσει η συγγραφή του κώδικα θα πρέπει πρώτα να επισκεφτούμε τον φάκελο app/code. Εδώ εντοπίζονται οι τρείς κατηγορίες στις οποίες χωρίζονται οι επεκτάσεις. Ο φάκελος core αφορά όλες τις λειτουργίες των πελατών, των προϊόντων, των πληρωμών και οτιδήποτε άλλο σχετικό. Τα αρχεία σε αυτό τον χώρο δεν πρέπει να τροποποιηθούν. Το Magento παρέχει την δυνατότητα για εναλλακτική χρήση του κώδικα των λειτουργιών χωρίς όμως αυτός να υποστεί αλλαγή, εξασφαλίζοντας έτσι την ενημερωμένη μορφή των δεδομένων. Αποτελεί χρήσιμο χώρο για την περαιτέρω κατανόηση της ειδικότερης λειτουργίας του magento, ωστόσο οποιαδήποτε αλλαγή απαγορεύεται αυστηρά. Η επόμενη κατηγορία επεκτάσεων community περιέχει όλες αυτές τις επεκτάσεις που παρέχονται από τα μέλη της κοινότητας. Τέλος, local είναι ο χώρος που μας αφορά αφού δημιουργήθηκε για αυτό τον σκοπό, την προσθήκη νέας επέκτασης από τον χρήστη. Όλη η διαδικασία της δημιουργίας της νέας επέκτασης που περιγράφεται πιο κάτω, αφορά τον συγκεκριμένο χώρο. Ο κώδικας βασίζεται σε συγκεκριμένη δομή την οποία θα δημιουργήσουμε τώρα για να μπορούμε να προσθέσουμε κώδικα (η οποία ακολουθεί για να μπορεί να προστεθεί ο κώδικας) στα αρχεία στο σωστό χώρο. Πρώτα πρέπει να οριστεί ο χώρος ονομάτων (Namespace) που περιέχει την συλλογή της επέκτασης. Συνηθίζεται να ονομάζεται με την επωνυμία της εταιρίας, στην συγκεκριμένη περίπτωση θα ονομαστεί «Νamespace» αφού πρόκειται για ένα παραδειγματικό μοντέλο. Επομένως προκύπτει η δομή app/local/νamespace. Ακολούθως, ανάλογα με την λειτουργία που εκτελεί το μοντέλο, δίνεται ένα πιο περιγραφικό όνομα. Εδώ θέτεται ως «HelloWorld» και πλέον πρέπει να υπάρχει η παρακάτω συλλογή: app/local/namespace/helloworld. Συνεχίζοντας είναι απαραίτητη η δημιουργία του χώρου «etc» με σκοπό να διαμορφωθεί σταδιακά η επέκταση. Ετοιμάζεται το πρώτο αρχείο XML: app / code / local / Namespace / HelloWorld / etc / config.xml το οποίο θα ενημερώσει το Magento για την θέση των αρχείων της επέκτασης όπως και για την έκδοση που χρησιμοποιείται. Ο κώδικας που απαιτείται εμφανίζεται στην συνέχεια. 44

Το επόμενο βήμα είναι η ενεργοποίηση της επέκτασης, ενημερώνοντας το Magento για την ύπαρξη της μέσω ενός νέου αρχείου XML στον χώρο app / etc / modules. Το αρχείο αυτό μπορεί να πάρει οποιαδήποτε ονομασία αφού το σύστημα θα διαβάσει όλα τα αρχεία σε αυτό τον χώρο και θα εξετάσει μόνο το περιεχόμενο τους. Για λόγους ευκολίας θα βασιστούμε στην προηγούμενη ονοματολογία, έτσι έχουμε app / etc / modules / Namespace_HelloWorld.xml με το ακόλουθο περιεχόμενο: Σε αυτό το στάδιο έχουμε ένα ενεργοποιημένο μοντέλο που δεν εκτελεί κάποια διαδικασία αλλά είναι έγκυρο. Μπορούμε να επιβεβαιώσουμε την εγκυρότητα του από την σελίδα του διαχειριστή επιλέγοντας System > Configuration > Advanced > Advanced > Disable Modules Output και εμφανίζεται το αρχείο XML που δημιουργήσαμε ως enabled. Ενώ υπάρχει το έγκυρο module ακολουθεί η προσθήκη του νέου αντικειμένου στο μενού για να είναι δυνατός ο χειρισμός και η πρόσβαση στις λειτουργίες της επεκτάσεις από το βασικό μενού. Για να επιτευχθεί αυτό, χρειάζεται ένα νέο αρχείο XML στον φάκελο «etc» με όνομα adminhtml.xml. Είναι σημαντικό να τονίσουμε ότι στην περίπτωση αυτού του χώρου τα ονόματα των αρχείων δεν έχουν σημασία όπως αναφέρθηκε και πιο πάνω αφού διαβάζεται μόνο το περιεχόμενο τους. Αυτό γίνεται πιο εμφανές αν εστιάσουμε την προσοχή μας στον κώδικα όπου μπορούμε να δούμε ότι και στα δύο αρχεία ο κώδικας περικλείεται στο στοιχείο <config>. Η δημιουργία νέου αρχείου γίνεται για να είναι πιο ξεκάθαρη η ενέργεια που εκτελείται σε κάθε σημείο ξεχωριστά. 45

Το αρχείο app / code / local / Namespace / HelloWorld / etc / adminhtml.xml περιέχει τον ακόλουθο κώδικα: Στο σημείο αυτό πρέπει να προστεθεί κώδικας στο πρώτο αρχείο που δημιουργήθηκε, το config.xml. Ο κώδικας αυτός αφορά την ενημέρωση του συστήματος για την ύπαρξη του νέου αντικειμένου στο μενού και την τοποθεσία των σχετικών αρχείων. Είναι καλύτερα ο κώδικας να προστεθεί σε αυτό το σημείο και όχι στο adminhtml.xml καθώς το δεύτερο αφορά καθαρά την οπτική παρουσίαση του αντικειμένου. Για να ολοκληρωθεί το αντικείμενο στο μενού απομένουν άλλα δύο στάδια. Το πρώτο αφορά την δημιουργία της κλάσης Helper. Η κλάση αυτή θα είναι κενή αφού δεν θα εκτελεστεί κάποια ενέργεια, ωστόσο θεωρείται απαραίτητη για την σωστή λειτουργία της επέκτασης καθώς χωρίς αυτή θα υπάρξει σφάλμα. Αυτό συμβαίνει λόγω της αναφοράς σε αυτήν σε διάφορα σημεία του κώδικα που μπορεί να μην είναι φανερό αλλά το σύστημα απευθύνεται στην κλάση αυτή για ταυτοποίηση. Για την δημιουργία της κλάσης αυτής θα χρειαστεί νέος χώρος στην συλλογή με το όνομα Helper. Τέλος απαιτείται ένας διαχειριστής ενέργειας που θα εμφανίζει τον κενό διαθέσιμο χώρο για την λειτουργία της επέκτασης. Χωρίς τον διαχειριστή με την επιλογή του νέου αντικειμένου στο μενού επιλογών θα υπήρχε σφάλμα αφού δεν καθορίζονται κάπου αλλού οι ενέργειες που πρέπει να εκτελεστούν. Ο διαχειριστής ενεργειών πρέπει να αποθηκευτεί στον υποχώρο controllers και δεν θα εκτελεί κάποια συγκεκριμένη λειτουργία σε αυτό το παράδειγμα αλλά θα εμφανίζει τον κενό χώρο που μπορεί κάποιος να αξιοποιήσει μετέπειτα ανάλογα με τις ανάγκες της επέκτασης. 46

Το αρχείο config.xml συμπληρώνεται όπως φαίνεται στον κώδικα: Η κλάση helper βρίσκεται στην συλλογή app / code / local / Namespace / HelloWorld / Ηelper/ Data.php και η μορφή της είναι: 47

Ο διαχειριστής της ενέργειας για την απεικόνιση του κενού χώρου βρίσκεται στην ακολουθία app / code / local / Namespace / HelloWorld / controllers / HelloWorldController.php Στο σημείο αυτό, καταλήγουμε σε ένα πρότυπο επέκτασης που μπορεί να εξελιχθεί ανάλογα με τις λειτουργίες που θέλουμε να εκτελούνται. Πρώτα χρειάζεται να επιβεβαιώσουμε ότι απενεργοποιήθηκε η κρυφή μνήμη και στην συνέχεια με την είσοδο στη σελίδα του διαχειριστή μπορούμε να δούμε το πρότυπο που δημιουργήσαμε. 3.3 ΕΡΓΑΛΕΙΑ ΟΠΤΙΚΟΠΟΙΗΣΗΣ ΚΑΙ ΓΡΑΦΗΜΑΤΩΝ ΣΕ PHP (ΚΛΠ) Η PHP παρέχει πληθώρα εργαλείων για την οπτική αναπαράσταση δεδομένων και για την γενικότερη δημιουργία γραφημάτων. Μερικές βιβλιοθήκες είναι η phpchart,η pchart, η PHPGraphicLib,η phpmygraph και πολλές άλλες. Για την πτυχιακή αυτή εργασία χρησιμοποιήθηκε η βιβλιοθήκη JpGraph. Αποτελεί μια αντικειμενοστραφής βιβλιοθήκη δημιουργίας γραφημάτων και υποστηρίζεται από την έκδοση 5.1 και τις νεότερες. Στην έκδοση του Magento 1.8 που βασίζεται ο κώδικας της επέκτασης έχουμε την PHP 5.5. Η βιβλιοθήκη JpGraph προσφέρει μια ποικιλία δυνατοτήτων καθώς υποστηρίζει πολλά είδη γραφημάτων όπως κυκλικά διαγράμματα, διαγράμματα με μπάρες, γραφικές παραστάσεις κ.α. Είναι πολύ εύκολη στη χρήση με απλές και κατανοητές εντολές συμβάλλοντας έτσι στην άμεση ολοκλήρωση ενός γραφήματος με λίγες ενέργειες. Αρχικά πρέπει αν γίνει κλήση των αρχείων της βιβλιοθήκης που απαιτούνται για την εκτέλεση ενός συγκεκριμένου ερωτήματος. Σε κάθε περίπτωση, ανάλογα με την μορφή που θέλουμε να έχει το γράφημα καλούνται οι σχετικές μέθοδοι της βιβλιοθήκης. 48

Για την δημιουργία ενός γραφήματος κυκλικού διαγράμματος είναι απαραίτητα τα αρχεία jpgraph.php και jpgraph_pie.php, ενώ για την τρισδιάστατη μορφή χρειάζεται και το αρχείο jpgraph_pie3d.php. Πρέπει να γίνει καθορισμός των δεδομένων βάσει των οποίων θα σχεδιαστεί το γράφημα. Τα δεδομένα μπορεί να είναι πίνακας αριθμών που θα συμβολίζει πλήθος ομάδας και όχι ποσοστά αλλά και πίνακας δεδομένων με πεδίο που να καθορίζει την ομάδα. Στη συνέχεια, επιλέγεται το θέμα της κλάσης ανάλογα με τα χρώματα που θέλουμε να έχει το κυκλικό διάγραμμα. Υπάρχουν διάφορα θέματα με πιο έντονα ή πιο απαλά χρώματα που το διάγραμμα μπορεί να προσαρμοστεί ανάλογα με τις ανάγκες του χρήστη, αφού παρέχεται και η δυνατότητα επιλογής χρωμάτων για κάθε ομάδα. Στην περίπτωση επιλογής έτοιμου θέματος γίνεται χρήση της εντολής SetTheme() και υπάρχει η δυνατότητα επιλογής μεταξύ earth, pastel, sand και water. Εάν επιθυμείται ο καθορισμός χρώματος που θα αντιπροσωπεύει την κάθε ομάδα γράφουμε SetSliceColours() και είτε ορίζεται πίνακας με τα χρώματα είτε συμπληρώνονται οι κωδικοί των χρωμάτων. Ακολουθεί η δημιουργία του γραφήματος με νέο αντικείμενο PiePlot3D() όπου στην παρένθεση αναγράφεται το σύνολο δεδομένων. Έπειτα προστίθεται το αντικείμενο στο γράφημα και γίνεται η παρουσίαση του όπως φαίνεται στην εικόνα 3.3. Ακολουθεί η δομή του κώδικα για δημιουργία απλής τρισδιάστατης πίτας και της μορφής που εμφανίζεται. ΕΙΚΟΝΑ 3.3 Κυκλικό Γράφημα 49

Στην επέκταση για την οπτικοποίηση των δεδομένων της ομαδοποίησης των χρηστών χρειάστηκε να γίνει ανάγνωση της βάσης και η επεξεργασία να γίνει πάνω σε αυτήν. Δηλαδή για την είσοδο ορίσαμε τον πίνακα δεδομένων που καθορίζει το πλήθος της κάθε ομάδας, αντί να δώσουμε ένα πίνακα σταθερών τιμών. Για να επιτευχθεί αυτό, έγινε ανάγνωση του πίνακα από την βάση και μετέπειτα διαβάστηκε κάθε γραμμή ξεχωριστά και τοποθετήθηκε σε ένα νέο πίνακα του κώδικα. Ακολούθως έγινε κλήση του αντικειμένου για τον συγκεκριμένο πίνακα δεδομένων και εμφανίστηκε το τρισδιάστατο κυκλικό διάγραμμα (εικόνα 3.4). Πρέπει επίσης να επισημανθεί ότι στην περίπτωση του Magento χρειάζεται να προσθέσουμε την βιβλιοθήκη JpGraph. Η βιβλιοθήκη αποθηκεύεται στον φάκελο lib της πλατφόρμας και όπως μπορεί κανείς να παρατηρήσει είναι διαφορετικό το μονοπάτι για την εύρεση των αρχείων που απαιτούνται. 50

ΕΙΚΟΝΑ 3.4 Κυκλικό Γράφημα Ομαδοποίησης Για την απεικόνιση του γραφήματος της τρισδιάστατης πίτας στη σελίδα του διαχειριστή, δημιουργήθηκε ένα νέο υποαντικείμενο στον κενό χώρο. Σκοπός του αντικειμένου αυτού, είναι να ενημερώνεται με βάση τον πίνακα των ομαδοποιημένων πελατών και να μπορεί ο διαχειριστής να βλέπει τα ποσοστά που αντιπροσωπεύουν το πλήθος μιας κατηγορίας με ένα γράφημα. Για την υλοποίηση του αντικειμένου στον κενό χώρο και την εμφάνιση της πίτας δημιουργήθηκαν νέα αρχεία στον φάκελο Block της επέκτασης αφού αυτός ο χώρος απευθύνεται στην οπτικοποίηση. Το πρώτο αρχείο καθορίζει το αντικείμενο και ονομάζει την επιλογή για την εμφάνιση του γραφήματος. Το δεύτερο αρχείο αφορά καθαρά την εμφάνιση που έχει ο χώρος του αντικειμένου και εκεί εμπεριέχεται ο κώδικας για την ανάγνωση του πίνακα και την απεικόνιση του γραφήματος όπως παρουσιάστηκε πιο πάνω. ΕΙΚΟΝΑ 3.5 Επιλογή Visualization 51

3.4 ΣΥΝΔΕΣΗ ΜΕ ΤΗ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ ΤΟΥ ΜAGENTO Η PHP ως γλώσσα προγραμματισμού παρέχει τον δικό της τρόπο για σύνδεση με μια βάση δεδομένων και την εκτέλεση ερωτημάτων. Η χρήση της γλώσσας αυτής στην πλατφόρμα του Magento, διαφέρει, καθώς η δομή και οι παρεχόμενες εντολές έχουν ενημερωθεί με βάση τις απαιτήσεις του συστήματος. Η σύνδεση με τη βάση του Magento μπορεί να επιτευχθεί με τη χρήση των εντολών που έχουν προκαθοριστεί αρκεί να γνωρίζουμε καλά την δομή τους. Υπάρχουν τέσσερα βασικά στάδια για να επιτευχθεί η ανάγνωση πίνακα από την βάση του Magento και η αποθήκευση των στοιχείων του σε μορφή που να μπορεί να αξιοποιηθεί. Πρώτο βήμα λοιπόν, είναι να πάρουμε τους πόρους των μοντέλων. Αυτό σημαίνει ότι υπάρχει δυνατότητα πρόσβασης στον κώδικα που επικοινωνεί με την βάση. Όταν δηλαδή εκτελεστεί η εντολή $resource = Mage:: getsingleton ('core/resource') τότε μπορούν να εκτελεστούν ενέργειες στη βάση δεδομένων του συστήματος. Ακολούθως, απαιτείται να καθοριστεί το είδος σύνδεσης που επιθυμούμε να γίνει. Εάν θέλουμε να διαβάσουμε δεδομένα από την βάση τότε θα δώσουμε εντολή για ανάγνωση των εγγραφών ενώ στην περίπτωση που επιθυμούμε τροποποίηση των στοιχείων, η εντολή αφορά την εγγραφή στην βάση. Διευκρινίζουμε επομένως το είδος σύνδεσης με την εντολή $resource getconnection('core_read') γιατί σκοπός μας είναι να πάρουμε στοιχεία από κάποιο πίνακα της βάσης και όχι να κάνουμε αλλαγή. Ακολουθεί το σημαντικότερο βήμα αυτής της διαδικασίας που είναι ο καθορισμός ερωτήματος και διευκρίνιση του πίνακα στον οποίο θα εκτελεστεί. Η εντολή $query = 'SELECT * FROM '. $resource gettablename (customer_segmentation) θέτει το γενικό ερώτημα και θα πάρει σαν αποτέλεσμα όλα τα πεδία του πίνακα customer_segmentation που βρίσκονται αποθηκευμένα στην βάση. Τέλος για να ολοκληρωθεί η διαδικασία ανάκτησης δεδομένων πρέπει να εκτελεστεί το ερώτημα και να αποθηκευτεί το αποτέλεσμα σε ένα νέο πίνακα. Αυτό επιτυγχάνεται με την ενέργεια $results = $readconnection->fetchall($query). Συνολικά η διαδικασία εμφανίζεται παρακάτω με την μεταβλητή results να περιέχει τα στοιχεία του πίνακα : 52

Για την εμφάνιση του πίνακα με τα στοιχεία των πελατών στην σελίδα του διαχειριστή δημιουργήθηκε υποαντικείμενο όπως και στην περίπτωση της απεικόνισης του γραφήματος. Όταν ο διαχειριστής επιλέξει την επιλογή «Clusters» (εικόνα 3.6) τότε εκτελείται το ερώτημα και εμφανίζονται οι εγγραφές. Η διαδικασία αυτή εκτελείται από ένα νέο αρχείο που διαχειρίζεται την συγκεκριμένη επιλογή. ΕΙΚΟΝΑ 3.6 Επιλογή Clusters 53

Κ Ε Φ Α Λ Α Ι Ο 4 : Τ Ο Ο Π Τ Ι Κ Ο Π Ο Ι Η Σ Η Σ Υ Π Ο Σ Υ Σ Τ Η Μ Α Δ Ε Δ Ο Μ Ε Ν Ω Ν Ε Π Ι Χ Ε Ι Ρ Η Μ ΑΤ Ι Κ Η Σ Ε ΥΦ Υ Ϊ Α Σ 54

ΤΟ ΥΠΟΣΥΣΤΗΜΑ ΟΠΤΙΚΟΠΟΙΗΣΗ ΔΕΔΟΜΕΝΩΝ ΕΠΙΧΕΙΡΗΜΑΤΙΚΗΣ ΕΦΥΪΑΣ 4.1 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ ΥΠΟΣΥΣΤΗΜΑΤΟΣ (ΔΟΜΗ) Η επέκταση που αναπτύχθηκε βασίζεται στο μοντέλο MVC στα πλαίσια του συστήματος του Magento. Με βάση το μοντέλο αυτό ο κώδικας χωρίζεται σε κατηγορίες ανάλογα με τις ενέργειες που εκτελεί. Το μέρος που αφορά την οπτική αναπαράσταση των δεδομένων βρίσκεται στον φάκελο Block. Στο χώρο αυτό γίνεται η δημιουργία των καρτελών που εμφανίζονται στον χώρο της σελίδας με την επιλογή του αντικειμένου από το βασικό μενού. Επίσης επιτυγχάνεται η σύνδεση με την βάση του συστήματος και η οπτική αναπαράσταση των δεδομένων. Στο αρχείο edit.php που βρίσκεται στο Rfm / Analysis / Block / Adminhtml / Form γίνεται η δημιουργία του βασικού χώρου της σελίδας και ορίζεται ο διαχειριστής ενεργειών. Ακολουθεί ο υποφάκελος Edit στον οποίο περιλαμβάνεται ο κώδικας διαχείρισης των καρτελών που εμφανίζονται στον χώρο της σελίδας. Στο αρχείο Tabs.php βλέπουμε τον καθορισμό των καρτελών που εμφανίζονται σαν μενού επιλογών της επέκτασης. ΤΙΤΛΟΣ 55

Οι ενέργειες απεικόνισης του γραφήματος της πίτας που βασίζεται στην ανάγνωση του πεδίου Recency εκτελούνται σε ένα ξεχωριστό αρχείο php που ονομάζεται Visualization.php και βρίσκεται στον υποφάκελο Τab. Στο φάκελο αυτό βρίσκεται και το αρχείο της άλλης καρτέλας Clusters.php που υλοποιεί την σύνδεση με την βάση και την οπτική προβολή των εγγραφών του πίνακα. Ο κώδικας των καρτελών αναλύεται πιο κάτω. Καθορισμός πεδίων πίνακα: Ανάγνωση εγγραφών πίνακα: 56

Εμφάνιση πεδίων στην σελίδα: 57

Σύνδεση με την βάση δεδομένων του Magento, ανάγνωση εγγραφών πεδίου Recency και προβολή γραφήματος στην σελίδα με μορφή τρισδιάστατου κυκλικού διαγράμματος: 4.2 ΕΓΚΑΤΑΣΤΑΣΗ ΚΑΙ ΧΡΗΣΗ ΤΗΣ ΕΠΕΚΤΑΣΗΣ H επέκταση που αναπτύχθηκε αφορά την οπτική απεικόνιση των δεδομένων των πελατών ενός ηλεκτρονικού καταστήματος και την εμφάνιση γραφήματος πίτας για την παρατήρηση των κατηγοριών που χωρίζονται οι πελάτες βάσει διαφόρων χαρακτηριστικών. Όλα τα απαραίτητα αρχεία της επέκτασης συμπεριλαμβάνονται στον συμπιεσμένο φάκελο RfmAnalysis.zip. Με την αποσυμπίεση του φακέλου εμφανίζονται οι υποφακέλοι code και etc (εικόνα 4.1). 58

ΕΙΚΟΝΑ 4.1 Φάκελος Επέκτασης RfmAnaysis Για τη δυνατότητα εγκατάστασης της επέκτασης πρέπει να βρίσκεστε στον χώρο magento / htdocs / app. Αρχικά θα ασχοληθούμε με τον φάκελο code. Αν ανοίξετε τον φάκελο αυτό περιέχεται ένας υποφάκελος με το όνομα community. Το ίδιο μονοπάτι υπάρχει ήδη στον φάκελο apps. Eπομένως ακολουθείτε την σειρά magento / htdocs / app / code / community και αντιγράφετε τον φάκελο Rfm που περιέχεται σε αυτόν. Χάρη στο μοντέλο MVC η επέκταση είναι με τέτοιο τρόπο δομημένη που δεν χρειάζεται να γίνει διαχωρισμός πολλών αρχείων κι αυτό καθιστά την διαδικασία εγκατάστασης πιο απλή. Το επόμενο στάδιο είναι να ακολουθήσετε τον φάκελο etc μέχρι να βρείτε ένα αρχείο xml με το όνομα Rfm-Analysis.xml. Το μονοπάτι μέχρι αυτό το αρχείο είναι το εξής: magento / htdocs / app / etc / modules και πρέπει να το ακολουθήσετε στην εγκατάστασή σας. Το μόνο που απομένει τώρα είναι να το αντιγράψετε και η εγκατάσταση σας έχει ολοκληρωθεί. Σε αυτό το σημείο εάν συνδεθείτε με τη σελίδα του διαχειριστή του καταστήματος πρέπει να εμφανίζεται στο βασικό μενού η επιλογή RFM Analysis. ΕΙΚΟΝΑ 4.2 Eπιλογή RfmAnalysis Με την επιλογή RFM Analysis εμφανίζεται η υποεπιλογή Analysis. ΕΙΚΟΝΑ 4.3 Υποεπιλογή Analysis 59

Η αρχική σελίδα που θα εμφανιστεί με το άνοιγμα του αντικειμένου θα είναι το κυκλικό διάγραμμα που εξάγεται από τα δεδομένα ομαδοποίησης των πελατών. Σε αυτό το σημείο υποθέτουμε ότι υπάρχουν οι απαραίτητες πληροφορίες. Με την επιλογή της καρτέλας Clusters από το μενού επιλογών στα αριστερά εμφανίζεται ο πίνακας με τα στοιχεία των πελατών όπως παρουσιάζεται στην εικόνα 4.5. ΕΙΚΟΝΑ 4.4 Επιλογή Visualization ΕΙΚΟΝΑ 4.5 Eπιλογή Clusters 60

Στην περίπτωση που δεν υπάρχουν τα απαραίτητα δεδομένα, ο χώρος του γραφήματος θα είναι άδειος όπως στην εικόνα 4.6 και ο πίνακας θα εμφανίζει τα πεδία χωρίς όμως εγγραφές,όπως φαίνεται στην εικόνα 4.7, αφού δεν είχε αποτέλεσμα στην σύνδεση με τα δεδομένα. ΕΙΚΟΝΑ 4.6 Κενός χώρος γραφήματος ΕΙΚΟΝΑ 4.7 Κενός Πίνακας Δεδομένων 61