Перейти к основному контенту

Замена иконки корзины по умолчанию на собственную

Для заменя иконки корзины по умолчанию на свою собственную, достаточно:

    Скрыть существующую иконку корзину (скрыть класс .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>