Storeswitcher (не Storeview-Switcher) — Мультимагазин
-
12-12-2019 - |
Вопрос
О моем текущем проекте Magento Wein-Partner.at Мне нужно подготовить несколько магазинов на одном сайте.
Для разных магазинов, несомненно, будут разные языки, что также означает несколько просмотров магазинов.Однако у меня пропал переключатель языка, и я понятия не имею, куда.Интересно, что вместо этого у меня есть селектор валюты.
Есть ли способ сделать «селектор магазина» вверху, а не только селектор просмотра магазина?
Нужно ли для этого включать «добавление кода магазина в URL»?
План в основном следующий:
На главной странице откроется веб-сайт (wein-partner.at), на котором будет показан основной магазин.Ниже этого, если вы нажмете на категорию, вы перейдете в режим просмотра категорий с дополнительными тегами на выбор (регион, цена и т. д.).Если вы нажмете, скажем, на регион, в котором есть только один винодел, вы должны быть перенаправлены в магазин винодела, где будет показан его логотип вместо нашего (в настоящее время я не могу сменить магазин, поэтому он всегда показывает обзор магазина продавца).
Файл-шаблон такой же, как представление категории, за исключением логотипа (у каждого продавца также есть свои собственные представления магазинов [в основном, вероятно, на английском, немецком, французском и итальянском языках]).
Подводя итог, это означает, что будет 4 уровня (веб-сайт - основной магазин - магазин/группа магазинов - просмотр магазина/магазин).
редактировать01: Я нашел это до сих пор (приложение/дизайн/интерфейс/по умолчанию/ваша_тема/шаблон/страница/переключатель)
<?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; ?>
Решение
Коммутатор магазина загружен в тему по умолчанию через файл макета (XML).
Приложение / Design / frontend / your_package / your_theme / layout / page.xml
Ищите следующую строку текста:
.<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
Если вы копируете эту строку XML в местонахождение, которое вы хотите, вы можете добавить вызов, чтобы отобразить его в файле шаблона (PHTML), такой как такой:
.<?php echo $this->getChildHtml('store_switcher') ?>
Другие советы
Найдите page.xml
в app/design/frontend/base/default/layout
каталог.
Откройте файл в текстовом редакторе и найдите код ниже.
<block type="page/switch" name="store_switcher" as="store_switcher" template="page/switch/stores.phtml"/>
Чтобы отобразить переключатель магазина в заголовке страницы, нам просто нужно изменить расположение приведенного выше кода.Этот код вставляется в page/html_footer
блокировать.Вырежьте и вставьте его под page/html_header
блокировать.
<block type="page/html_header" name="header" as="header">
Теперь, чтобы отобразить переключатель магазина, перейдите к header.phtml
в app/design/frontend/base/default/template/page/html
каталог и вставьте следующий код.
<?php echo $this->getChildHtml('store_switcher') ?>
Убедитесь, что в ваших темах файловые магазины .phtml доступен, если его недоступен, получите от этого файла из этого файла из базового шаблона / страницы / коммутации / папка
Тогда убедитесь, что вы правильно положите код!Надеюсь, это должно работать нормально!