Замена иконки корзины по умолчанию на собственную
Для заменя иконки корзины по умолчанию на свою собственную, достаточно:
- Скрыть существующую иконку корзину (скрыть класс
.basket-round
) - Создать свои иконку корзины с любым другим дизайном и указать для неё класс
.custom-shopping-cart
- Если необходимо, в иконку корзины можно добавить иконку количества. Чтобы количество в ней обновлялось при любых действиях в корзине, нужно при событии
kaktusEvent
получать данные о товарахkaktusWidget.getCart().items
и обновлять цифру в иконке количества - Если необходимо, возможно сделать свой собственный попап "Товар добавлен в корзину". Для этого возможно при типе события
cart_item_add
отобразить свой попап.
Пример страницы с кастомной корзиной со всеми вышеперечисленными функциями:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Кастомная корзина</title>
<script src="https://static.kak2c.ru/v2/kak2c.checkout.js"></script>
<link rel="stylesheet" href="https://static.kak2c.ru/v2/kak2c.checkout.css">
<style>
/*Скрывает иконку корзины по умолчанию. Примечание: используя этот же css-класс корзину можно не скрывать, а изменить ее дизайн. */
.basket-round {
display: none;
}
</style>
<script>
document.addEventListener("DOMContentLoaded", function (){
var kak2c_domain = "XXXXXX"; // Укажите здесь Ваш идентификатор магазина
document.addEventListener("kaktusEvent", function (e){
//Отображение количества товаров в корзине при любых его изменениях. Если Вашв иконка корзины не предусматривает отображения количества товаров - не обязетельно. ВНИМАНИЕ! 'custom-cart-quantity' заменить на ID элемента Вашей иконки корзины, в которой будет отображаться количество товаров.
var quantityEl = document.getElementById('custom-cart-quantity');
if (quantityEl) {
var cart = kaktusWidget.getCart().items;
if (cart) {
var count = cart.reduce(function(count, item) {
return count + item.count;
}, 0);
} else {
count = 0;
}
quantityEl.innerHTML = count;
};
//Сообщение "товар добавлен в корзину". Не обязательно.
if (e.detail.type == 'cart_item_add' && e.detail.content.fromOutsidePopup) {
alert('Товар добавлен в корзину');
}
});
kaktusWidget({
domain: kak2c_domain
});
//ВНИМАНИЕ! 'custom-shopping-cart' замените на атрибут ID Вашей кастомной иконки, при клике на которую Вы хотите открывать попап корзины.
document.getElementById('custom-shopping-cart').addEventListener("click", function (){
document.getElementsByClassName('basket-round')[0].click();
});
});
</script>
</head>
<body>
<!--BODY документа здесь служит исключительно для примера. Вместо него предусмотрите логику добавления товара в корзину в зависисмости от используемой Вами интеграции с сайтом магазина. Также сверстайте свой кастомный элемент корзины. Для примера это просто ссылка с отображением количества товаров. -->
<h1>Кастомная корзина</h1>
<div>
<a href="javascript: void(0);" id="custom-shopping-cart">Корзина (всего товаров <span id="custom-cart-quantity">0</span>)</a>
</div>
<button onclick="kaktusWidget.changeCart({
variantId: 'BR00T-000132',
count: 1,
operation: 'ADD'
});">Добавить в корзину</button>
</body>
</html>