Storeswitcher (nicht Storeview-Switcher) - Multistore
-
12-12-2019 - |
Frage
Zu meinem aktuellen Magento-Projekt Wein-Partner.at Ich muss mehrere Shops auf einer Website vorbereiten.
Für die verschiedenen Geschäfte wird es zweifellos verschiedene Sprachen geben, was auch mehrere Storeviews bedeutet.Die Sprachauswahl ist jedoch bei mir verschwunden und ich habe keine Ahnung, wohin.Interessanterweise habe ich stattdessen einen Währungswähler.
Gibt es eine Möglichkeit für mich, oben einen "Store-Selector" zu erstellen, nicht nur einen Store-View-Selector?
Muss ich dafür den "Storecode zur URL hinzufügen" aktivieren?
Der Plan sieht im Wesentlichen wie folgt aus:
Da ist die Website (wein-partner.at ), das sich auf der Homepage öffnet und den Hauptshop anzeigt.Wenn Sie darunter auf eine Kategorie klicken, gelangen Sie in die Kategorieansicht mit zusätzlichen Tags zur Auswahl (Region, Preis, ..).Wenn Sie auf eine Region klicken, in der es nur einen Winzer gibt, werden Sie zum Subshop des Winzers weitergeleitet, in dem sein Logo anstelle unseres angezeigt wird (ich kann derzeit den Store nicht ändern, daher wird immer die Storeview des Verkäufers angezeigt).
Die Vorlagendatei ist bis auf das Logo die gleiche wie die Kategorieansicht (jeder Anbieter hat auch seine eigenen Storeviews [hauptsächlich wahrscheinlich Englisch, Deutsch, Französisch und Italienisch]).
Zusammenfassend bedeutet dies, dass es 4 Ebenen geben wird (Website - Mainstore - Store / Storegroup - Storeview / Store)
bearbeitung01: Ich habe das bisher gefunden (App / Design / Frontend / Standard / Ihr Thema / Vorlage / Seite / Schalter)
<?php if(count($this->getGroups())>1): ?>
<div class="store-switcher">
<label for="select-store"><?php echo $this->__('Select Store:') ?></label>
<select id="select-store" title="<?php echo $this->__('Select Store') ?>" onchange="location.href=this.value">
<?php /*foreach ($this->getStores() as $_store): ?>
<option value="<?php echo $_store->getUrl('') ?>"<?php if($_store->getId()==$this->getCurrentStoreId()): ?> selected="selected"<?php endif; ?>><?php echo $_store->getName() ?></option>
<?php endforeach;*/ ?>
<?php foreach ($this->getGroups() as $_group): ?>
<?php $_selected = ($_group->getId()==$this->getCurrentGroupId()) ? ' selected="selected"' : '' ?>
<option value="<?php echo $_group->getHomeUrl() ?>"<?php echo $_selected ?>><?php echo $this->escapeHtml($_group->getName()) ?></option>
<?php endforeach; ?>
</select>
</div>
<?php endif; ?>
Lösung
Der Speicherschalter wird in das Standardthema über die Layout-Datei (XML) geladen.
app / design / frontend / your_package / your_theme / layout / page.xml
Suchen Sie nach der folgenden Textzeile: generasacodicetagpre.
Wenn Sie diese Zeile von XML an den von Ihnen gewünschten Ort kopieren, können Sie dann einen Anruf hinzufügen, um ihn in Ihrer Vorlage (PHTML) (PHTML) wie zB anzuzeigen: generasacodicetagpre.
Andere Tipps
Finden page.xml
in app/design/frontend/base/default/layout
Verzeichnis.
Öffnen Sie die Datei mit einem Texteditor und suchen Sie nach dem folgenden Code.
<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
Um den Store Switcher in der Kopfzeile der Seite anzuzeigen, müssen wir nur die Position des obigen Codes ändern.Dieser Code wird eingefügt in page/html_footer
Block.Schneiden Sie es aus und fügen Sie es unter die page/html_header
Block.
<block type="page/html_header" name="header" as="header">
Um nun den Store Switcher anzuzeigen, gehen Sie zu header.phtml
in der app/design/frontend/base/default/template/page/html
verzeichnis und fügen Sie den folgenden Code ein.
<?php echo $this->getChildHtml('store_switcher') ?>
Vergewissern Sie sich in Ihrem Thema-Dateispeicher.
Stellen Sie dann sicher, dass Sie Code richtig eingeben!Hoffe es sollte gut funktionieren!