Переход по артикулам между карточками товаров

Добрый день.

Планируем купить вашу тему дизайна, интересует такой вопрос: Имеется ли встроенная возможность настроить отображение артикулов в карточке товара(допустим, по высоте как на скриншоте), но артикулы эти занесены не в одну карточку, а добавлены все отдельным товаром со своей карточкой?

Если изначально такого функционала нет, не подскажите каким это плагином можно реализовать?

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



4 ответа
a
Евгений Леман
programmer
#
13 ноября 2019 12:34

Если это всё же физически разные товары, то это явно не штатный функционал магазина. А значит тема так не сможет. Придется допиливать уже самому.

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

a
Дмитрий
#
13 ноября 2019 13:35

Все просто:

Есть, например, игрушка елочная. У нее 7 цветов и 8 размеров. При этом есть еще 20 таких же игрушек. Добавлять их разными карточками, разумеется, идея ужасная. Но есть, опять же к примеру, гироскутер. Он один в каталоге, но у него много расцветок. Если сделать одну карточку с выбором расцветки внутри артикулами, то вероятность того что увидев главной фотографией розовый гироскутер подросток мужского пола закроет страницу не зайдя в карточку - крайне велика. И наоборот. Да и 1 позиция в категории - смотрится так себе, согласитесь? Поэтому в одной категории можно убрать 60 артикулов в одну карточку, при этом там будет еще 20 таких же, а в другой - разбить товар на разные карточки, но сделать возможность перехода из карточки на другую карточку не выходя обратно в каталог.

Вы не подскажете какой плагин позволит реализовать эти кнопки на другие карточки под видом артикулов?

a
Евгений Леман
programmer
#
13 ноября 2019 13:53

Вы не подскажете какой плагин позволит реализовать эти кнопки на другие карточки под видом артикулов?

Да никакой. Тут нечего "плагинить". Да и одним плагином тут не отделаться. В любом случае придется еще и в теме много изменений делать. Т.к. то, что выглядит "обычно", у вас должно работать совсем по другой логике. Обращайтесь к экспертам за подобным костылем. С виду тут ничего трудного и вполне можно сделать за день. Но с другой стороны тут огромное множество подводных камней. Так что цены вам предложат самые разные. В меру своей ответственности.

PS в случае со скутерами нет вроде особой необходимости объединять товары. Большинство некрупных магазинов как раз по этой логике и работают. И в категории "iPhone X" можно встретить сотню товаров. Вариации разных цветов и гигабайтов.

a
Алекс Алексеев
#
15 ноября 2019 21:50

Ну если прям бесплатно и проще (но не с точки зрения использования), то вот:

В файле product.cart.html нужно найти строки типа:


            {else}
                <div class="item-meta__offers" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
                    {$sku = $product.skus[$product.sku_id]}
                    {if $sku.name}<meta itemprop="name" content="{$sku.name|escape}">{/if}
                    <meta itemprop="price" content="{$sku.price}">
                    <meta itemprop="priceCurrency" content="{$product.currency}">
                    {if !$sku.available}
                    <link itemprop="availability" href="https://schema.org/Discontinued" />
                    <div class="item-sidebar__options"><em class="bold error">[`This product is not available for purchase`]</em></div>
                    {elseif !$wa->shop->settings('ignore_stock_count') && !($sku.count === null || $sku.count > 0)}
                    <link itemprop="availability" href="https://schema.org/OutOfStock" />
                    {else}
                    <link itemprop="availability" href="https://schema.org/InStock" />
                    {/if}
                    <input name="sku_id" type="hidden" value="{$product.sku_id}">
                    {$product_available = $product.status && $sku.available && ($wa->shop->settings('ignore_stock_count') || $sku.count === null || $sku.count > 0)}
                </div>
            {/if}

После них добавить:

                {foreach $product.params.sizeselection as $p}
                <div class="sizeselection">
                <div style="color: #999; font-size: 13px; margin-bottom: 10px;">Выберите размер:</div>
                <div>{$product.params.sizeselection}</div>
                </div>
                {/foreach}

CSS стили для этого блока вот:

.sizeselection {
    text-align: center;
}
.sizeselection a {
    display: inline-block;
    border: 2px solid #ccc;
    border-radius: 5px;
    font-weight: 800;
}
.sizeselection span {
    background: #f0f0f0;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    position: relative;
    padding: 5px 10px;
    border-radius: 5px;
    float: left;
    cursor: pointer;
}
.sizeselection span {
    background: #f0f0f0;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    position: relative;
    border-radius: 5px;
    float: left;
    cursor: pointer;
    padding: 5px 10px;
}
.sizeselection .active {
    border: 2px solid #3baddf;
}
.sizeselection a:hover {
    border: 2px solid #3baddf;
}

Далее в карточке товара надо во вкладке Описание и SEO в самом низу найти поле ввода данных Дополнительные параметры. В него вставить:

sizeselection=<a title="[не обязательно, но при наведении будет всплывать подсказка]" href="[ссылка на цвет]" class="active"><span>400 л</span></a> <a title="[не обязательно, но при наведении будет всплывать подсказка] href="[ссылка на цвет]"><span>500 л</span></a>

Получится вот так:

class="active" при добавлении к ссылке отвечает за подсветку текущего размера.

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

Да, это муторно, но у меня много времени не заняло.

Чтобы добавить комментарий, зарегистрируйтесь или войдите