Как вывести количество товаров в корзине?
На самом деле, это не один, а 2 вопроса.
1) как получить количество товаров для вывода по аналогии с {$cart_total = $wa->shop->cart->total()}
2) как изменять количество через js, по аналогии с $(".cart-total").html(data.total);
Спасибо!
10 ответов
1) $wa->shop->cart->count()
$wa->shop->cart - это экземпляр класса shopCart, если что.
2) Не понял вопроса...
Чтобы модифицировать состав корзины, надо отправить на сервер XHR-запрос на URL'ы [cart/add/, cart/delete/ или cart/save/]. Как делается, например, на странице товара или в списке. В ответе от сервера придёт как сумма, так и количество товаров в корзине.
Леонид, спасибо большое, разобрался!
Здравствуйте!
мне в нужном месте как вставить то, чтобы вывести количество товаров?)
$wa->shop->cart->count() - так не работает.
извините, если что за глупый вопрос) я только начал пользоваться)
Может, {$wa->shop->cart->count()} ?
Я таким образом вывел количество товаров в корзине в шапке вместо суммы заказа. Всё получилось, но при добавлении товара в корзину количество товара меняется опять на сумму. Что мне поменять? Я так полагаю что это делает js строка:
Но на что заменить чтобы возвращал количество товара а не сумму я не могу догнать.
Разобрался
Заменил на
Не знаю почему сразу не догадался просто посмотреть весь респонс =) В шаблонах по-умолчанию это в main.js и в product.js надо менять.
"$wa->shop->cart - это экземпляр класса shopCart, если что."
А как я могу узнать, что с этим классом можно делать? Например описание waContact нашёл у вас в мануалах. Подозреваю что по shopCart вы отправите меня в закрытый гитхаб репозиторий исходники копать? А как тогда быть с Хабом, к которому у меня исходников совсем нет?
Для этой цели есть плагин Актуальная.Корзина
https://www.webasyst.ru/store/plugin/shop/yartexactualcart/
Им можно и вывести кол-во товаров в корзине и сделать так, чтобы корзина была всегда актуальная (и цена и кол-во если надо) - и при клике назад в браузере, пр работе в разных вкладках, при открытии страниц магазина из истории.
Адаптирован под 45 стандартных тем дизайна. Под нестандартные задачи настраивается бесплатно.
В теме Дефолт
ищем файл default.shop.js и product.js
в файле default.shop.js ищем строку
var cart_total = $(".cart-total");
ниже нее допишите:
var cart_count = $(".cart-count");
далее ищем строку:
cart_total.html(response.data.total);
и ниже нее дописываем:
cart_count.html(response.data.count);
еще чуть ниже есть еще одна такая же строка: cart_total.html(response.data.total);
и ниже нее дописываем:
cart_count.html(response.data.count);
в файле product.js
ищем var cart_total = $(".cart-total");
ниже дописываем: var cart_count = $(".cart-count");
далее ищем: cart_total.html(response.data.total);
ниже дописываем cart_count.html(response.data.count);
со скриптами все
теперь в шаблоне в нужном месте выводим:
На этом все, количество товаров в корзине будет отображаться если добавлять товары из карточки товаров и из списков поиска и прочих.
Всем Удачи!
Подскажите, пожалуйста. По вашему лайфхаку всё получилось. А как сделать чтобы это работало при изменении количества товаров в корзине нового /order (да и старого вида /cart) тоже?