Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Количество товаров в корзине


bobokhon1998
 Поделиться

Рекомендованные сообщения

Как вывести количество товаров в корзине в header ? И чтобы это количество автоматически обновлялось при добавлении товаров в корзину

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


в контроллере header.php получить количество

$data['count_products'] = $this->cart->countProducts();

в шаблоне вывести

<p id='count_products'><?php echo $count_products; ?></p>

и подкоректировать js  в common.js    и  product.tpl , чтобы обновлялась цена при добавлении в корзину

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

23 часа назад, fanatic сказал:

в контроллере header.php получить количество


$data['count_products'] = $this->cart->countProducts();

в шаблоне вывести


<p id='count_products'><?php echo $count_products; ?></p>

и подкоректировать js  в common.js    и  product.tpl , чтобы обновлялась цена при добавлении в корзину

 

Вот именно что и где подкорректировать в js файлах ?))

Ссылка на комментарий
Поделиться на других сайтах


посмотрите как это делается в стандартном шаблоне и повторите на своем

Ссылка на комментарий
Поделиться на других сайтах

catalog/controller/checkout/catr.php

метод add()   перед 

$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));

вставить

$json['count_products'] = $this->cart->countProducts();

аналогично в методе remove()

метод   edit()    перед

$this->response->addHeader('Content-Type: application/json');

вставить

$json['count_products'] = $this->cart->countProducts();

файл  catalog/viwe/javascript/common.js

в cart.add,  cart.edit,  cart.remove   в  success      добавить

$('#count_products').html(json['count_products']);

файл catalog/view/theme/ваша тема/template/product/product.tpl    найти

$('#button-cart').on('click', function () {

в этой функции после  

if (json['success']) {

вставить

$('#count_products').html(json['count_products']);

радуемся

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...

Здравствуйте, подскажет может кто, как убрать кеширование корзины? 

Если страницу не обновить, кол-во и список товаров не обновляется.

Ссылка на комментарий
Поделиться на других сайтах


это не кеширование, это селектор для обновления кривой

Ссылка на комментарий
Поделиться на других сайтах

29 минут назад, Gaya сказал:

что вы имеете в виду?

по умолчанию, данные обновляются в контейнере с идентификатором #cart

					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);

					$('html, body').animate({ scrollTop: 0 }, 'slow');

					$('#cart > ul').load('index.php?route=common/cart/info ul li');

а у вас, контейнер с другим идентификатором

Ссылка на комментарий
Поделиться на других сайтах

В 10.02.2020 в 13:31, fanatic сказал:

по умолчанию, данные обновляются в контейнере с идентификатором #cart


					// Need to set timeout otherwise it wont update the total
					setTimeout(function () {
						$('#cart > button').html('<span id="cart-total"><i class="fa fa-shopping-cart"></i> ' + json['total'] + '</span>');
					}, 100);

					$('html, body').animate({ scrollTop: 0 }, 'slow');

					$('#cart > ul').load('index.php?route=common/cart/info ul li');

а у вас, контейнер с другим идентификатором

Спасибо, обновили. Но проблема не ушла. Если перейти на главную и в самой корзине - без очистки кеша информация не обновляется.

Буду признательна за помощь. Готова компенсировать, если  что...

Ссылка на комментарий
Поделиться на других сайтах


дайте ссылку на сайт

Ссылка на комментарий
Поделиться на других сайтах

48 минут назад, fanatic сказал:

дайте ссылку на сайт

 

p.s.  вопрос сейчас решают, извините. 

Если не помогут, обращусь в личку.

 

Ссылка на комментарий
Поделиться на других сайтах


  • 1 год спустя...
В 21.12.2019 в 10:46, fanatic сказал:

catalog/controller/checkout/catr.php

метод add()   перед 


$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));

вставить


$json['count_products'] = $this->cart->countProducts();

аналогично в методе remove()

метод   edit()    перед


$this->response->addHeader('Content-Type: application/json');

вставить


$json['count_products'] = $this->cart->countProducts();

файл  catalog/viwe/javascript/common.js

в cart.add,  cart.edit,  cart.remove   в  success      добавить


$('#count_products').html(json['count_products']);

файл catalog/view/theme/ваша тема/template/product/product.tpl    найти


$('#button-cart').on('click', function () {

в этой функции после  


if (json['success']) {

вставить


$('#count_products').html(json['count_products']);

радуемся

 а у меня не получилось( на опенкарт 3 всё красиво само работает, а на 2.3.0.2 пока не получилось. Вывести кол-во товаров возле корзины удалось (контроллер + header.tpl), а со скриптами у меня туго. 1. У меня две записи  поэтому

$json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));

поэтому ставила строчку 

$json['count_products'] = $this->cart->countProducts();

2 раза. Потом ещё где то поставила, искала  метод remove() метод   edit(), не уверенна, что нашла, но тыкнула и ещё где то эту строчку)  , но думаю, самое сложное было для меня найти, нужное место в common.js , чтоб добавить. Короче, у меня не вышло((((. Попробую ещё раз пройти этот путь. Но, если можете уточнить, буду признательна.  Или вообще, может есть где то  переделанные файлы, с удовольствием бы скопировала)

Ссылка на комментарий
Поделиться на других сайтах


М

13 минут назад, KCEHIA сказал:

Ну никак

1. /controller/checkout/cart.php

 

2. catalog/view/javascript/common.js

3. template/product/product.tpl

Загрузила скрины. Что ещё? Где ошибка?

Такой функционал встроен в simple

Ссылка на комментарий
Поделиться на других сайтах


25 минут назад, kwakin сказал:

Такой функционал встроен в simple

дополнительный вывод количества в корзине?

и где там такое?

Ссылка на комментарий
Поделиться на других сайтах

49 минут назад, fanatic сказал:

дополнительный вывод количества в корзине?

и где там такое?

Я думал корзина оформления.

А здесь корзина хедер

Вы правы моя не внимательность

Изменено пользователем kwakin
Ссылка на комментарий
Поделиться на других сайтах


1 час назад, KCEHIA сказал:

Ну никак

после правок, обновите модификаторы

и чистите кеш

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, fanatic сказал:

после правок, обновите модификаторы

и чистите кеш

По 3 раза обновляла и кеш браузера и модификатор с панели администратора...

Ссылка на комментарий
Поделиться на других сайтах


а елемент с id="count_product' (куда должно вставляться значение)   есть в html?

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.