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

Добрый день.

На всех страницах магазина висит модуль который показывает на какую сумму товаров в корзине.

Задача - показывать количество товаров в корзине.

Шаблон дефолтный. В файле index.html вот так изменила код:

{if $wa->shop} 
<!-- cart -->
  {$cart_total = $wa->shop->cart->total()}
   / добавила вот эту строку /
  {$cart_count = $wa->shop->cart->count()} 
   <div id="cart" class="cart{if !$cart_total} empty{/if}">
     a href="{$wa->getUrl('shop/frontend/cart')}" class="cart-summary">
     <i class="cart-icon"></i>
       / добавила строку по аналогии с cart-total: /
     <span class="cart-count">Товаров в корзине: <strong>{wa_currency_html($cart_count)} шт.</strong></span></br> 

       / в этой строке к стандартному коду добавила "Стоимость" и <strong> чтобы сумма была жирным шрифтом: /
     <span class="cart-total">Стоимость: <strong>{wa_currency_html($cart_total, $wa->shop->currency())}</strong></span>
     </a>
    <div id="cart-content">
    {* <div class="cart-just-added"> %s is now in your shopping cart </div> *}
    </div>
    <a href="{$wa->getUrl('shop/frontend/cart')}" class="cart-to-checkout" style="display: none;">
    [s`View cart`]
    </a>
   </div>
{/if}

В результате, все показывает, количество товаров в корзине, сумму.

Задачка: при добавлении нового товара в корзину:

1. количество товара не обновляется (только если перезагрузить страницу)

2. пропадает слово "Стоимость" и жирный шрифт в общей сумме (появляется при обновлении страницы).

Такое ощущение что где-то еще надо дописать запрос или переменную count. JS знаю плохо, поэтому надеюсь на Вашу помощь.




5 ответов

  • 1
    Markus 24 октября 2015 04:48 #

    Копайте cart.js в папке шаблона. По поводу второго вопроса:

    В самом начале файле есть строчка

    $(".cart-total").html(data.total);

    Замените на

    $(".cart-total strong").html(data.total);

    По первому вопросу надо дописывать JS функцию updateCart. Но надо еще смотреть, возвращает ли ajax количество.

    • +1
      Елена Елена 25 октября 2015 02:58 #

      Благодарю.

      При добавлении в корзину со страницы товара - страница обновляется. А после обновления и так все нормально.

      А вот если из каталога добавлять товар в корзину - тут то и начинаются чудеса.

      Способ

      $(".cart-total strong").html(data.total);

      не помог исправить ситуацию.

      • +2
        Александр Александр Разработчик 26 октября 2015 10:06 #

        Файл default.shop.js строку:

        cart_total.html(response.data.total);

        замените строкой:

        cart_total.find('strong').html(response.data.total);

        *таких замен должно быть две

        • +1
          Елена Елена 28 октября 2015 12:09 #

          Заработало!!!

          Не обновляет если товар добавлять из категории по артикулу, но это я еще подумаю, может получится.

  • -1
    shop Разработчик 6 ноября 2017 00:50 #

    В подобной ситуации может помочь плагин Актуальная.Корзина.

    https://www.webasyst.ru/store/plugin/shop/yartexactualcart/

    Обновляет информацию о состоянии корзины без перезагрузки страницы.

    Также обновляет информацию при нажатии кнопки Назад в браузере, и при работе с магазином в разных вкладках - добавили товар на одной из вкладок - плагин обновит информацию на всех остальных вкладках.

    Адаптирован под более 45 тем дизайна. Также в стоимость входит настройка под какие-то необычные дизайны или задачи.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите