Выдано 115496 лицензий

Магазин приложений HostCMS

Мультишоп

Мультишоп

Цена: 1 990

Менее 50 установок.

Установить модуль вы можете через раздел «Магазин приложений» в центре администрирования HostCMS.

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

Опции групп товаров

Группам товаров допускается указание для каждого сайта:

  • название (если не указано, будет использоваться основное);
  • описание группы (если не указано, будет использоваться основное);
  • мета-тег title;
  • мета-тег description;
  • мета-тег keywords.

Опции товаров

Товарам допускается указание для каждого сайта:

  • название (если не указано, будет использоваться основное);
  • цена товара (если не указано, будет использоваться основное);
  • описание товара (если не указано, будет использоваться основное);
  • текст товара (если не указан, будет использоваться основное);
  • мета-тег title;
  • мета-тег description;
  • мета-тег keywords.

Публикация магазина на других сайтах

Стандартная типовая динамическая страница магазина имеет ограничение на публикацию магазинов только текущего сайта.

Чтобы убрать это ограничение, перейдите Структура сайта → Типовые динамические страницы.

Найдите динамическую страницу, которую будете использовать для магазина, справа нажмите на пиктограмму в столбце «Параметры».

Отредактируйте опцию «Идентификатор магазина» и в секции SQL-запрос строку:

WHERE `site_id` = '{SITE_ID}' AND `deleted` = 0

замените на:

WHERE `deleted` = 0

далее нажмите сохранить.

Вернитесь в список типовых динамических страниц и отредактируйте саму типовую динамическую страницу сайта, на вкладке «Настройки страницы» замените блок:

if ($Shop_Controller_Show->group)
{
// …
}

if ($Shop_Controller_Show->item)
{
// …
}

на один из блоков:

1. Для систем до версии 6.7.9

if ($Shop_Controller_Show->group)
{
   $oShop_Group = Core_Entity::factory('Shop_Group', $Shop_Controller_Show->group);

   // Получаем данные для текущего сайта
   $oMultishop_Group_Controller = new Multishop_Group_Controller();
   $oMultishop_Group = $oMultishop_Group_Controller->getMultishopGroup(CURRENT_SITE, $Shop_Controller_Show->group);
   
   $oSeo_Group = $oMultishop_Group ? $oMultishop_Group : $oShop_Group;
   
   $bGroupTitle = $oSeo_Group->seo_title != '';
   $bGroupDescription = $oSeo_Group->seo_description != '';
   $bGroupKeywords = $oSeo_Group->seo_keywords != '';

   if (!$Shop_Controller_Show->item)
   {
      $bGroupTitle && Core_Page::instance()->title($oSeo_Group->seo_title);
      $bGroupDescription && Core_Page::instance()->description($oSeo_Group->seo_description);
      $bGroupKeywords && Core_Page::instance()->keywords($oSeo_Group->seo_keywords);
   }

   do {
    ($Shop_Controller_Show->item || !$bGroupTitle) && $aTitle[] = $oShop_Group->name;

    ($Shop_Controller_Show->item || !$bGroupDescription) && $aDescription[] = $oShop_Group->name;

    ($Shop_Controller_Show->item || !$bGroupKeywords) && $aKeywords[] = $oShop_Group->name;

   } while($oShop_Group = $oShop_Group->getParent());
}

if ($Shop_Controller_Show->item)
{
   $oShop_Item = Core_Entity::factory('Shop_Item', $Shop_Controller_Show->item);

   // Получаем данные для текущего сайта
   $oMultishop_Item_Controller = new Multishop_Item_Controller();
   $oMultishop_Item = $oMultishop_Item_Controller->getMultishopItem(CURRENT_SITE, $Shop_Controller_Show->item);
   
   $oSeo_Item = $oMultishop_Item ? $oMultishop_Item : $oShop_Item;
   
   $oSeo_Item->seo_title != ''
      ? Core_Page::instance()->title($oSeo_Item->seo_title)
      : $aTitle[] = $oShop_Item->name;

   $oSeo_Item->seo_description != ''
      ? Core_Page::instance()->description($oSeo_Item->seo_description)
      : $aDescription[] = $oShop_Item->name;

   $oSeo_Item->seo_keywords != ''
      ? Core_Page::instance()->keywords ($oSeo_Item->name)
      : $aKeywords[] = $oShop_Item->name;
}

2. Для систем версии 6.7.9 и старше

if ($Shop_Controller_Show->group)
{
    $oShop_Group = Core_Entity::factory('Shop_Group', $Shop_Controller_Show->group);

    // Получаем данные для текущего сайта
    $oMultishop_Group_Controller = new Multishop_Group_Controller();
    $oMultishop_Group = $oMultishop_Group_Controller->getMultishopGroup(CURRENT_SITE, $Shop_Controller_Show->group);

    if ($oMultishop_Group)
    {
        $oShop_Group_Clone = clone $oShop_Group;

        $oMultishop_Group->seo_group_title_template
            && $oShop_Group_Clone->seo_group_title_template = $oMultishop_Group->seo_group_title_template;

        $oMultishop_Group->seo_group_description_template
            && $oShop_Group_Clone->seo_group_description_template = $oMultishop_Group->seo_group_description_template;

        $oMultishop_Group->seo_group_keywords_template
            && $oShop_Group_Clone->seo_group_keywords_template = $oMultishop_Group->seo_group_keywords_template;

        $oMultishop_Group->seo_item_title_template
            && $oShop_Group_Clone->seo_item_title_template = $oMultishop_Group->seo_item_title_template;

        $oMultishop_Group->seo_item_description_template
            && $oShop_Group_Clone->seo_item_description_template = $oMultishop_Group->seo_item_description_template;

        $oMultishop_Group->seo_item_keywords_template
            && $oShop_Group_Clone->seo_item_keywords_template = $oMultishop_Group->seo_item_keywords_template;

        // Apply SEO templates
        if ($Shop_Controller_Show->item)
        {
            $oShop_Item = Core_Entity::factory('Shop_Item', $Shop_Controller_Show->item);

            // Получаем данные для текущего сайта
            $oMultishop_Item_Controller = new Multishop_Item_Controller();
            $oMultishop_Item = $oMultishop_Item_Controller->getMultishopItem(CURRENT_SITE, $Shop_Controller_Show->item);

            $oShop_Item_Clone = clone $oShop_Item;

            if ($oMultishop_Item)
            {
                $oMultishop_Item->seo_title != ''
                    && $oShop_Item_Clone->seo_title = $oMultishop_Item->seo_title;

                $oMultishop_Item->seo_description != ''
                    && $oShop_Item_Clone->seo_description = $oMultishop_Item->seo_description;

                $oMultishop_Item->seo_keywords != ''
                    && $oShop_Item_Clone->seo_keywords = $oMultishop_Item->seo_keywords;
            }

            $oCore_Meta = new Core_Meta();
            $oCore_Meta
                ->addObject('shop', $oShop)
                ->addObject('group', $oShop_Group_Clone)
                ->addObject('item', $oShop_Item_Clone)
                ->addObject('this', $Shop_Controller_Show);

            // Title
            if ($oShop_Item_Clone->seo_title != '')
            {
                $seo_title = $oShop_Item_Clone->seo_title;
            }
            elseif ($oShop_Group_Clone->seo_item_title_template != '')
            {
                $seo_title = $oCore_Meta->apply($oShop_Group_Clone->seo_item_title_template);
            }
            else
            {
                $seo_title = $oShop_Item_Clone->name;
            }

            // Description
            if ($oShop_Item_Clone->seo_description != '')
            {
                $seo_description = $oShop_Item_Clone->seo_description;
            }
            elseif ($oShop_Group_Clone->seo_item_description_template != '')
            {
                $seo_description = $oCore_Meta->apply($oShop_Group_Clone->seo_item_description_template);
            }
            else
            {
                $seo_description = $oShop_Item_Clone->name;
            }

            // Keywords
            if ($oShop_Item_Clone->seo_keywords != '')
            {
                $seo_keywords = $oShop_Item_Clone->seo_keywords ;
            }
            elseif ($oShop_Group_Clone->seo_item_keywords_template != '')
            {
                $seo_keywords = $oCore_Meta->apply($oShop_Group_Clone->seo_item_keywords_template);
            }
            else
            {
                $seo_keywords = $oShop_Item_Clone->name;
            }
            
            Core_Page::instance()->title($seo_title);
            Core_Page::instance()->description($seo_description);
            Core_Page::instance()->keywords($seo_keywords);            
        }
        elseif ($Shop_Controller_Show->group)
        {
            $oCore_Meta = new Core_Meta();
            $oCore_Meta
                ->addObject('shop', $oShop)
                ->addObject('group', $oShop_Group_Clone)
                ->addObject('this', $Shop_Controller_Show);

            // Title
            if ($oShop_Group_Clone->seo_title != '')
            {
                $seo_title = $oShop_Group_Clone->seo_title;
            }
            elseif ($oShop_Group_Clone->seo_group_title_template != '')
            {
                $seo_title = $oCore_Meta->apply($oShop_Group_Clone->seo_group_title_template);
            }
            else
            {
                $seo_title = $oShop_Group_Clone->name;
            }

            // Description
            if ($oShop_Group_Clone->seo_description != '')
            {
                $seo_description = $oShop_Group_Clone->seo_description;
            }
            elseif ($oShop_Group_Clone->seo_group_description_template != '')
            {
                $seo_description = $oCore_Meta->apply($oShop_Group_Clone->seo_group_description_template);
            }
            else
            {
                $seo_description = $oShop_Group_Clone->name;
            }

            // Keywords
            if ($oShop_Group_Clone->seo_keywords != '')
            {
                $seo_keywords = $oShop_Group_Clone->seo_keywords ;
            }
            elseif ($oShop_Group_Clone->seo_group_keywords_template != '')
            {
                $seo_description = $oCore_Meta->apply($oShop_Group_Clone->seo_group_keywords_template);
            }
            else
            {
                $seo_keywords = $oShop_Group_Clone->name;
            }

            Core_Page::instance()->title($seo_title);
            Core_Page::instance()->description($seo_description);
            Core_Page::instance()->keywords($seo_keywords);
        }
    }
}

Информация о разработчике:

  • Разработчик: Hostmake LLC
  • Вопросы по модулю: support@hostcms.ru
  • Поддержка: support@hostcms.ru

Скриншоты

Версии модуля

Версия Дата Описание Версия от Версия до
2.5 05.04.2018

Добавлена поддержка seo-шаблонов.

6.7.9
2.4 22.02.2018

Добавлена индексация поиска.

6.7.5
2.2 21.02.2018

Добавлено указание цены для других сайтов.

6.7.5
2.1 24.11.2017

Добавлена поддержка нескольких магазинов.

6.7.5
2.0 06.06.2017 6.7.0 6.7.4
Похожие

Комментарии

  • Без темы

    кто разработчик данного модуля? как связаться?

    24.11.2017 12:54:46 Puma

    Без темы

    Информация о разработчике добавлена.

    24.11.2017 13:35:18 alexander.egorov