Виджет корзины
Руководство для разработчиков виджета корзины
Инициализация корзины:
Добавление или удаление товар из корзины:
kaktusWidget.changeCart({
variantId: 12345, //ID варианта товара. Можно посмотреть в ЛК2. Если у товара не задано несколько вариантов id единственного варианта будет равен id товара.
//variantExtId: 'AB123CD', - можно указать вместо variantId. Тогда поиск варианта товара будет выполняться не по id а по полю "Внешинй Id".
//которому в ЛК можно задать любое произвольное значение. Например указать его равным артикулу товара. И таким образом реализовать добавление товара по артикулу.
count: 1, //Количество добавляемых или удаляемых товаров
operation: 'ADD' //или 'DELETE'
});
Автоматическое добавление промокода:
kaktusWidget.setDefaultPromocode('promocodeName'); // 'promocodeName' заменить на имя промокода
Примером использования событий и коллбэков корзины может служить работа с аналитикой.
Визуальная настройка иконки корзины описана здесь.
Полная замена иконки корзины на кастомную. Тоже может служить примером работы с событиями для обновления количества товаров в кастомной корзине, а также вывода сообщения "товар добавлен в корзину".
Настройка Google Analytics и Yandex Metrica для корзины
Базовая настройка аналитики:
kaktusWidget({
domain: kak2c_domain,
basketClickCallback: function(){
//События аналитики при открытии корзины
yaCounter53862778.reachGoal('checkout_started');
gtag('event', 'checkout_started', {
'event_category' : 'ecommerce'
});
},
newOrderCreatedCallback: function(){
//События аналитики при формированиии заказа
var goalParams = {
order_price: kaktusWidget.totalSum,
currency: "RUB"
}
yaCounter53862778.reachGoal('checkout_finished', goalParams);
gtag('event', 'checkout_finished', {
'event_category' : 'ecommerce'
});
},
});
dataLayer для расширенной электронной торговли Google Analytics совместно с Google Tag Manager корзина формирует автоматически. Также использование этого dataLayer можно настроить в Яндекс.Метрике: https://yandex.ru/support/metrica/data/e-commerce.html . Если к Вашей странице не подключена библиотека gtm.js и не настроен данный режим Яндекс.Метрики, это не на что не влияет. Однако если Вы собираетесь формировать эти события вручную, данный автоматический функционал можно отключить. Для этого при инициализации kaktusWidget укажите параметр enableDataLayer: false;
Кроме описанных выше событий открытия корзины и формирования заказа также можно использовать события добавления и удаления товаров в корзину. Для этого перед инициализацией виджета корзины добавьте следующий код:
document.addEventListener("kaktusEvent", function (e){
if (e.detail.type == 'cart_item_add') {
//Добавление товара в корзину. Данные добавляемого товара (включая добавленное количество) находятся в e.detail.content.item
}
if (e.detail.type == 'cart_item_removed') {
//Удаление товара из корзины. Данные товара (включая удаляемое количество) находятся в e.detail.content.item
}
});
В таком же обработчике событий можно реализовать более продвинутую google аналитику при оформлении заказа, которая передает не только сам факт покупки но и всю информацию о товарах в заказе. Для этого перед инициализацией виджета добавьте следующий код
document.addEventListener("kaktusEvent", function (e){
//создан заказ
if (e.detail.type == 'order_created') {
var content = e.detail.content;
var cart = kaktusWidget.getCart();
var items = cart.items.map(function (item) {
return {
"id": item.productId,
"name": item.name,
"price": item.price,
"quantity": item.count,
"brand": item.brandName,
}
});
var tansaction = {
"transaction_id": content.orderId,
"value": content.totalOrderSum,
"currency": "RUB",
"items": items,
}
gtag('event', 'purchase', tansaction);
}
});Стилизация корзины
Иконка корзины имеет следующую структуру
11234 ₽
где
.basket-round - собственно иконка
.basket-count - кружочек с количеством товаров в корзине
.basket-money - общая сумма товаров в корзине. Появляется в момент добавления в корзину товара и гаснет через некоторое время.
Задавая стили для этих классов в файле css Вашего сайта можно изменить внешний вид корзины. Например заменить цвет иконки корзины с черного на зеленый, а кружочек с количеством покупок из нижнего правого угла перенести в верхний левый:
.basket-round {
background-color: green !important;
}
.basket-count {
top: 0 !important;
left: 0;
right: auto !important;
}
Также имеется возможность полностью заменить иконку корзины на кастомную, например вписанную в заголовок Вашего сайта.Замена иконки корзины по умолчанию на собственную
Для заменя иконки корзины по умолчанию на свою собственную, достаточно:
Скрыть существующую иконку корзину (скрыть класс .basket-round)
Создать свои иконку корзины с любым другим дизайном и указать для неё класс .custom-shopping-cart
Если необходимо, в иконку корзины можно добавить иконку количества. Чтобы количество в ней обновлялось при любых действиях в корзине, нужно при событии kaktusEvent получать данные о товарах kaktusWidget.getCart().items и обновлять цифру в иконке количества
Если необходимо, возможно сделать свой собственный попап "Товар добавлен в корзину". Для этого возможно при типе события cart_item_add отобразить свой попап.
Пример страницы с кастомной корзиной со всеми вышеперечисленными функциями:
Кастомная корзина
Интеграция в Ecwid
1. В настройках внешнего вида сайта Ecwid включите отображение артикула на странице товара. Это важно для правильной работы виджета корзины Кактус. Если Вы не хотите чтобы артикул отображался покупателю, его можно скрыть (см. комментарии в коде ниже). Но тем не менее включать в настройках его все равно обязательно.
Войдите в редактирование внешнего вида сайта.
Затем магазин/страница товара
2. В поле "мета-теги для верификации сайта" после уже имеющегося там кода добавьте код интеграции виджета корзины Кактус. При этом вместо "XXXXX" не забудьте указать свой ID аккауната, который можно посмотреть в настройках ЛК Кактуса.
3. В ecwid задайте артикулы всем товарам. Если Вы не ведете артикулы, можно задать любое значение, лишь бы оно было уникально для каждого товара. Для товаров с вариантами нужно задать уникальный артикул для каждого варианта. И то же самое значение нужно указать в поле "Внешний ID" товара или варианта в ЛК Кактуса.
Интеграция в Tilda
1. Из ЛК Кактус перейдите в редактор интернет-магазина
Кликнув по иконке с изображением шестеренки откройте панель настроек витрины
Выберите вкладку "Интеграции"
В данной вкладке настройте счетчики Яндекс.Метрики и Google Analytics (не обязательно).
Переключатель "Режим работы по внешнему ID варианта" отвечает за то, какой код товара следует задавать в качестве "Артикула" в Тильде. Если он выключен - указывается ID товара из ЛК Кактуса. Если включен - внешний ID.
ID товара автоматически создается системой и его нельзя изменить. В качестве внешнего ID Вы можете задать любое значение. Например артикул. Главное чтобы оно было уникальным у всех товаров. А для товаров с вариантами - у всех вариантов всех товаров.
Примечание
При изменении любого значения во вкладке Интеграции, чтобы оно отразилось в Вашем магазине на Тильде надо заново скопировать в Тильду код виджета (см. п. 2)
2. Скопируйте содержимое поля "Виджет корзины для конструктора Тильда" из вкладки "интеграции" витрины в Html-код для вставки внутрь HEAD в Тильде.
Войдите в настройки сайта.
Далее "еще", "Html-код для вставки внутрь HEAD"
После редактирования кода обязательно заново опубликуйте все страницы сайта!
3. Для всех товаров в Тильде в поле артикул задайте значение Id или внешнего Id (в зависимости от настроек из п.1) со страницы соответствующего товара ЛК Кактус.
Для товаров с вариантами надо задать артикул каждого варианта в Тильде равный Id (или внешнему Id) соответствующего варианта в ЛК Кактус.
4.Для того, чтобы связать товары в кактусе и в тильде по ID следует:
А. Перейти на редактирование страницы сайта.
В разделе где расположены товары нажать на кнопку «Контент».
В карточке товара, который нужно связать следует нажать на «Еще: кнопка, метка, параметры».
Найти поле «Подзаголовок или артикул» и вписать в него ID товара из кактуса.
Б. Перейти в раздел товаров.
Выбрать товар который нужный связать и нажать на него.
В разделе товара нажать на кнопку "Контент".
Найти поле «Подзаголовок или артикул» и вписать в него ID товара из кактуса.
Открытие попапа корзины при каждом добавлении в нее товара
Полное описание интеграции корзины находится здесь. Нужно добавить следующий фрагмент кода:
Примечание: Если у Вас уже есть обработчик события kaktusEvent с другой логикой, рекомендуется еще один не создавать, а добавить в конец существующего (если параметр обработчика у Вас называется не "e", не забудьте заменить его имя в коде ниже):
if (e.detail.type == 'cart_item_add' && e.detail.content.fromOutsidePopup) {
document.getElementsByClassName('basket-round')[0].click();
}
Интеграция в LPMotor
Подключение виджета умной корзины Кактус
Войдите в общие настройки сайта
В поле "Вставка в тэг head" добавьте следующий код
Внимание! В строке
var kak2c_domain = "shopXXXXXX";
XXXXXX заменить на ID аккаунта, который можно посмотреть в настройках ЛК Кактус.
Создание кнопки для добавления товара в корзину
Войдите в редактор страницы IPMotor. Добавьте на Вашу страницу новую кнопку.
Кликните на эту кнопку, затем войдите в ее редактирование. Выберите Действие - "Переход по ссылке"
В качестве ссылки задайте следующую строку (начиная со знака "#", без пробелов)
#order:XXXX
Вместо XXXX укажите ID товара, который должна добавлять в корзину эта кнопка. ID товара можно посмотреть в личном кабинете Кактуса:
Примечание: для товаров с вариантами нужно указывать ID варианта.
Вместо ID товара или варианта можно использовать артикул, который в этом случае указывается в поле "Внешний ID" ЛК Кактуса. Для этого нужно изменить код из предыдущего раздела: фрагмент
kaktusWidget.changeCart({
variantId: article,
count: 1,
operation: 'ADD'
});
Заменить на
kaktusWidget.changeCart({
variantExtId: article,
count: 1,
operation: 'ADD'
});Интеграция в WordPress
При наличии WooCommerce (или одной из тем, базирующихся на нем)
1. Зайти в редактор тем WP и найти там файл, содержащий head всех страниц. Обычно он называется header.php
2. Добавить в страницы следующий код:
Внимание! Вместо "XXXXX" не забудьте указать свой ID аккауната, который можно посмотреть в настройках ЛК Кактуса.
Вместо YYYY - ID Вашего счетчика в Яндекс.Метрике. Или если Вы не используете Яндекс.Метрику - удалите код аналитики (см. комментарии по коду). Подробное руководство по подключению аналитики.
3. Найдите в коде темы все кнопки, при нажатии на которые товар должен добавляться в корзину. Файлы в которых они расположены зависят от темы. Возможно этих файлов вообще нет в теме, тогда их надо создать скопировав из кода плагина Woocommerce (см. документацию WP по созданию тем). И модифицируйте их код наподобие следующего:
single_add_to_cart_text() ); ?>
Выделенный жирным фрагмент (включая, что кнопка должна представлять из себя именно тег ) важен для правильной работы кнопки. Остальной код рекомендуется не копировать отсюда а оставить тот который есть в теме, чтобы сохранить внешний вид кнопки. Или кастомизировать на свое усмотрение.
4. В каталоге товаров WP проставьте для всех товаров Артикул (или любой другой удобный Вам идентификатор лишь бы он был уникален для каждого товара и варианта). Для простого товара:
Для вариантного товара. Важно! Это нужно сделать отдельно для каждого варианта:
5. Такие же артикулы нужно проставить в полях "Внешинй ID" товаров (или вариантов для товаров с вариантами) в ЛК Кактуса. Важно! Сопоставление товаров в ЛК Кактус выполняется именно по полю "Внешний ID", а не Артикул.
Без WooCommerce (каталог товаров отсутствует, кнопка "Добавить в корзину" добавляется вручную к верстке и вручную привязывается ко внешнему ID товара в Кактусе)
В п.2 добавить следующий код:
Внимание! Вместо "XXXXX" не забудьте указать свой ID аккауната, который можно посмотреть в настройках ЛК Кактуса.
Код приведен без аналитики. Если она нужна, она будет аналогична варианту с Woocommerce, можно скопировать оттуда. Подробное руководство по подключению аналитики.
3. В верстку добавить кнопки добавления товара в корзину
Добавить в корзину
где вместо NNNNNN указать Внешний ID товара или варианта (для товара с вариантами) из ЛК Кактус. Код приведен в минимально необходимом для работы кнопки виде. Скорее всего к нему следует добавить классы или стили для придания кнопке желаемого вида. А также заменить текст кнопки.
пп.4 не нужен. Но нужно задать всем товарам и вариантам в ЛК Кактус внешний ID, как это описано в п.5.
Внимание! Весь код в этом руководстве сильно зависит от используемой темы WP и может потребоваться его модификация.
Интеграция с Platforma LP
Для интеграции корзины Кактус необходимо зайти в админку сайта на Platforma LP и открыть настройки необходимой страницы.
В разделе Метрика и скрипты нажать кнопку "Добавить плагин".
В открывшемся списке выбрать "Произвольный код".
Плагину нужно задать имя, и в "Произвольный код HEAD" вставить следующее:
shopXXXXXXX необходимо заменить на ID магазина в формате shop + ID аккаунта в Кактусе (можно найти в настройках).
Сохранить плагин и проверить, что он включён.
Далее открыть редактор страницы.
Для кнопки "Купить" выбрать действие "Выполнить Javascript" и в соответствующее поле вставить:
add2cart('1040');
1040 -- ID товара в Кактусе, который можно найти в ЛК Кактус в разделе Товары.
Интеграция с MODX
Установка корзины Кактус в CMS MODX
В панели управления MODX перейти в Элементы - Шаблоны. Составляющие вашего магазина на MODX можно кастомизировать по своему усмотрению. В случае, на примере которого описана инструкция, необходимо зайти в шаблон Home.
В открывшемся поле с кодом шаблона в тег head вставить следующее:
shopXXXXXX необходимо заменить на ID аккаунта, который можно найти в ЛК Кактус в Настройках.
Установка кнопки "Купить"
Зайдите в раздел Элементы - Чанки и выберите необходимый чанк, в котором будет размещаться кнопка.
Код кнопки:
Купить
Связка товаров
Для корректной интеграции товаров необходимо поле идентификатора, связывающее товары, заведённые в MODX, с товарами в Кактусе.
В разделе Элементы - Дополнительные поля необходимо создать новое поле идентификатора- в нашем случае добавить дополнительную колонку к существующей форме товаров.
Создать новое дополнительное поле tvproductId
Инструкцию о создании дополнительных полей в MODX можно найти здесь.
После чего данное поле необходимо добавить в существующую форму товара.
После этого в разделе с товарами появится искомая колонка.
ID товара можно найти в Личном кабинете Кактуса в разделе Товары - Все товары в карточке искомого товара.
Интеграция с Shop-Script
Для установки умной корзины Кактус в магазин на Shop-Script зайдите в админку магазина, перейдите во вкладку Сайт и откройте Настройки сайта.
В поле "Дополнительный JavaScript-код для вставки перед закрывающим тегом " вставьте приведённый ниже код.
shopXXXXXXX нужно взять в ЛК Кактус в Настройках, где XXXXXXX -- это ID вашего аккаунта.
После этого в админке Shop-Script перейти во вкладку Магазин, выбрать раздел Товары -- Все товары. ID товара в Shop-Script необходимо скопировать во Внешний ID товара в Кактусе.
Интеграция с Magento
Установка корзины
Зайдите в админку вашего сайта на Magento. На панели управления выберите "Система", и в выпадающем списке выберите "Конфигурация".
В Конфигурации выбрать Дизайн.
В разделе Дизайн выбрать HTML заголовок, после чего выбрать Разнообразные скрипты.
Вставить в поле следующее:
Внимание! В shopXXXXXXX вместо XXXXXXX нужно указать ваш идентификатор магазина в ЛК Кактус в разделе Настройки -- Общие.
Связка товаров
В админке сайта зайти в Каталог и найти товары. Значения ИД из Magento скопировать в поле Внешний ID в ЛК Кактус.
Внешний ID можно найти непосредственно в карточке товара в ЛК Кактус.
Интеграция с Insales
Установка корзины Кактус в Insales
В админ панели Insales перейти в Настройки > Настройки сайта > Счётчики и коды.
В поле "JavaScript-код для вывода на всех страницах магазина" вставить следующее:
Код для вставки выше проверялся на работоспособность только с шаблоном дизайна "Fourth". Работоспособность на других шаблонах не гарантируется.
В зависимости от используемого вами шаблона вам может понадобиться изменить определённые детали в скрипте для его корректной работы.
В shopXXXXXXX значение XXXXXXX необходимо заменить на ID аккаунта, который можно найти в ЛК Кактус в Настройках.
Для оптимальной работы корзины поле Внешний ID в карточке товара в Кактусе должно совпадать с Артикулом товара в InSales.
Обратите внимание, что заказы, оформляющиеся через корзину Кактуса, автоматически попадают в ЛК Кактуса, минуя админку InSales.