Shopware Dev-Tipps

Die Shopware Dev-Tipps sind eine Sammlung nützlicher Tipps & Tricks aus dem ProudCommerce Shopware Entwickler-Team.

Eigene Themes müssen in Showpare 6 immer in UpperCamelCase benamt sein, also insbesondere somit mit einem Großbuchstaben anfangen. Ist der erste Buchstabe kein Großbuchstabe, wird keine Fehlermeldung ausgegeben, aber die Twig-Templates werden nicht gefunden.

Bereits letztes Jahr haben wir dazu einen Bugeintrag aufgemacht, der aber bisher noch nicht bearbeitet wurde. Nachdem bereits etliche Beiträge zu diesem „Problem“ vorhanden sind, hoffen wir auf eine baldige Prüfung des Theme-Names im Shopware Core.“ Fehlendes camelCase verursacht nämlich keine Probleme, nur fehlendes „Upper“. (Doku)

Eigene Themes müssen UpperCamelCase sein25.05.21

Shopware 6 speichert das Datum in der Datebank im UTC-Format. Dies bedeutet dass alle (deutschen) Datumsangaben beim Speichern nach UTC und beim Auslesen aus der Datenbank wieder zurück konvertiert werden müssen.

Datumsformat Datenbank Shopware 630.09.2020

Beispiel Erweiterung Backend-Panel für die Anzeige der Telefonnummer in Bestellungen: https://gist.github.com/smxsm/00bedd891c631af209f3475d0cda9531

Backend-Panel erweitern

select distinct REGEXP_SUBSTR(org_path, '[0-9]+') as articleID from s_core_rewrite_urls where org_path REGEXP '.*sArticle.*=[0-9]+' limit 10;

SQL-Snippet: Artikel mit SEO-URL

In config.php das Loglevel einstellen (ab 5.5.x)
'logger' => [
//'level' => $this->Environment() !== 'production' ?
Logger::DEBUG : Logger::ERROR
'level' => Logger::DEBUG ],

$this->container->get('pluginlogger')->debug('Das landet in var/log/...');
oder
Shopware()->Container()->get('pluginlogger')->debug('Das landet in var/log/...');

LOG-Ausgaben

Prüfen ob man sich im Frontend befindet:

if ($this->container->initialized('shop')) bzw. if ($this->container->initialized('session'))

Frontend-Prüfung

Im Checkout kann man Felder mit Hidden-Feldern und bestimmten Data-Attributen im Local Storage speichern bzw. automatisch an die Hidden-Felder im Hauptformular speichern.

// adds comment text to checkout confirm form
.addPlugin('*[data-pseudo-text="true"]', 'swPseudoText')
// saves field values to local storage
.addPlugin('*[data-storage-field="true"]', 'swStorageField')

Das sind zwei JQuery-Plugins, die die Funktionalität umsetzen und die aktiv sein müssen für das Theme!

Local Storage im Checkout