Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Recommended Posts

Реализовал отображение количество товаров в корзине в шапке вот так уа.png

все нормально отображается только после удаления товара счетчик отображает надпись null

после перезагрузки страницы все как положено "0"

где искать проблему подскажите пожалуйста.

использую версию ocStore 2.3.0.2.3

 

Link to post
Share on other sites

догадываюсь что в js но поверхностно плаваю в этой области, если можно по подробней

Link to post
Share on other sites

смотрите catalog/view/javascript/common.js переменную var cart, методы c вызовами $.ajax({ и смотрите что возвращает сервер в success: function(json)

Link to post
Share on other sites

если не ошибся то там возвращает $count, вроде так должно быть. ниже этот кусок кода

Спойлер

success: function(json) {
                $('.alert, .text-danger').remove();

                if (json['redirect']) {
                    location = json['redirect'];
                }

                if (json['success']) {
                    $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');

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

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

                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                }
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
            }

 

Edited by karpus
Link to post
Share on other sites

попробуйте вот так, для отладки так же после success: function(json) { вставьте console.log(json) и посмотрите приходит ли count

 

 

success: function(json) {

    $('.alert, .text-danger').remove();
    if (json['redirect']) {
        location = json['redirect'];
    }
    if (json['success']) {
        $('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>');
        // Need to set timeout otherwise it wont update the total
        setTimeout(function () {
            if (json['count']) {
                $('#cart > button').html('<span id="cart-total"><i class="den-fa fa-shopping-cart"></i> ' + json['count'] + '</span>');
            } else {
                $('#cart > button').html('<span id="cart-total"><i class="den-fa fa-shopping-cart"></i>0</span>');
            }
        }, 100);
        $('html, body').animate({ scrollTop: 0 }, 'slow');
        $('#cart > ul').load('index.php?route=common/cart/info ul li');
    }
},
error: function(xhr, ajaxOptions, thrownError) {
    alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
Link to post
Share on other sites

MaDMaxX111спасибо за ответ, вставил приходит "0" т.е. count, но что это значит? Я понимаю мы ему принудительно назначили ноль.

в консоли сервер возвращает null

Edited by karpus
Link to post
Share on other sites

Ну следовательно в ответе сервера нет элемента count, его и нет в стандартной сборке. Может вы модификации не все применили или ещё что то.

Link to post
Share on other sites

54 минуты назад, MaDMaxX111 сказал:

Ну следовательно в ответе сервера нет элемента count, его и нет в стандартной сборке. Может вы модификации не все применили или ещё что то.

прикрепил файл описанными шагами измениний в файлах, если будет минутка гляньте, что не доделано, взял на другом форуме но там так и никто не ришил проблему.

изменения.txt

Link to post
Share on other sites

забыл дописать что в файле cart.tpl вставил вот это:

<button type="button" data-toggle="dropdown" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-inverse btn-block btn-lg dropdown-toggle"><i class="den-fa fa-shopping-cart"></i>
   <?php if ($count > 0) { ?><span id="cart-total"><?php echo $count; ?> <?php } else { ?>
    <?php echo $count = 0; ?><?php } ?></span></button>

т.е. задал count = 0; но даже если убирал это то ничего не изменялось

вот это приходит, если правильно понимаю

1.JPG

Edited by karpus
дописал мысль
Link to post
Share on other sites

я это делал почти после каждого изменения файлов

Link to post
Share on other sites

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

Link to post
Share on other sites

  • 10 months later...
В 10.09.2017 в 00:19, karpus сказал:

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

Решили проблему?

Link to post
Share on other sites

Guest
This topic is now closed to further replies.
  • Similar Content

    • By kJlukOo
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
    • By kJlukOo
      750
      Скачать/Купить дополнение


      CART CACHE - кэшируем корзину (cart.php => getProducts)
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
      Добавил kJlukOo Добавлено 25.08.2018 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 0  
    • By Alexe04
      Доброго дня!
      Использую шаблон shop store 2.
      Необходимо:
      - заменить стандартное оформление заказа по подготовленному макету (дизайн есть). Файл макета и ссылку на сайт могу прислать в личку.
      - проверить адаптивность, чтобы быть уверенным, что у всех пользователей все будет отображаться корректно на разных устройствах.
       
      Это мой первый магазин, поэтому могу что-то упустить. Но мне нужен готовый к использованию вариант.
      Подозреваю, что также нужно настроить:
      1. Шаблон письма, которое после оформления заказа приходит и клиенту и администратору магазина.
      2. Pop up корзины (пустая и с товарами) в стиле нового дизайна. Возможно это автоматически встанет, ведь саму форму мы поменяем.
      3. Возможно потребуются дополнительные модули? У меня есть некоторые модули, которые могут потребоваться. Еще не устанавливал.
      4. Было бы не плохо настроить в админке управление некоторыми элементами оформления заказа. Например: назначать/переназначать подарки к корзине заказа, размер % скидки. Необходимо это уточнить при разговоре.

      Пишите в личку, готов ответить на все вопросы, чтобы было полное понимание что я хочу.
    • By whiteblue
      Скачать/Купить дополнение Модуль "Super Custom Html Fields"
      Модуль позволяет очень просто, быстро настроить отдельные схемы кода и просто любой информации для схем, групп продуктов, категорий и производителей.
       
      Возможности модуля:
      1. Гибкие настройки и фильтры, вывод любой информации на всех страницах сайта, вывод по отдельным категориям, товарам, производителям, добавление настроек ко всем товаров категории (Продукты категорий) и ко всем товарам производителя (Продукты производителей), макетам.
       
      2.Фильтр "URL содержит". Можно добавить настройку для отдельных страниц сайта, если в url страницы содержится введенное значение. В карточке товар поиск из полного урла, в категории - ключевое слово из таблицы seo_url.
       
      3. Возможность вывода любой информации в любой части страницы: Любой html, js, jquery, ajax–код и в любой части странице Выберите селектор блока и положение данных, относительно блока (перед, после, вместо).
       
      4. Возможность замены блока полностью или только его содержимого.
       
      5. Селекторы можно использовать абсолютно любые, от класса, заканчивая набором элементов, любые схемы селекторов, для jquery.
      6. Копировать настройки из ранее созданных схем.

      7. Настройка гибких условий отображения настроек в товарах. Условия И, ИЛИ, НЕ. Например, выбираем для вывода Продукты категорий КРОМЕ определенных товаров; выбираем продукты категорий И товары производителей. ИЛИ используется по-умолчанию. Название блоков являются кнопками, которые можно использовать для составления условий.
       
      8. Использовать в настройках переменные товара. Введены переменные $product и $products, которое можно использовать в настройке в блок Код блока.
      $products - массив со всеми выбранными товарами.
      $product - данные текущего товара ( работает только в карточке товара).
       
      Данные продукта, которые могут использоваться в настройках:

      date_added: Дата создания
      date_available: Дата поступления
      date_modified: Дата изменения
      description: Описание
      ean: EAN
      height: Высота
      image: Изображение товара
      isbn: ISBN
      jan: JAN
      location: Расположение
      manufacturer: Наименование производителя
      manufacturer_id: Id производителя
      meta_description: Мета-тег Description
      meta_keyword: Мета-тег Keyword
      meta_title: Мета-тег Title
      minimum: Минимальное кол-во заказа
      model: Модель
      mpn: MPN
      name: Название товара
      price: Цена товара
      product_id: Id товара
      quantity: Кол-во товара
      sku: SKU
      sort_order: Сортировка
      status: Статус
      stock_status: Статус на складе
      stock_status_id: Id статуса на складе
      tag: Теги
      tax_class_id: Id налога
      upc: UPC
      weight: Ширина
      width: Длина
       
      Пример: вывод название текущего товара будет иметь вид $product.name;
      вывод цена 3-го товара из массива $products[2].price;.
      Можно задать лимит вывода товара из переменной $products.
       
      9. Библиотека Настроек. Можно выбрать настройку из библиотеки кода.
       
      10. Фильтр настроек. Позволит быстро найти и применить настройку из библиотеки.
       
      11. Добавление своих настроек в библиотеку готовых решений.
       
      12. Добавление неограниченного количества настроек к одной схеме товаров.
       
      13. Автоматическое добавление нового товара к схеме.
       
       
      Преимущества модуля:
      Модуль способен заменить более 100 других модулей. Совместим с более 95% шаблонов. Рекомендован для каждого интернет-магазина. Модуль позволяет расположить любую информацию на любой странице сайта. Модуль мультиязычный.  
      Примеры использования:
      Создание посадочных страниц Создание тем и шаблонов Возможность создания блога на сайте, отредактировав карточку товара как статью Возможность создания портфолио, отредактировав карточку товара, под объект портфолио Замена общего номера телефона в определенных продуктах или категориях на номер менеджера направления Скрыть или заменить некоторые элементы в продуктах или категориях , например цену, кнопку,  (цено от и прочее) Добавить любой кастомный HTML код в любое место или убрать.. Добавить для категории блок с доставкой и гарантиями Добавить в моб версии кнопку позвонить и заказать у определенных продуктов У определенных продуктов скрыть корзину и добавит цена от с вызовом формы обратной связи Добавить свои стили для определенного вида страниц Замена имейла и номера у определенной группы продуктов Мультимагазин Безграничные возможности  
       
       
       
      Инструкция по установке и настройке версия 2.0
      Инструкция по установке и настройке версия 2.6
       
       
      Demo: карточка товара
      Demo: категория
      Admin (demo/demo)
       
       
      ДОБАВИТЬ МОЖНО В ГРУППЫ ТОВАРОВ (очень удобный фильтр) , ВО ВСЕ ТОВАРЫ, В КАТЕГОРИИ, ПРОИЗВОДИТЕЛЕЙ,  ТАКЖЕ ПО СХЕМАМ . и !!!Новинка!!! если url содержит.
      ЕСЛИ НУЖНА С ЭТИМ ПОМОЩЬ - ПИШИТЕ В ПОДДЕРЖКУ!
       
      Библиотека готовых решений
      1. Закрепленные кнопки Позвонить и Написать внизу страницы для мобильной версии
      Добавляются кнопки Написать - при клике, клиент переходит на страницу обратной связи и Позвонить - подключен номер телефона
      Данное решение представлено на сайте https://newstone.com.ua/.
      Отображение в мобильной версии https://prnt.sc/w4lfvn
       
      2. Перелинковка товаров
      При необходимости добавить ссылки на похожие товары, например: другого размера или цвета, типа и т.д. можно использовать данное решение. Связь товаров на основе одинаковой модели.
      Данное решение представлено на  сайтах
      https://newstone.com.ua/CL-101AURORASNOW_pryamaya
      https://au.torg.town/odessa-shirokoformatnaya-pechat/pechat-na-bannernoi-tkani/print-frontlit
      Блок имеет вид https://prnt.sc/w4pf1i
       
      3. Замена кнопки купить
      Замена кнопки Купить на произвольное значение, это может быть любой html-код или текст
       
      4. Автоматическая подгрузка товаров
      Замена стандартной пагинации на аjax подгрузку товаров. Данное решение реализовано на сайте https://pizza.torg.town/ukraina/odessa   5. Модальное окно "Заказать консультацию" Вывод модульного окна с формой обратной связи Данное решение представлено на сайте https://dveriotido.com.ua/ (кнопка Презентация в скайпе)   6. Кратное описание в карточке товара В карточке товара выводится часть описания с ссылкой Подробнее (скролл на полное описание) Данное решение представлено на сайте https://dveriotido.com.ua/dvery_mechkom/mezhkomnatnaya-dver-03-dub-temnyj-po   7. Форма обратной связи Форма для отправки обратной связи с полями ввода Имя, Телефон, Email, Комментарий.   8. Полезная информация для клиента ( о доставка, гарантии и т.д.)
      Вывод блок с информацией для клиента в карточке товара, категории или любой другой странице сайта
       
      9. Прелоадер перед загрузкой страницы
      Вывод индикатора загрузки страницы до полной загрузки страницы
       
      10. Таймер обратного отчета
      Вывод таймера обратного отчета на любую страницу. Время отчета задается в коде, по-умолчанию 5 дней.
       
      Библиотека будет дополняться
      Добавил whiteblue Добавлено 29.10.2019 Категория Меню, дизайн, внешний вид Системные требования Метод активации По запросу в ЛС Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Да Старая цена 0  
    • By SGrWr_34
      Скачать/Купить дополнение


      Распечатать корзину (коммерческое предложение)
      Отправляет содержимое корзины на печать. Только для opencart3/ocstore3. Для нестандартного шаблона скорее всего потребуется доработка. Инструкция по установке в архиве
      Добавил SGrWr_34 Добавлено 16.05.2021 Категория Покупки, оформление заказа, корзина Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 0  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.