Не обновляется корзина.

Vallium

Профессор
Регистрация
22 Авг 2014
Сообщения
225
Реакции
46
Заметил сегодня такую проблему. Если положить товарі в корзину и зайти в нее (не в оформление заказа), то при удалении одного из товаров сумма уменьшается, но на єкране товар все равно остается. Нужно только страницу обновлять. Кто-то знает как победить?

Версия 2.1.0.2
 

Вложения

  • 1.jpg
    1.jpg
    110 KB · Просмотры: 9
Заметил сегодня такую проблему. Если положить товарі в корзину и зайти в нее (не в оформление заказа), то при удалении одного из товаров сумма уменьшается, но на єкране товар все равно остается. Нужно только страницу обновлять. Кто-то знает как победить?

Версия 2.1.0.2
откройте инструменты разработки браузера. (F12). Откройте там консоль и посмотрите, нет ли ошибок js во время ваших действий. А также вкладка network и посмотреть, точно ли все ajax запросы к серверу проходят без ошибок?
 
в консоли нет ошибок, да и в сети все с кодом 200
 
После удаления товара, должно отрабатывать обновление страницы корзины на js, покрайней мере именно так работает по дефолту опенкарт (Для просмотра ссылки Войди или Зарегистрируйся)
отрывок из catalog/view/javascript/common.js

Код:
if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
                    location = 'index.php?route=checkout/cart';
} else {

Если нужно делать обновление содержимого корзины и сумы без перезагрузки, то тогда нужно переписывать js. Если был адрес ресурса можно было более точно сказать в чем проблема.
 
вот ресурс
Скрытое содержимое доступно для зарегистрированных пользователей!
 
в /catalog/view/javascript/common.js
Попоробовать добавить:
location.reload();

Код:
'remove': function(key) {
        $.ajax({
            url: 'index.php?route=checkout/cart/remove',
            type: 'post',
            data: 'key=' + key,
            dataType: 'json',
            beforeSend: function() {
                $('#cart > button').button('loading');
            },
            complete: function() {
                $('#cart > button').button('reset');
            },
            success: function(json) {
                // 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);

                if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
                    location = 'index.php?route=checkout/cart';
                    location.reload();
                } else {
                    $('#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);
            }
        });
    }

Если ошибка не устраниться console.log в помощь и отследить как отрабатывает success
 
Заметил сегодня такую проблему. Если положить товарі в корзину и зайти в нее (не в оформление заказа), то при удалении одного из товаров сумма уменьшается, но на єкране товар все равно остается. Нужно только страницу обновлять. Кто-то знает как победить?

Версия 2.1.0.2
Для начала проверьте работу корзины без ЧПУ. Это вполне может быть причиной не отработки скрипта.
 
common.js править еще не пробовал, но при отключении чпу все работает
 
Понял значит
location.reload(); был не к чему.
Нужно переписать проверку
getURLVar на location.pathname
Код:
'remove': function(key) {
        $.ajax({
            url: 'index.php?route=checkout/cart/remove',
            type: 'post',
            data: 'key=' + key,
            dataType: 'json',
            beforeSend: function() {
                $('#cart > button').button('loading');
            },
            complete: function() {
                $('#cart > button').button('reset');
            },
            success: function(json) {
                // 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);

                if (location.pathname == '/cart/' || location.pathname == '/checkout/') {
                    location = 'index.php?route=checkout/cart';
                 
                } else {
                    $('#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);
            }
        });
    }
 
блин, как все сложно )))
 
Назад
Сверху