Зачастую в одной карточке товара необходимо предоставить клиенту выбор размера или цвета, что влечет за собой изменение стоимости товара, а потому приходилось создавать для каждой вариации товара отдельную карточку.
Так было до сегодняшнего дня!
Представляем вам скрипт нашего специалиста Романа Калугина, с помощью которого вы сможете дополнить карточку товара нужной характеристикой с изменением цены и оформить товар через корзину или форму заявки.
Мы подготовили для вас два разных примера:
Пример 1
Карточка товара с джинсами, где доступен выбор цвета и цена меняется в зависимости от предпочтений клиента:

В корзине:

Пример 2
Карточка товара с турами, где сразу представлены пакеты с разной стоимостью:

В корзине:

Как реализовать
1. Расположение и оформление кнопок
В карточку товара добавим кнопки выбора цвета/размера товара. Важно разместить эти кнопки в обычном блоке или колонках внутри карточки товара.
В блоке или колонках, в которых мы разместили наши кнопки, в параметрах мы прописываем класс "color".
В примере с джинсами в колонках:

В примере с турами в блоке:

В примере с джинсами настраиваем выбор цвета с помощью кнопок вот так:

Для этого в настройках каждой кнопки на вкладке "Вид" мы задали точные оттенки цвета по RGB, продублировав их для всех трёх состояний кнопки:

Также мы отключили обводку, углы, тень, а текст в данном примере настроили так, чтобы его не было видно:

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

Здесь не потребовалось вносить масштабных изменений во внешний вид кнопок, мы использовали классический вариант оформления.
2. Настройка действия кнопок:
В гаечном ключе на вкладке "Действие" для каждой кнопки указываем "Ничего не делать":

Аналогично и в примере с турами:

В разделе "Содержимое" для каждой кнопки выбора цвета/размера/цены мы пропишем специальный код, в котором изменяем только название и стоимость товара на наши:
<div class="name" hidden> Название товара полностью </div> <div class="cost" hidden> 999 руб. </div>
В данном примере с джинсами на кнопке не будет видно название товара:

Но если вы хотите прописать название и стоимость для клиентов, как в примере с турами, сделайте это последней строкой после кода:
<div class="name" hidden> Название товара полностью </div> <div class="cost" hidden> 999 руб. </div> Название товара полностью, цена руб
Настройки содержимого кнопок для варианта с турами с указанием названия и стоимости:

3. Подмена стоимости в зависимости от выбора
В примере с джинсами мы не показываем на кнопках цвета стоимость, но ведь клиент должен её видеть! Поэтому мы установили в карточку товара один виджет "Текст" с ролью "Цена товара" и прописали по умолчанию "Цвет не выбран".

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

4. Установка скрипта
В настройках нашей страницы в разделе "Метрика и скрипты" в поле Body произвольного кода установим данный скрипт и сохраним изменения:
<style>
.hoverbtn {
border-color: red!important;
border-width: 2px!important;
}
</style>
<script src="https://cdn.jsdelivr.net/gh/romaniter/plp-cart-color@1.4/script.js"></script>

5. Хитрости
Если вы хотите скрыть на опубликованной фото товара, но показывать их в корзине, как это сделали мы в карточке товара с турами, тогда вам нужно внести фото в редакторе и проставить им класс "hidden":

Таким образом, на опубликованной фото товара исчезнут, но появятся в корзине:


Если вы хотите разместить на карточках товара стикеры со своими фото, наподобие наших масок, вы можете сделать это с использованием своих картинок с помощью данной статьи.

Вы также можете использовать данное решение без корзины с простой формой заявки. Просто разместите в карточке товара кнопку с действием "Показать окно с формой" и получайте заявки в личном кабинете и в уведомлениях:


У вас остались вопросы? Пишите нам и мы с радостью поможем:)
Платформа