Как я могу добавить разные блоки в нижний колонтитул для каждого магазина в Magento

Здравствуйте, я новичок в magento. Я хочу добавить разные блоки в нижний колонтитул для каждого магазина. Например, я создал блок CMS для добавления номера телефона в нижний колонтитул и добавил этот блок в local.xml, а блок cms с телефонным номером отображается в нижнем колонтитуле, но моя проблема в том, что у меня есть несколько магазинов и я хочу добавить другой номер телефона в соответствии с хранить.

Как я могу это сделать. Есть ли способ использовать другой блок для другого магазина в нижнем колонтитуле из раздела администратора. Любая помощь будет оценена.


person pardeep grover    schedule 27.06.2014    source источник


Ответы (4)


Вместо создания статического блока для отображения номера телефона,

Вы можете получить номер телефона магазина из конфигурации системы (панель администратора).

Система > Конфигурация > Общие > Информация о магазине

введите здесь описание изображения

В этом вы можете указать номер телефона для каждого магазина

И вы можете получить номер телефона по следующему коду

Mage::getStoreConfig('general/store_information/phone');

Получить ценность на странице CMS

{{config path="general/store_information/phone"}}
person MeenakshiSundaram R    schedule 27.06.2014
comment
Спасибо за помощь. Я только что привел пример, чтобы добавить телефонный блок, но мне нужно добавить разные блоки для разных магазинов, например, блок контактов будет отличаться для каждого магазина. - person pardeep grover; 27.06.2014

Вы можете изменить ответ Джерарда как:

Отредактируйте нижний колонтитул и добавьте следующий код:

    $store = Mage::app()->getStore()->getStoreId(); 
    OR
    $store  = Mage::app()->getStore()->getCode();

в зависимости от того, что вы чувствуете себя лучше, а затем используйте:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_'.$store)->toHtml(); ?>

Теперь создайте статические блоки для каждого магазина. просто используйте для них идентификатор как footer_1,footer_2, footer_3, где 1,2,3 — это store ids. И если вы предпочитаете использовать код магазина, используйте footer_storecode1, footer_store2, footer_store3.

Таким образом, вам не нужно каждый раз редактировать код, но учтите, что тогда вам придется создавать блоки для каждого магазина.

person MTM    schedule 27.06.2014

Проверьте файл шаблона нижнего колонтитула, в который добавлен пользовательский блок. Это должно выглядеть так:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_contact_id')->toHtml(); ?>

Измените это на:

<?php 
    $storeCode = Mage::app()->getStore()->getCode();
    if ($storeCode == 'store1') {
        $footer_contact_id = 'footer_contact_store1';
    }
    elseif ($storeCode == 'store2') {
        $footer_contact_id = 'footer_contact_store2';
    }

    echo $this->getLayout()->createBlock('cms/block')->setBlockId($footer_contact_id)->toHtml();
?>

Вы можете проверить коды магазинов в бэкенде: system -> manage stores.

person Gerard de Visser    schedule 27.06.2014
comment
Если я создаю один новый магазин и два уже созданных магазина, мне нужно снова изменить код для добавления блока для третьего магазина. Есть ли способ установить блоки в нижнем колонтитуле от администратора на основе конкретного магазина. - person pardeep grover; 27.06.2014
comment
Вы не можете устанавливать блоки cms в зависимости от вида магазина в бэкэнде Magento. Вам придется сделать это программно. - person Gerard de Visser; 27.06.2014
comment
Используйте файл шаблона (вместо статического блока), который извлекает контактную информацию на основе представления магазина. - person Gerard de Visser; 27.06.2014

Если это код вашего шаблона:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('footer_contact_id')->toHtml(); ?>
  1. Перейдите в cms/static blocks и создайте блок с идентификатором footer_contact_id. Установите storeview на свой ПЕРВЫЙ магазин и введите информацию.

2. Скопируйте блок с таким же id Установите storeview на свой ВТОРОЙ магазин. и изменить часть информации.

3.Теперь проверьте магазины :)

person Jelle Verzijden    schedule 11.07.2014