Relaunch für das Shopware-Universum

Shopware 5.5: verbesserte Performance, Internationalisierung und Usability
Keine Kommentare

Die neueste Shopware-Version 5.5 wartet mit vielen neuen Features auf: verbesserte Performance und der Wegfall der Verschlüsselung auch für Drittanbieter-Plug-ins. Neben einigen Quellcodebeispielen für die Verwendung von neuen Funktionen in den eigenen Plug-ins werden die Änderungen vorgestellt.

In die Shopware-Version 5.5 sind wieder viele Erweiterungen und Optimierungen hineingeflossen. Die Änderungen lassen sich grob in die drei Bereiche Performance, SEO/Internationalisierung und Usability zusammenfassen.

Performance

Unter dem Punkt Performance hat sich in dieser Version am meisten getan. Der Check-out-Prozess, insbesondere der Warenkorb, wurde einem gründlichen Profiling unterzogen. Durch die daraus resultierenden Optimierungen konnte der Warenkorb somit um den Faktor vier schneller gemacht werden. Zusätzlich kann er nun auch mit bis zu tausend Positionen noch verwendet werden. Das ist sicherlich für viele B2B-Onlineshop-Betreiber sehr interessant. Viele Shopbetreiber haben die Elasticsearch Integration für die Storefront in der Version 5.1 kennen und schätzen gelernt. Mit dieser Integration ist es ohne Weiteres möglich, Shops mit Millionen von Artikeln zu betreiben.

Die Administration im Shop-Backend ging leider nicht ganz so leicht von der Hand. Da ist es nur konsequent, dass Elasticsearch nun auch den Weg ins Backend gefunden hat. Hierfür werden nun weitere ES-Index-Einträge geschrieben. Dadurch können über Elasticsearch große Artikel-, Kunden- und Bestellmengen gefiltert und durchsucht werden. Das hat positive Auswirkungen auf die allgemeine Suche sowie auf die jeweiligen Übersichtsmodule. Die Arbeit für den Anwender wird durch die schnellen Reaktionszeiten von deutlich unter einer Sekunde, selbst bei Millionen von Datensätzen, effizienter.

Lange Wartezeiten im Backend bei großen Datenmengen sind damit ad acta gelegt. Zusätzlich gibt es noch weitere Optimierungen im Cachehandling. Die erste erwähnenswerte Verbesserung ist die Optimierung des CacheWarmer. Dieser Warmer wärmt den HTTP-Cache von Shopware auf und kann die aufzuwärmenden URLs nun parallel abarbeiten. Das ist besonders für Deployment-Szenarien in Clusterumgebungen interessant. Man kann nun, bevor man eine neue Version live schaltet, auf dem Admin-Server den HTTP-Cache aufwärmen und somit die neue Version direkt mit einem aufgewärmten Cache live nehmen.

Ein beispielhaftes Deployment Script für Clusterumgebungen, in den man dies implementieren kann, findet man auf ShopwareLabs. Durch die bei der parallelen Abarbeitung gewonnene Geschwindigkeit können nun auch mehr URLs aufgewärmt werden, beispielsweise Produktlinks aus Kategorien (/mein-produkt/?c=4711), Varianten und Konfiguratorlinks.

Generiert ein Plug-in eigene URLs, die aufgewärmt werden sollen, muss der Entwickler nur einen Service mit dem entsprechenden Interface implementieren und diesem das passende Tag in der services.xml geben. Des Weiteren wird nun auf terminierte Ereignisse der betroffene Caches invalidiert – zum Beispiel geht die Einkaufswelt zu einer zuvor definierten Zeit on- oder offline. Keine unnötige kleine Time-to-Live-Konfiguration ist für den Cache mehr relevant.

SEO/Internationalisierung

Eins der wohl am meisten gewünschten Features aus der Shopware-Community ist die Vereinfachung des Übersetzungsworkflows. Früher musste man um Englisch als zweite Sprache im Shop anbieten zu können den ganzen Kategoriebaum kopieren und die jeweiligen Kategorienamen mit den englischen Pendants ersetzen. Das ist nicht nur ein großer initialer Aufwand, auch ist die Pflege von verschiedensprachigen Kategoriebäumen nicht zu unterschätzen – das ist nun endlich Geschichte.

Kategorien lassen sich nun genauso einfach übersetzen wie beispielsweise Artikel. Zusätzlich entfällt das doppelte Erstellen von Formularen, Shopseiten und Status-E-Mails. Die Verwaltung ist nun auch über den normalen Übersetzungsworkflow möglich. Ein Beispiel, wie man die Kategorien in einem Plug-in übersetzen kann, finden Sie in Listing 1.

$categoryResource = \Shopware\Components\Api\Manager::getResource('Category');
$data = [
  'parent' => 3,
  'name' => 'DE PHP-Magazin',
  'translations' => [
    3 => [
      'description' => 'EN PHP-Magazin',
      'shopId' => 3,
      ],
  ],
];
$categoryResource->create($data);

