Скрипт интернет-магазина Shop-Script 7

Тег «topshop»


24 июля 2018

unknown function shop_currency code 0

Если на вашем сайте появилась ошибка

unknown function shop_currency code 0

Произведите обновление файла navigation.html

Найдите код:

<div class="price">{if $p.compare_price > 0}<s>{shop_currency($p.compare_price)}</s>{/if}{shop_currency($p.price)}</div>

и замените его на

<div class="price">{if $p.compare_price > 0}<s>{wa_currency($p.compare_price, $p.currency)}</s>{/if}{wa_currency($p.price, $p.currency)}</div>

Картинка с местом замены.

Теги: topshop
28 июня 2018

Удалить рейтинг в TopShop

Добавьте в user.css код

.thumbnail-catalog .status .rating-big, .list-catalog .rating-big, .text-catalog .table-cell .rating-big, .rating-block {
    opacity: 0 !important;
}
Теги: topshop
20 февраля 2018

Вывод значений фильтра (checkbox) в два ряда

Добавьте в user.css код

.filter .checkboxfilter {
    width: 50%;
    display: inline-block;
}

Результат

Теги: topshop
8 июля 2017

Слайды для мобильного телефона

Если вам необходимо использовать слайды для мобильного телефона отличные от ПК (например квадратной формы). Произведите простую замену в файле home.single.html и home.split.html

Найдите строчку

{$slider_photo = $wa->photos->photos($theme_settings.slider_photo)}

и замените её на

{if $wa->isMobile()}
{$slider_photo = $wa->photos->photos('album/6')}
{else}
{$slider_photo = $wa->photos->photos($theme_settings.slider_photo)}
{/if}

Где album/6 - номер альбома со слайдами. Пример разных слайдов доступен на демо-сайте https://topshop.wa-magazin.ru

Теги: topshop
1 июля 2017

Обработка персональных данных

1) Скачайте и замените содержимое двух файлов checkout.contactinfo.html и checkout.shipping.html. Скачать архив

2) Добавьте текст в footer.html после строк <!-- Counters -->

<p class="hint">Мы получаем и обрабатываем персональные данные посетителей нашего сайта в соответствии с <a href="#ссылка">официальной политикой</a>. Если вы не даете согласия на обработку своих персональных данных,вам необходимо покинуть наш сайт.</p>

3) Замените в этом текст #ссылка на страницу вашего соглашения, например http://yandex.ru

Подробная инструкци доступа по ссылке

Теги: topshop
26 апреля 2017

Вставить товар(ы) на любую страницу

Если появилась необходимость добавить любой товар на страницу магазина или другого приложения (Сайт, Блог и т.д.), например в новость или статическую страницу, воспользуйтесь следующим советом. Все коды надо вставлять в режиме правки кода (HTML) в редакторе дизайна.

Произведите замену в файле list-thumbs.html (до версии 1.9, если у вас выше, этот пункт надо пропустить)

{$wa->getUrl('frontendCart/add')}
на
<span class="pl-item-name">{$wa->getUrl('shop/frontendCart/add')}</span>
и (если используется плагин купить в один клик)
{if method_exists(shopStorequickorderPlugin, 'product_button')}
на
{if method_exists(shopStorequickorderPlugin, 'product_button') && $wa_app == "shop"}

Вариант №1

Добавление товаров из созданных списков (promo, bestsellers или других списков). Создайте список и поместите туда товары. Где promo - ID списка

{$filter_fix = 1}
{$products = $wa->shop->productSet("promo")}
<div class="row lazy-wrapper container-catalog">
    {include file="`$wa->shop->themePath('topshop')`list-thumbs.html"}
</div>

Вариант №2

Вывод определенных товаров по их ID. Укажите в начале ID для вывода. В данном примере это два товара с ID - 773 и 398. Указываются они в переменной $products_id

{$filter_fix = 1}
{$products_id = "773,398"}
{$products_ = $wa->shop->products('id/'|cat:$products_id)}
{$products = []}
{foreach explode(',', $products_id) as $a}
{$products[] = $products_[$a]}
{/foreach}
<div class="row lazy-wrapper container-catalog">
    {include file="`$wa->shop->themePath('topshop')`list-thumbs.html"}
</div>

Узнать ID товара можно в его карточке. См. картинку

Внимание данный код на страницах Блога, Сайта и Фото будет работать только если в config.php указан код 'can_use_smarty'=>true

для приложения Сайт это файл site/lib/config/app.php. Строчку необходимо добавить, т.к. она отсутствует

'my_account' => true
Теги: topshop
11 апреля 2017

Прозрачный сайт

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

Но есть возможно отобразить фон на всем сайте. Делается это очень просто. Откройте файл user.css и добавьте туда код:

.container { background: transparent; }

Результат этой операции можно увидеть ниже:

Теги: topshop
5 апреля 2017

Добавление картинок в центральное меню

Добавить картинки в меню легко. Для этого нам понадобиться плагин Картинки для категорий или ручное добавление картинок в дополнительные поля (см. видео-инструкцию по добавлению картинок)

