Hilfreiche Links:
- Für Benutzer (oder Entwickler): https://docs.shopware.com/en/shopware-6-en (Erste Schritte, Migration, Konfiguration, Plugins, Tutorials & FAQs, Update Guides, Sicherheitsupdates, Cloud)
- Für Entwickler: https://docs.shopware.com/en/shopware-platform-dev-en (System guide, Developer guide, Theme guide, API guide, Store API guide, SalesChannel-API, App system guide, HowTos, References and internals)
- https://8mylez.com/shopware-wiki/shopware-6/ (Top Shopware Agentur die immer neueste Änderungen festhält)
Bei dem Sprung von SW 5 zu SW 6 gab es ein paar Änderungen:
- Bei den Templates wurde von Smarty auf Twig gewechselt
- Der Fokus wird viel stärker auf das Framework Symfony gelegt
- SW 6 ist deutlich API-basierter (https://docs.shopware.com/en/shopware-platform-dev-en/admin-api-guide)
- Es können verschiedene Shop-Kanäle unabhängig voneinander über das gleiche System angebunden werden
- Die Optik des Backends wurde komplett überarbeitet und modernisiert
- Backend Oberflächentechnologie wurde von Sencha ExtJs4 auf Vue.js umgestellt
- IDs in der Datenbank wurden auf Hex umgestellt
- Verwendung von Sass statt less
Installation der Development-Version:
https://docs.shopware.com/en/shopware-platform-dev-en/system-guide/installation
- Systemanforderungen können aus der Shopware-Doku entnommen werden
- bei der Development SW 6 Variante handelt es sich um ein Docker-Sync basierendes Projekt,
es sollte also sichergestellt sein, dass Docker auf dem Rechner installiert ist und du die entsprechenden Rechte hast
- Auschecken des Git Projekts:
git clone https://github.com/shopware/development.git
cd development
git clone https://github.com/shopware/platform.git
- Ausführen des Docker-Containers:
./psh.phar docker:start
- Bash im Docker-Container:
./psh.phar docker:ssh
- Hier kann man sich alle verfügbaren Befehle ausgeben lassen:
bin/console
- Ausführen der Installation:
./psh.phar install
- Nach der Installation, sofern die Default-Einstellungen nicht angepasst wurden:
Frontend: APP_URL in der .env Datei (localhost:8000)
Shopware-Backend: localhost:8000/admin
MYSQL DB: localhost:8001
Installation der Community-Version:
- Auf der offiziellen Shopware Seite stehen zudem noch mehrere Community-Versionen für verschiedene Betriebssysteme zur Verfügung:
Themes:
- Möchte man Templates anpassen, so bietet es sich an, ein neues Theme anzulegen
- In SW 6 werden neue Themes in den gleichen Ordner wie PlugIns abgelegt: > custom > plugins
- Ein neues Theme kann im Docker Container angelegt werden. Der Vorteil ist hierbei, dass die Grundstruktur nicht mehr manuell angelegt werden muss
bin/console theme:create "Themename"
- Anpassen eines Templates:
Twig Guide: https://twig.symfony.com/
Heraussuchen des Pfades des Templates im platform-Ordner, das angepasst werden soll (Elternemelent)
In diesem Beispiel der Footer:
{% sw_extends '@Storefront/layout/footer/footer.html.twig' %}
Übernehmen des entsprechenden Blocks, der angepasst werden soll:
{% block layout_footer_navigation_columns %}
{% endblock %}
Ausgabe des Codes des Elternelements:
{{ parent() }}
Ausgabe der gesamten Struktur und alle Variablen, auf die das aktuelle Template zugreifen kann:
{{ dump() }}
Einbinden von Icons:
{% sw_icon 'money-card' %}
Einbinden einer Route im Template:
In diesem Beispiel die Seite zum Ändern der Zahlungsarten im Kundenaccount. Man sollte nicht die direkte URL (./account/payment) verwenden, falls sich diese mal ändern sollte, sondern den Namen der jeweiligen Route Diesen findet man im Controller-File der Seite, auf die man verlinken möchte zB. @Route(„/account/payment“, name=“frontend.account.payment.page“, options={„seo“=“false“}, methods={„GET“})
href="{{path('frontend.account.payment.page')}}"
PlugIns:
Plugin Basics: https://docs.shopware.com/en/shopware-platform-dev-en/developer-guide/plugin-base?category=shopware-platform-dev-en/developer-guide
HowTos: https://docs.shopware.com/en/shopware-platform-dev-en/how-to
- Ein neues PlugIn kann im Docker Container angelegt werden. Der Vorteil ist hierbei, dass die Grundstruktur nicht mehr manuell angelegt werden muss
bin/console plugin:create "PlugInname"
- Installieren und Aktivieren eines PlugIns:
bin/console plugin:refresh
bin/console plugin:install --active "PlugInname"
Generieren einer neuen ID:
Uuid::randomHex()
HTML Code Rendern:
https://twig.symfony.com/doc/2.x/filters/raw.html
- Es kommt vor, dass man beispielsweise bei Custom Fields HTML Tags verwendet hat
- Um diese in den Templates korrekt auszugeben, gibt es eine spezielle Pipe: | raw