Im Bereich SEO wird die generierte sitemap.xml nun, wie zum Beispiel von Google gewünscht, nach 50 000 URLs aufgeteilt und in einer sitemap_index.xml gelistet. Somit muss man hier nicht mehr auf Drittanbieter-Plug-ins zurückgreifen, um eine Google-konforme sitemap.xml zu erstellen. Ähnlich wie bei dem überarbeiteten CacheWarmer gibt es auch hier für Plug-ins die Möglichkeit, über einen getaggten Service eigene URLs in die Sitemap exportieren zu lassen.

Des Weiteren wird nun das hreflang-Tag unterstützt, um für Suchmaschinen die verfügbaren alternativen Sprachen auszugeben. Wenn Sie von einer früheren Version aktualisiert haben, müssen Sie das gegebenenfalls in den Grundeinstellungen unter Storefront | SEO/Routeneinstellung aktivieren. Eine beispielhafte Ausgabe von einer Artikeldetailseite können Sie in Listing 2 sehen.

<link rel="alternate" hreflang="de-DE" href="http://shopware.local/5.5/strand/1/sasse-lagerkorn?c=5" />
<link rel="alternate" hreflang="en-GB" href="http://shopware.local/5.5/en/beach/1/sasse-lagerkorn?c=5" />

Verbesserte Usability

Shopware bietet mit der Version 5.5 nun optional an, die vorhandenen Artikel, Kunden und Bestellinformationen vollständig anonymisiert in die Cloud hochzuladen. Aus den so gewonnenen Daten werden anschließend neue intelligente Statistiken bereitgestellt, die die bereits vorhandenen Informationen um zusätzliche Aspekte anreichern und Händler auf interessante Zusammenhänge aufmerksam machen sollen.

Beispiele dafür sind etwa die Umsatzprognose auf Basis historischer und saisonaler Daten und die Erkennung von potenziellen neuen Zielgruppen in der Kundenstruktur. All diese neuen Statistiken können mit anonymisierten Branchendaten überlagert werden, um aus dem Vergleich neue Erkenntnisse ableiten zu können. Ziel ist es, neue Ideen zu entwickeln, mit denen man den eigenen Onlineshop kontinuierlich optimieren und damit seinen Erfolg steigern kann.

In der neuesten Version gibt es nun im Backend Überprüfungen für Artikel, Kunden und Bestellungen. Wenn man diese zum Bearbeiten öffnet und in der Zwischenzeit ein anderer Mitarbeiter diese verändert, bekommt man nun eine Hinweismeldung, dass man die Änderungen des Kollegen überschreiben würde.

Nützliche Features

Der vollständige Wegfall der ionCube-Verschlüsselung im Shopware-Ökosystem ermöglicht endlich das schnelle Updaten auf aktuelle PHP-Versionen. Jetzt muss nicht mehr auf einen lauffähigen ionCube-Encoder gewartet werden, wie es zum Beispiel bei PHP 7.2. der Fall war.

Viele Shopbetreiber und Steuerberater werden sich über die neue Steuerberechnung im Warenkorb freuen. Ab nun ist es möglich, die Mehrwertsteuer auf Versandkosten anteilig zu berechnen. Das bedeutet, dass, wenn ein Kunde Artikel mit 7 Prozent und 19 Prozent MwSt. im Warenkorb hat, die abzuführende Mehrwertsteuer für die Versandkosten sowie sonstige Auf- und Abschläge anteilig berechnet und nicht einfach nur der höchste Steuersatz verwendet wird.

Für die Plug-in-Entwickler gibt es auch noch die eine oder andere Veränderung. Zuallererst wurde Symfony auf 3.4 und jQuery auf 3.3 aktualisiert. Des Weiteren unterstützt Shopware nun MariaDB 10.3, MySQL 8 und Elasticsearch 6. Des Weiteren gibt es einen neuen Service, mit dem Entwickler ganz einfach das Handling von Dateien optimieren können. Hierfür bietet Shopware nun einen Service an, mit dem man öffentlich zugängliche wie auch private Daten schreiben kann. Ein kleines Beispiel können Sie in Listing 3 sehen.

/** @var \Shopware\Components\Filesystem\PrefixFilesystem $fileSystem */
$fileSystemPublic = $this->container->get('php_magazin.filesystem.public');

// Datei wird in /web/plugins/php_magazin abgespeichert
$fileSystemPublic->write(‘pm.txt', 'Lorem Ipsum');

$fileSystemPublic->read('pm.txt’);

/** @var \Shopware\Components\Filesystem\PrefixFilesystem $fileSystem */
$fileSystemPrivate = $this->container->get('php_magazin.filesystem.private');

// Datei wird in /files/plugins/php_magazin abgespeichert
$fileSystemPrivate->write('pm.txt', 'Lorem Ipsum');

$fileSystemPrivate->read('pm.txt');

Fazit

In der aktuellen Version 5.5 wurden wieder viele neue Funktionen für Shopbetreiber, Entwickler und Anwender eingebaut und die bestehende Software aktualisiert. Die international agierenden Shopbetreiber können nun mit deutlich geringerem Aufwand die Mehrsprachigkeit ihres Shops herstellen. Für viele werden jedoch der vollständige Wegfall von ionCube und die deutlichen Performanceverbesserungen die Hauptgründe dafür sein, schnell auf die aktuellste Shopware-Version zu wechseln.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -