Mehrere Onlineshops mit nur einer Installation betreiben: Multishops mit Magento
Im Vergleich zu anderen Shop-Systemen glänzt Magento mit einem entscheidenen Vorteil: dem einfachen Multistore-Management. Mit dem vielseitigen Multishop-Feature können Shopbetreiber verschiedene Artikelbestände, Lokalisierungen, Währungen, Templates oder Domains auf einfachste Art und Weise verwalten. Auch die Nutzung eines gemeinsamen Produktkatalogs in unterschiedlichen Onlineshops ist möglich.
Zur Veranschaulichung der Funktionsweise des Multistore-Managements in Magento zeigt dieser Artikel auf, wie man eine Magento-Installation in der Version 1.4.1.0 so konfiguriert, dass man auf zwei Websites einen Onlineshop zum nationalen Vertrieb von Computerhardware und einen weiteren für den internationalen Vertrieb von Bürobedarf einrichtet. Zu den Vorgaben gehören eine komplette optische Trennung sowie ein englischsprachiges Frontend für den internationalen Bereich.
Grundlagen des Multistore-Managements

Diese Auswahlbox ist fester Bestandteil des Magento-Backends und erlaubt den Wechsel zwischen verschiedenen Konfigurationsbereichen.
Die abgebildete Auswahlbox taucht an vielen Stellen im Magento-Backend auf und dient zum Wechseln zwischen den verschiedenen Geltungsbereichen. In Magento existieren drei Bereiche: Website, Store und StoreView zur flexiblen Strukturierung der Magento-Installation. Die verschachtelten Geltungsbereiche in Magento bieten die Möglichkeit, die Konfiguration der einzelnen Shops durchzuführen. Sofern man keine speziellen Einstellungen in den Websites, Stores oder Storeviews vornimmt, vererbt der Geltungsbereich „Standardkonfigurationen“ seine Eigenschaften an alle Shops in der Magento-Installation.
Nachdem man die Magento-Installation abgeschlossen hat, können sofort im Magento-Backend die grundlegenden Einstellungen zur Einrichtung der Struktur für die beiden Shops erfolgen.
Der erste Schritt befasst sich mit dem Anlegen der Kategorien für den Artikelstamm. In diesem Anwendungsfall werden im Magento-Backend zwei Root-Kategorien benötigt. Zur besseren Orientierung sollte man diese nach den Domains benennen.
Konfiguration und Verwaltung
Einen Multishop kann man prinzipiell in verschiedenen Varianten konfigurieren. Dieses Fallbeispiel verwendet zwei Websites, zwei Stores und zwei Storeviews, um die gewünschte Verwaltung der beiden Shops in einer Magento-Installation umzusetzen. Beim Anlegen der Websites sollte man darauf achten, diese ebenfalls nach der Domain zu benennen und einen aussagekräftigen Website-Code wie „web_computerhardware“ und „web_buerobedarf zu verwenden“.
Darüber hinaus legt man zwei Stores an, bei denen man die zuvor hinzugefügten Root-Kategorien auswählt und somit den Artikelstamm des Stores definiert. Die Anforderungen im Fallbeispiel erfordern außerem zwei verschiedene Storeviews (StoreView-Codes: view_computerhardware_de und view_buerobedarf_en), die für die Anzeige und Darstellung im Magento-Frontend verantwortlich sind. Darüber kann man auch die gewünschten Sprachen und Lokalisierungen für den nationalen sowie internationalen Vertrieb konfigurieren. Nach der erfolgreichen Einrichtung des Multishops folgen die Einstellungen für die beiden Websites im Magento-Backend.
Tipp: Das Arbeiten mit eindeutigen Abkürzungen bei den Website- sowie StoreView-Codes wird empfohlen, damit man im späteren Verlauf jederzeit einfach die Zuordnung an den erforderlichen Stellen vornehmen kann.
Konfiguration der Domains
Bei der Konfiguration der Domains gilt es grundlegend darauf zu achten, dass beide Domains auf denselben Magento-Document-Root zeigen, damit Magento den Shop laden kann.
Im nächsten Schritt gilt es, die Domains im Magento-Backend zuzuordnen. Dies erledigt man im Menüpunkt „System > Konfiguration > Web“. In den Einstellungen unter „Sicher“ und „Ungesichert“ ist es möglich, die Basis-URL zu hinterlegen. Man muss allerdings darauf achten, dass man in der Auswahlbox des Konfigurationsbereichs die zu konfigurierende Website auswählt. Nach dem Entfernen der Checkbox „Standard benutzen“ kann man im Eingabefeld „Basis-URL“ die URL gezielt für diese Website definieren.
Konfiguration der Sprache
Nach demselben Prinzip wie bei den Domains folgt nun die Konfiguration der Sprache der beiden Shops. Um den zweiten Shop fit für den internationalen Vertrieb zu machen, ist ein Wechsel über die Auswahlbox in den Storeview des Bürobedarf-Shops nötig. Die entsprechenden Werte für die englische Sprache setzt man in den Lokalisierungseinstellungen unter „System > Konfiguration > Allgemein“. Bei Bedarf kann man auch eine andere Währung festlegen, die automatisch von Magento mittels interner Währungskurse umgerechnet wird. Der Shopbetreiber kann seinen Kunden unter anderem auch die Möglichkeit geben, im Frontend über eine Auswahlbox aus einer der zuvor freigeschalteten Währungen für den jeweiligen StoreView zu wählen.

Für Betreiber von Multishops sind eine Reihe nützlicher Extensions verfügbar. „Customer Activation“ erlaubt beispielsweise, Gewerbetreibende erst nach dem Nachweis über einen Gewerbeschein für den B2B-Bereich freizuschalten.
Gestaltung des Frontends
Der Menüpunkt „System > Konfiguration > Gestaltung“ ermöglicht im Bereich „Paket“, das Erscheinungsbild komplett zu ändern. Standardmäßig liefert Magento derzeit zwei Design-Pakete und das optimierte iPhone-Design mit. Nach einer einzigen Änderung im Geltungsbereich der Bürobedarf-Website erscheint das Frontend im modernen Magento-Design. Hierfür genügt es, im Eingabefeld den Paketnamen „modern“ zu hinterlegen. Die optische Trennung der beiden Shops ist somit auf einfachstem Wege erfolgt und man kann die verschiedenen Pakete nun den eigenen Wünschen anpassen.
Modifikationen an der index.php
Um beim Aufruf der beiden Domains direkt den entsprechenden Shop anzuzeigen, muss man vor dem Aufruf des eigentlichen Magento-Systems in der index.php von Magento die folgende Switch-Abfrage im Quellcode hinterlegen.
// Begin: Switch-Abfrage switch($_SERVER['HTTP_HOST']){ case 'computerhardware.de': case'www.computerhardware.de ': $_SERVER["MAGE_RUN_CODE"]="web_computerhardware"; $_SERVER["MAGE_RUN_TYPE"]="website"; break; case 'officesupplies.com': case 'www.officesupplies.com': $_SERVER["MAGE_RUN_CODE"]="web_buerobedarf"; $_SERVER["MAGE_RUN_TYPE"]="website"; break; } // End // Begin: Aufruf des Magento-Systems /* Store or website code */ $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; /* Run store or run website */ $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store'; Mage::run($mageRunCode, $mageRunType); // End
Listing 1
Nach der Durchführung der Änderungen muss man noch den Magento-Cache leeren. Magento lädt nun beim Aufruf der Domains die korrekte Website beziehungsweise den richtigen Storeview.
Zuweisung der Variablen
Die folgenden, in Listing 1 enthaltenen Variablen, müssen in der Switch-Abfrage individuell und passend zur Strukturierung der Magento-Installation gesetzt werden:
Variable | Zuweisung |
$_SERVER[‚MAGE_RUN_CODE‘] | Hier wird der Code der Website oder des StoreViews hinterlegt, der im Magento Backend zugewiesen wurde. |
$_SERVER[‚MAGE_RUN_TYPE‘] | Folgende Werte können hier eingetragen werden: ‚website‘ oder ’store‘. |
Fazit
Mit Hilfe der im Artikel beschriebenen Funktion von Magento können Shopbetreiber in nur einer Magento-Installation mehrere Shops betreiben. Die Einrichtung eines klassischen B2C- oder B2B-Shops, in dem der Kunde ausschließlich Nettopreise sieht, ist beispielsweise in wenigen Minuten implementiert. Mit entsprechenden Erweiterungen [1]
[2] ist es zudem möglich, Gewerbetreibende erst nach Erhalt des Gewerbescheins für den B2B-Bereich freizuschalten.
Die Beispielkonfiguration macht deutlich, dass die Nutzung eines gemeinsamen Produktkatalogs den Administrationsaufwand erheblich reduzieren kann. Die Pflege, Wartung und Verwaltung der Onlineshops erfolgt bequem über ein zentrales Magento-Backend.
Die individuell konfigurierbaren Reporting-Funktionen ermöglichen zudem die automatisierte Erstellung von Auswertungen für einzelne Onlineshops oder Produktkategorien. Der Zugriff auf diese Analysen ist komfortabel über das Magento-Backend möglich und bietet zahlreiche Statistiken.
Hi,
danke für den hilfreichen Artikel. Leider sind beide Links zu den Extensions nicht mehr aktiv.
G**gle weiß in der Hinsicht leider auch nicht weiter – schade.
Hallo Johannes,
vielen Dank für das Feedback.
Im Folgenden die aktuellen Links zu den Magento-Extensions:
Customer Activation für Magento
Sitewards Business to Business Extension für Magento
Beste Grüße
Mirko
An sich eine gute Lösung. Ein vertrauenswürdiger Online-Shop braucht natürlich ein SSL-Zertifikat, und am besten eines mit EV – dieses gilt dann aber nur für eine IP und für eine Domain. Das beschriebene Vorgehen passt dann nicht, und einige Versandhändler sehen auch mittlerweile davon ab – es wird dann nur noch eine Domain verwendet. Grüße, DV
Hallo Mirko, danke für den Artikel. Du schreibst:
>Bei der Konfiguration der Domains gilt es grundlegend darauf zu achten,
>dass beide Domains auf denselben Magento-Document-Root zeigen,
>damit Magento den Shop laden kann.
Gibt es hier irgendwo ein paar mehr Informationen, wie man diesen Punkt umsetzt? Macht man das auf den fernen Domains irgendwie in der .htaccess?