Blog

Δημιούργια Magento Modules

Magento-Extensions
Blog / Magento

Δημιούργια Magento Modules

Πως δημιουργείται μια Magento Επέκταση;

Ένας σημαντικός παράγοντας στη πλατφόρμα Magento, καθοριστικός για τη λειτουργία του, είναι οι επεκτάσεις ή modules. Σε προηγούμενο άρθρο αναφέρεται η σημασία και όσα πρέπει να γνωρίζει κανείς για τις επεκτάσεις. Στο άρθρο “Πόσο σημαντικά είναι τα Magento Modules;” βρίσκονται αναλυτικές πληροφορίες. Στη πραγματικότητα, το κόστος των επεκτάσεων, είναι καθοριστικό για την εξέλιξη ενός καταστήματος Magento και στρέφονται κάποιοι στη δημιουργία εξατομικευμένων επεκτάσεων. Πόσο όμως εύκολο είναι αυτό και ποια τα οφέλη αλλά και οι παγίδες που ίσως κρύβονται;

Τι είναι μια επέκταση Magento;

Μια επέκταση Magento είναι ένα πακέτο κώδικα που είναι υπεύθυνο για συγκεκριμένη λειτουργικότητα στο Magento. Από τεχνική άποψη, είναι ένας κατάλογος που περιέχει αρχεία PHP και XML σε μπλοκ, ελεγκτές, βοηθούς και μοντέλα που σχετίζονται με ένα συγκεκριμένο επιχειρηματικό χαρακτηριστικό. Ενώ τόσο μια λειτουργική μονάδα όσο και μια επέκταση είναι παρόμοια θεωρητικά, ο όρος ενότητα αναφέρεται συχνά σε κώδικα πυρήνα, δηλαδή κώδικα που αποτελεί μέρος του ίδιου του Magento. Αντίθετα, μια επέκταση αναφέρεται σε ένα στοιχείο που μπορεί να επεκτείνει και να προσαρμόσει τη λειτουργικότητα του Magento. Οι επεκτάσεις μπορούν να διανεμηθούν και να εγκατασταθούν σε πολλά καταστήματα για να βοηθήσουν στην επίτευξη συγκεκριμένης λειτουργικότητας.

Δυνατότητα επεκτασιμότητας της Magento.

Όλα αυτά τα χρόνια, η κύρια εστίαση πίσω από την ανάπτυξη του Magento ήταν η μεγιστοποίηση της επεκτασιμότητας του. Στον πυρήνα του μοντέλου ανάπτυξης του Magento δε, βρίσκεται η πρακτική επέκτασης του βασικού κώδικα. Αυτή η στρατηγική βοηθά στη διατήρηση της πυρήνα του κώδικα του Magento και επιτρέπει στους εμπόρους και τους προγραμματιστές να προσαρμόσουν το Magento στις απαιτήσεις τους. Ο κώδικας του Magento ακολουθεί τα περισσότερα από τα Πρότυπα Κωδικοποίησης PSR2 για την PHP. 

Επιπλέον, το Magento βασίζεται επίσης σε πολλές γνωστές αρχιτεκτονικές δομές και ενσωματώνει αναγνωρισμένες και δοκιμασμένες δομές λογισμικού που ονομάζονται μοτίβα σχεδίασης. Από αυτά, το MVC (μοντέλο-προβολή-ελεγκτής) είναι αυτό που σχετίζεται περισσότερο με την ανάπτυξη μιας επέκτασης. Η χρήση αυτών των δομών και μοτίβων σχεδίασης βοηθά τους προγραμματιστές της PHP να προσανατολιστούν σε αναπτυξιακά ζητήματα που θα μπορούσαν να προκύψουν κατά την ανάπτυξη επεκτάσεων. 

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

Οι επεκτάσεις στο Magento είναι καθοριστικές για τη λειτουργία του.

