Question

On my current Magento project Wein-Partner.at I have to prepare multiple shops on one website.

For the different stores there will undoubtedly be different languages, also meaning multiple storeviews. However, the language selector disappeared on me and I have no clue where to. Interestingly enough I have a currency selector instead.

Is there a way for me to make a "store-selector" at the top, not just a store-view selector?

Do I have to enable the "add storecode to URL" for that?

The plan is basically as follows:

There's the website (wein-partner.at) which will open on the homepage, showing the main-store. Below that, if you click on a category, you come into category-view with additional tags to choose from (region, price, ..). If you click on, let's say a region that has only one winemaker, you're supposed to be taken to the winemaker's subshop showing his logo instead of ours (I currently can't change store, so it always shows the vendor's storeview).

The template-file is the same as the category-view aside from the logo (each vendor has his own storeviews as well [mainly probably English, German, French and Italian]).

To sum up, this means that there will be 4 levels (Website - mainstore - store/storegroup - storeview/store)

edit01: I found this so far (app/design/frontend/default/your_theme/template/page/switch)

<?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; ?>
Was it helpful?

Solution

The store switcher is loaded in the default theme via the layout (XML) file.

app/design/frontend/YOUR_PACKAGE/YOUR_THEME/layout/page.xml

Look for the following line of text:

<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>

If you copy that line of XML to the location you want it you can then add a call to display it in your template (phtml) file like such:

<?php echo $this->getChildHtml('store_switcher') ?>

OTHER TIPS

Locate page.xml in app/design/frontend/base/default/layout directory.

Open the file with a text editor and look for the code below.

<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>

To display the store switcher on the header of the page, we just have to change the location of the above code. This code is inserted in page/html_footerblock. Cut and paste it under the page/html_header block.

<block type="page/html_header" name="header" as="header">

Now to display the store switcher, go to header.phtml in the app/design/frontend/base/default/template/page/html directory and insert the following code.

<?php echo $this->getChildHtml('store_switcher') ?>

make sure in your theme File stores.phtml is available if its not available get from this file from fresh magento from base template/page/switch/ folder

then make sure you put code correctly ! hope it should work fine !

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top