Skip to content
Snippets Groups Projects
Select Git revision
  • ce50ff6fa673c488ee4d5224e973fae0d827b577
  • master default protected
2 results

magento-code-design

  • Clone with SSH
  • Clone with HTTPS
  • Vorbereitung

    Für die Lösung der Aufgaben benötigst du lediglich einen Editor. Es ist empfohlen eine Magento-Instanz zu erstellen, um entsprechende Code-Vervollständigung in der IDE nutzen zu können. Wenn Du Deinen Code auf Lauffähigkeit testen möchtest, so solltest du auch die optionalen Setup-Schritt durchführen.

    Setup Requirements

    • PHP 7.3 oder höher
    • composer
    • Optional MySQL 5.7 oder höher
    • Optional ElasticSearch 7
    • Optional Web-Server: nginx oder Apache

    Magento-Projekt erstellen

    Erzeuge ein neues Projekt im Verzeichnis ./magento mit den folgenden Befehlen

    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition magento 

    Optional: Führe die Installation von Magento durch

    mysql -e "DROP DATABASE IF EXISTS ws_code_design"
    mysql -e "CREATE DATABASE ws_code_design"
    
    cd magento
    bin/magento setup:install \
        --base-url="http://ws-code-design.test/" \
        --base-url-secure="https://ws-code-design.test/" \
        --use-secure-admin=1 --use-rewrites=1 --use-secure=1 \
        --db-host=localhost --db-name=ws_code_design --db-user=root --db-password=root \
        --backend-frontname=admin \
        --admin-firstname=admin --admin-lastname=admin --admin-email=v.justus@techdivision.com \
        --admin-user=admin --admin-password=admin123 \
        --language=en_US --currency=EUR --timezone=Europe/Berlin \
        --elasticsearch-host=localhost --elasticsearch-port=9207 \
        --cleanup-database
    cd -

    Erstelle eine vHost-Konfiguration für die soeben erstellte Magento-Instanz.

    Aufgaben

    Die folgenden Aufgaben werden in kleinen Gruppen bearbeitet. Die Lösung wird anschließend von der Gruppe vorgestellt. Die Aufgabe muss theoretisch gelöst werden. Entscheidend ist dabei die Strukturierung des Codes – nicht dessen Funktionalität. Nach Möglichkeit sollte der Code weitestgehend geschrieben, jedoch nicht getestet werden.


    Aufgabe 1

    WER Als Shop-Betreiber möchte ich
    WAS meine Bestellungen exportieren können
    WARUM um die Daten in einem externen System weiterverarbeiten zu können

    UACs:

    1. Mit dem Befehl bin/magento workshop:order:export kann ich eine Bestellung exportieren
    2. Die Exporte werden im Verzeichnis var/export/order/ abgelegt
    3. Der Export erfolgt als JSON-Datei mit dem Dateinamen .json

    INFO: Das JSON-Format ist näher definiert und kann vom Entwickler frei gewählt werden. Es müssen alle relevanten Informationen der Bestellung (Lieferadresse, Rechnungsadresse, Positionen und Summen) enthalten sein.

    Vorlage: Nutze für Dein Modul die Vorlage ./module-template. Kopiere dazu den Inhalt des Ordners in das Verzeichnis ./magento/app/code.

    cp -R ./module-template/* ./magento

    Zeit: 45 min


    Aufgabe 2

    WER Als Shop-Betreiber möchte ich
    WAS meine Bestellungen über die Admin-UI von Magento exportieren können
    WARUM um die Daten in einem externen System weiterzuverarbeiten

    Blocked by: Aufgabe 1

    UACs:

    1. Im Admin UI von Magento befindet sich auf der Detailansicht einer Bestellung eine zusätzlicher Button mit der Aufschrift “Export [JSON]”
    2. Beim Klick auf den Button, wird der Export der Bestellung durchgeführt, dabei wird die Logik aus Aufgabe 1 wiederverwendet
    3. Der Benutzer bekommt die Meldung zu sehen, dass die Bestellung exportiert wurde.

    Vorlage: Nutze das von Dir in Aufgabe 1 erstellt Modul.
    Zeit: 30 min


    Aufgabe 2-a

    Führe die Aufgabe 2 erneut durch, verwende dabei jedoch die Musterlösung der Aufgabe 1 als Ausgangslage.

    Zeit: 30 min


    Aufgabe 3

    WER Als Shop-Betreiber möchte ich, dass
    WAS meine Bestellungen automatisch alle 15 Minuten exportiert
    WARUM um die Daten in einem externen System weiterverarbeiten zu können

    Blocked by: Aufgabe 1

    UACs:

    1. Es existiert ein Cronjob, welcher alle 15 Minuten ausgeführt wird
    2. Der Cronjob exportiert alle Bestellungen, der letzten 15 Minuten
    3. Für den Export wird die Logik aus Aufgabe 1 wiederverwendet

    Vorlage: Nutze das von Dir in Aufgabe 1 erstellt Modul.
    Zeit: 30 min


    Aufgabe 3-a

    Führe die Aufgabe 3 erneut durch, verwende dabei jedoch die Musterlösung der Aufgabe 1 als Ausgangslage.

    Zeit: 30 min