Είδη επεκτάσεων Magento.

  • Το Magento διαθέτει μια επίσημη αγορά που ονομάζεται Magento Marketplace, όπου οι χρήστες της πλατφόρμας μπορούν να αγοράσουν και να κατεβάσουν επεκτάσεις και θέματα τρίτων για να επεκτείνουν τα ηλεκτρονικά τους καταστήματα. Η Magento διαθέτει ένα ισχυρό Πρόγραμμα Ποιότητας Επέκτασης που συνδυάζει την τεχνογνωσία της Magento, τις αναπτυξιακές οδηγίες και τα εργαλεία επαλήθευσης για να διασφαλίσει ότι όλες οι επεκτάσεις στην αγορά της πληρούν τα πρότυπα κωδικοποίησης και ακολουθούν τις βέλτιστες πρακτικές. 
  • Out-of-the-box επεκτάσεις. Εκτός από τις επεκτάσεις στην αγορά του, το Magento διατίθεται με επιπλέον επεκτάσεις τρίτων. Αυτές οι επεκτάσεις ονομάζονται “Επεκτάσεις Πακέτο προμηθευτών”. Έχουν δοκιμαστεί διεξοδικά πριν συμπεριληφθούν σε οποιαδήποτε υποστηριζόμενη έκδοση του Magento βέβαια για τη ποιότητα τους. Μερικές από τις “Επεκτάσεις Πακέτο Προμηθευτών” που θα βρίσκονται συσκευασμένες με τις πιο πρόσφατες εκδόσεις Magento είναι το Amazon Pay, το dotdigital, το Klarna και το Vertex.
  • Προσαρμοσμένες επεκτάσεις. Πολλοί ιδιοκτήτες καταστημάτων συχνά υπερβάλλουν χρησιμοποιώντας επεκτάσεις τρίτων, καθώς είναι φθηνές και εύκολα προσβάσιμες. Ωστόσο, η υπερβολική χρήση τέτοιων επεκτάσεων και ειδικά η χρήση επεκτάσεων με κακή κωδικοποίηση μπορεί να παρεμποδίσει την απόδοση ενός καταστήματος. Συνιστάται ανεπιφύλακτα η χρήση προσαρμοσμένων επεκτάσεων για αποφυγή τέτοιας έκβασης. Σε περιπτώσεις όπου η προσαρμοσμένη δημιουργία δεν είναι εφικτή, οι έτοιμες προς χρήση επεκτάσεις τρίτων πρέπει να ελέγχονται πριν από την ανάπτυξη σε ζωντανά καταστήματα και να τροποποιούνται ώστε να χρησιμοποιούν μόνο την απαιτούμενη λειτουργικότητα. 

Πώς δημιουργείται μια προσαρμοσμένη επέκταση στο Magento 2.

Η ανάπτυξη επέκτασης Magento 2 είναι μεγάλη είδηση ​​στην αγορά. Ήδη το Magneto 2 έχει βοηθήσει χιλιάδες καταστήματα ηλεκτρονικού εμπορίου παρέχοντας εμπειρίες ανώτερου επιπέδου στους πελάτες τους. Είναι πιο φιλικό προς τα κινητά από το Magento 1. Το Magento 2 έχει αναπτυχθεί για να υποστηρίζει PWA (Progressive Web Applications). Λειτουργεί επίσης ως μια εξαιρετικά ανεπτυγμένη πλατφόρμα που παρέχει: ισχυρό μάρκετινγκ, ομαλή διαχείριση εργαλείων καταλόγου, οπτικό merchandising, ενημερώσεις σταδίου και προεπισκόπησης και βελτιστοποίηση μηχανών αναζήτησης. Πρόσφατα δε, πραγματοποιήθηκε ανάπτυξη επεκτάσεων Magento 2.

  1. Πρέπει να υπάρχει εγκατεστημένη η πιο πρόσφατη έκδοση Magento 2 στο σύστημα. 
  2. Να είναι απενεργοποιημένη η προσωρινή μνήμη Magento.
  3. Επιλογή λειτουργίας προγραμματιστή: Επιτρέπει τον έλεγχο όλων των σφαλμάτων.

Η δημιουργία των Magento Modules ανοίγει νέους δρόμους ανάπτυξης.

Βήματα για την ανάπτυξη Magento Module.

Βήμα 1: Δημιουργία αρχείων και φακέλων επέκτασης για εγκατάσταση και εγγραφή. Δημιουργία του φακέλου και της επέκτασης: 

  app/code/Fixit/HelloWorld

Σε περίπτωση που δεν υπάρχει φάκελος κώδικα, μπορεί να δημιουργηθεί χειροκίνητα. Εδώ, το όνομα της επέκτασης είναι Helloworld και ο χώρος ονομάτων της επέκτασης είναι ο φάκελος Fixit. 

Τώρα με έναν άλλο κωδικό, πρέπει να δημιουργηθεί ένα αρχείο module.XML στο φάκελο “Helloworld”. Για να εγγραφεί αυτή η ενότητα, πρέπει να δημιουργηθεί ένα αρχείο register.php στον ίδιο φάκελο helloworld. Μετάβαση στο Magento 2 root και, στη συνέχεια, εκτέλεση της εντολής αναβάθμισης (upgrade command). 

  app/code/Fixit/HelloWorld/etc/module.xml

Και το περιεχόμενο:

<?xml version=”1.0″?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:Module/etc/module.xsd”>
    <module name=”Fixit_HelloWorld” setup_version=”1.0.0″>
    </module>
</config>

Βήμα 2: Δημιουργήστε αρχείο etc/registration.php

  app/code/Fixit/HelloWorld/registration.php

Και το περιεχόμενο:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
‘Fixit_HelloWorld’,
__DIR__
);

Βήμα 3: Ενεργοποίηση της μονάδας:

  php bin/magento module:enable Fixit_HelloWorld

Η ενότητα θα πρέπει να είναι διαθέσιμη τώρα. Μετά από αυτό το βήμα, όταν ανοίγει ο ιστότοπος στο πρόγραμμα περιήγησης, θα ληφθεί ένα σφάλμα λέγοντας “Αναβαθμίστε τη βάση δεδομένων σας”:

  php bin/magento setup:upgrade

Στη συνέχεια, επειδή θα φαίνεται κατεστραμμένος ο ιστότοπος:

php bin/magento setup:static-content:deploy

Μετά την ολοκλήρωση της ανάπτυξης, η επέκταση φαίνεται από το backend στο System Configuration -> Advanced -> Disable Modules Output. Τώρα, θα δημιουργηθεί ένας ελεγκτής για δοκιμή ενότητας. Αλλά πρίν, θα δημιουργηθεί μια διαδρομή για την ενότητα HelloWorld. Οι διαδρομές στο magento χωρίζονται σε 3 μέρη: Όνομα διεύθυνσης διαδρομής, ελεγκτής και δράση όπως το ακόλουθο παράδειγμα:

http://fixit.com/index.php/frontname/controller/action

Για να προστεθεί διαδρομή θα πρέπει να δημιουργηθεί ένα routes.xml αρχείο:

app/code/Fixit/HelloWorld/etc/frontend/routes.xml

δεδομένου ότι αυτή είναι μια διαδρομή frontend, προστίθεται στο frontend/ φάκελο αλλιώς πρέπει να να προστεθεί στο φάκελο adminhtml/

Το περιεχόμενο:

<?xml version=”1.0″ ?>
<config xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”urn:magento:framework:App/etc/routes.xsd”>
    <router id=”standard”>
        <route frontName=”helloworld” id=”helloworld”>
            <module name=”Fixit_HelloWorld”/>
        </route>
    </router>
</config>

Πρέπει να δημιουργεί ακόμα ένας φάκελος:

app/code/Fixit/HelloWorld/Controller/Index/Test.php

και περιεχόμενο:

<?php
namespace Fixit\HelloWorld\Controller\Index;

class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;

public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}

public function execute()
{
echo “Hello World”;
exit;
}
}

Το Url πρέπει να έχει αυτή τη μορφή:

http://<yourhost.com>/helloworld/index/test

 

 

 

Δημιουργήθηκε η πρώτη επέκταση Magento, η οποία όταν ανοιχτεί εμφανίζει: “Hello World!”. Ωστόσο το πεδίο των επεκτάσεων magento είναι τεράστιο και υπάρχουν πολλά για να μάθει κανείς ώστε να προχωρήσει στην ανάπτυξη τους. 

 

Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare