In Magento gibt es verschiedene Stufen (Scopes), auf denen Einstellungen gemacht werden.
Diese Stufen sind:
- Global
- Website
- Store Group
- Store View
Jeder Level geht weiters ins Detail bzw. erlaubt es, gezielter für einzelne Shops Einstellungen zu setzen.
Websites, Store Groups und Store Views werden gerne genutzt, um Unternehmensstrukturen, Märkte oder Länder eines Shops abzubilden. Sie können im Magento-Backend angelegt werden
Scopes
Scope „Global“
Hier werden vor allem Standard-Einstellungen gesetzt. Für manche Features macht es nur Sinn, sie auf diesem Level zu aktivieren/deaktivieren – entweder aus logischen Gründen oder weil es für das ProgrammiererInnen-Team zu große Auswirkungen gehabt hätte, das im Code anders umzusetzen.
Scope „Website“
In Standard-Magento wird der Website-Level häufig verwendet, um verschiedene Länder/Zielmärkte abzubilden. Zum Beispiel kann die Währung bzw. der Lagerstand nur maximal auf diesem Niveaeu gesetzt werden.
Scope „Store Group“
Dieser Scope wird eigentlich nur verwendet, um in einem Store den Container bzw. Startpunkt für den Kategoriebaum zu setzen.
Scope „Store View“
Viele Einstellungen, besonders die Detail-Einstellungen, können auf dieser Ebene vorgenommen werden. Hier handelt es sich um die „feinste“ Einstufung.
Vergabe von „Codes“
In Magento 2 kann man auf allen Ebenen – bei Websites, Store Groups und Store Views – eine „Code“ vergeben. Das ist ein eindeutiger Bezeichner für den Eintrag. Der „Code“ ist vor allem wichtig für ProgrammiererInnen.
Darüber können wir zum Beispiel die Store View eindeutig wieder erkennen, auch wenn sich die Bezeichnung im Frontend ändert. Der Code wird deswegen gerne verwendet, wenn die Unterscheidung der Store Views usw. eine Rolle in der Anwendungslogik spielt.
Hat man einen Code festgelegt, dann sollte man ihn nach Möglichkeit nicht mehr ändern, damit man den Programm-Code nicht noch einmal anpassen muss.
Viele Websites und Store-Views führen zu Performance-Problemen
Das Ziel muss so sein, so wenige Websites / Store Groups / Store Views wie möglich abzubilden.
Mit jeder neuen Einheit werden nämlich Shopdaten in der Datenbank dupliziert. Außerdem vervielfachen sie die Größe des Konfigurations-Objekts, das Magento bei jedem Seitenaufruf lädt. Das steigert den RAM-Bedarf von Magento und wirkt sich negativ auf die Performance aus.
Kann man die Shop-Logik nicht vereinfachen, um Websites und Store-Views zu reduzieren, dann kann man Performance-Probleme umgehen, indem man die abzubildende Logik außerhalb von Magentos Website / Store Group / Store View Hierarchie abbildet. Man muss dann Magento on-the-fly die vielen Store-Views „vorgaukeln“ bzw. die nötige Konfiguration injizieren.
Bezeichnung „Store“?
Es gibt eine Überschneidung in der Definition, was ein „Store“ ist. Ich versuche daher im Projekt-Alltag immer von einer „Store Group“ oder einer „Store View“ zu sprechen, um Missverständnisse zu vermeiden. Das hat sich in der Praxis bewährt, denn das kann schnell zu Verwirrungen führen.
Konfigurations-Scopes von Features
Die Funktionalitäten von Magento 2 lassen sich auf verschiedenen Stufen steuern. Manche können nur global oder pro Website aktiviert/deaktiviert werden, andere pro Store-View.
B2B-Features
Feature | Global | Website | Store-Group | Store-View |
Firma aktivieren (Enable Company) | x | x | ||
Gemeinsam genutzer Katalog (Enabled Shared Catalog) | x | x | ||
Angebotslegung aktivieren Enable B2B Quote) | x | x | ||
Schnellbestellung aktivieren (Enable Quick Order) | x | x | ||
Wiederbeschaffungsliste aktivieren (Enable Requisition Lists) | x | x |
Häufige Fragen und Antworten
Der Code kann auf allen vergeben werden – für Websites, Store Groups und Store View.
Store Views können nachträglich einer anderen Store Group zugeordnet werden. Store Groups können aber nicht nachträglich anderen Websites zugeordnet werden. Man muss sie löschen und neu anlegen.
Ja, die Reihenfolge kann man in Magento 2 auf allen Ebenen über die „Sort Order“ festlegen.
Ja, kann man.