Для этого надо открыть файл navigation.html и произвести замену кода.

Найти и удалить код

{foreach $lvl1.childs as $lvl2}
<li{if $lvl2.childs && !$theme_settings.navigation_menu} class="tree"{/if}><a href="{$lvl2.url}">{$lvl2.name} {if !empty($lvl2.params.badge)}<span class="category-badge hidden-md-down">{$lvl2.params.badge}</span>{/if}</a>
{if !$theme_settings.navigation_menu}
{if $lvl2.childs}
<ul>
    {foreach $lvl2.childs as $lvl3}
    <li{if $lvl3.childs} class="tree"{/if}><a href="{$lvl3.url}">{$lvl3.name} {if !empty($lvl3.params.badge)}<span class="category-badge hidden-md-down">{$lvl3.params.badge}</span>{/if}</a>
    {if $lvl3.childs}
    <ul>
        {foreach $lvl3.childs as $lvl4}
        <li><a href="{$lvl4.url}">{$lvl4.name} {if !empty($lvl4.params.badge)}<span class="category-badge hidden-md-down">{$lvl4.params.badge}</span>{/if}</a></li>
        {/foreach}
    </ul>
    {/if}
    </li>
    {/foreach}
</ul>
{/if}
{/if}
</li>
{/foreach}

и вместо этого кода вставить

{foreach $lvl1.childs as $lvl2}
<li>
    <div class="text-center">
        <div class="image"><a href="{$lvl2.url}">
            {if !empty($lvl2.image) && isset($lvl2.image)}
            <img src="{$wa_url}wa-data/public/shop/categories/{$lvl2.id}/{$lvl2.id}.200{$lvl2.image}">
            {else}
            {if !empty($lvl2.params.img)}
            <img src="{$lvl2.params.img}" alt="{$lvl2.name}"/>
            {else}
            <img src="{$wa_theme_url}img/no-foto-catalog.gif">
            {/if}
            {/if}
        </a></div>
        <a href="{$lvl2.url}">{$lvl2.name}</a>
    </div>
</li>
{/foreach}

Для корректного отображения в мобильной версии добавьте в user.css код:

@media (max-width: 767px) {
    .clone-xs-menu .text-center {
        text-align: left !important;
    }
    .clone-xs-menu .text-center a {
        display: inline-block !important;
        margin-left: 5px;
    }
    .clone-xs-menu .image {
        display: inline-block;
    }
    .clone-xs-menu .image img {
        max-height:55px;
    }
    .clone-xs-menu .image a {
        height:75px;
        margin-left: 0;
    }
}

Отредактируйте настройки плагина и добавьте туда размер 200

Теги: topshop
19 марта 2017

Вывод каталога на главной странице

Иногда есть необходимость вывести весь каталог на главной странице, это можно сделать воспользовавшись нашей инструкцией. Мы предлагаем два варианта вывода каталога на главной странице - простым текстом и с картинками.

Вариант №1 (Простым текстом)

Данный код можете вставить в файл home.single.html

{if $categories_shop = $wa->shop->categories(0, null, true, true)}
<div class="row c-main-text">
    {foreach $categories_shop as $lvl1}
    <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6">
            <div class="name-lvl-one"><a href="{$lvl1.url}">{$lvl1.name}</a></div>
            {if $lvl1.childs}
                {foreach $lvl1.childs as $lvl2}
                     <div class="name-lvl-two"{if $lvl2@iteration > 6} style="display:none;"{/if}>— <a href="{$lvl2.url}">{$lvl2.name}</a></div>
                {/foreach}
                {if $lvl1.childs|count > 5}
                    <div class="show-more"><a href="">Еще ({$lvl1.childs|count - 5})</a><i class="fa fa-plus-square"></i></div>
                {/if}
            {/if}
    </div>
    {/foreach}
</div>
<script>
    $(".show-more a").click(function () {
        $(this).closest(".col-lg-3").find(".name-lvl-two").fadeIn();
        $(this).parent(".show-more").hide();
       return false;
    });
</script>
{/if}

Добавить в файл user.css код

.c-main-text {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap;
}
.c-main-text [class*="col-"] {
  display: flex;
  flex-direction: column;
}
.c-main-text .col-lg-3 {
  margin-bottom: 20px;
  height: auto;
}
.c-main-text a {
  color: #333333;
}
.c-main-text .name-lvl-one {
  font-size: 18px;
  font-family: 'Roboto-Medium', serif;
}
.c-main-text .name-lvl-two {
  font-size: 16px;
  font-family: 'Roboto-Light', serif;
  color: #c0c0c0;
}
.c-main-text .show-more {
  font-family: 'Roboto-Light', serif;
  color: #838383;
  margin-left: 17px;
  font-size: 12px;
}
.c-main-text .show-more .fa {
  margin-left: 5px;
}
.c-main-text .show-more a {
  font-size: 14px;
  color: #838383;
  border-bottom: 1px dotted #838383;
}
.c-main-text .show-more a:hover,
.c-main-text .show-more a:focus {
  text-decoration: none;
}

Вариант №2 (с картинками)

Данный код можете вставить в файл home.single.html
{if $categories_shop = $wa->shop->categories(0, null, true, true)}
<div class="row c-main-image">
    {foreach $categories_shop as $lvl1}
    <div class="col-lg-3 col-md-3 col-sm-6 col-xs-6">
        <div class="row">
            <div class="col-lg-3 col-md-4 col-sm-3 col-xs-3"><a href="{$lvl1.url}">{if $lvl1.params.img}<img src="{$lvl1.params.img}" alt="{$lvl1.name}">{else}<img src="{$wa_theme_url}img/no-foto.gif" alt="{$lvl1.name}">{/if}</a></div>
            <div class="col-lg-9 col-md-8 col-sm-9 col-xs-9">
                <div class="name-lvl-one"><a href="{$lvl1.url}">{$lvl1.name}</a></div>
                {if $lvl1.childs}
                {foreach $lvl1.childs as $lvl2}
                <div class="name-lvl-two"{if $lvl2@iteration > 6} style="display:none;"{/if}><a href="{$lvl2.url}">{$lvl2.name}</a></div>
                {/foreach}
                {if $lvl1.childs|count > 5}
                <div class="show-more"><a href="">Еще ({$lvl1.childs|count - 5})</a><i class="fa fa-plus-square"></i></div>
                {/if}
                {/if}
            </div>
        </div>
    </div>
    {/foreach}
</div>
<script>
    $(".show-more a").click(function () {
        $(this).closest(".col-lg-3").find(".name-lvl-two").fadeIn();
        $(this).parent(".show-more").hide();
        return false;
    });
</script>
{/if}

Добавить в файл user.css код

.c-main-image {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  flex-wrap: wrap;
}
.c-main-image [class*="col-"] {
  display: flex;
  flex-direction: column;
}
.c-main-image .col-lg-5 {
  margin-bottom: 20px;
  height: 220px;
  padding-right: 0 !important;
}
.c-main-image img {
  max-width: 100%;
}
.c-main-image a {
  color: #333333;
}
.c-main-image .name-lvl-one {
  font-size: 18px;
  font-family: 'Roboto-Medium', serif;
}
.c-main-image .name-lvl-two {
  font-size: 16px;
  font-family: 'Roboto-Light', serif;
  color: #c0c0c0;
}
.c-main-image .show-more {
  font-family: 'Roboto-Light', serif;
  color: #838383;
  font-size: 12px;
}
.c-main-image .show-more .fa {
  margin-left: 5px;
}
.c-main-image .show-more a {
  font-size: 14px;
  color: #838383;
  border-bottom: 1px dotted #838383;
}
.c-main-image .show-more a:hover,
.c-main-image .show-more a:focus {
  text-decoration: none;
}

Для главной категории надо использовать дополнительное поле для вывода картинки. Загрузите картинку и вставьте её в дополнительное поле категории. См. картинку ниже:

Теги: topshop
8 марта 2017

Укрощяем блок Бренды

Если у вас много брендов, допустим 100 или 200, список будет очень длинный и растянется на всю высоту сайта, мы предлагаем его сократить и сделать ссылку "Показать все". См. нашу картинку, как это будет выглядеть

Откройте файл home.split.html и category.html и произведите замену кода

        {if method_exists(shopProductbrandsPlugin, 'getBrands')}
        <div class="brands-shop hidden-md-down">
            <h5>[`Brands`]</h5>
            <div class="row">
                {foreach shopProductbrandsPlugin::getBrands() as $b}
                <div class="col-lg-6 col-md-6">
                    <a title="{$b.name}" href="{$b.url}">{$b.name}</a>
                </div>
                {/foreach}
            </div>
        </div>
        {/if}

На новый код

        {if method_exists(shopProductbrandsPlugin, 'getBrands')}
        <div class="brands-shop hidden-md-down">
            <h5>[`Brands`]</h5>
            <div class="row">
                {foreach shopProductbrandsPlugin::getBrands() as $b}
                <div class="col-lg-6 col-md-6" {if $b@iteration > 10}style="display:none;"{/if}>
                    <a title="{$b.name}" href="{$b.url}">{$b.name}</a>
                </div>
                {/foreach}
            </div>
            {if shopProductbrandsPlugin::getBrands()|count > 10}<p><small><a href="#" class="show-all-brands">Показать все</a></small></p>{/if}
            <script>
                $(".show-all-brands").click(function() {
                    $(".brands-shop .col-lg-6").css("display", "block");
                    $(this).hide();
                    return false;
                });
            </script>
        </div>
        {/if}

В данном коде выводиться 10 первых записей брендов, если вы хотите выводить 20 или другое любое число, в коде $b@iteration > 10 и shopProductbrandsPlugin::getBrands()|count > 10 замените цифру 10 на ваше число, допустим 20