Всего 123 804 комментария

Артур Шевченко
18 сентября 2023, 11:36
0
'msOnChangeInCart' должно срабатывать на любое изменение в корзине.

Без перезагрузки страницы сложно, тебе надо корзину перерисовывать и возвращать готовый html или всё корзину объектом. Это можно сделать только если ты расширишь обработчик корзины или напишешь свой коннектор на который будешь слать отдельный запрос на получение корзины после изменений в ней.
Виноградов Тимур
18 сентября 2023, 11:35
0
Присоединюсь к вопросу, кто-то использовал компонент в последнее время?
Автор на связи?
Алексей
18 сентября 2023, 10:45
0
Вроде разобрался, данные события case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart': не срабатывают при уменьшении количества товара в корзине, только на удаление. Поставил плагин на событие OnLoadWebDocument и цена обновляется в ту и в другую сторону. Еще бы научиться это делать без перезагрузки страницы.
Ivan
17 сентября 2023, 22:57
0
Не уверен, но там может быть доступна переменная {$total}, и тогда лучше сделать % $total == 0
Алексей
17 сентября 2023, 19:17
0
Большое спасибо Иван!
Поставил {if $idx == 4 or $idx % 32 == 0}
Всё заработало.
Ivan
17 сентября 2023, 18:54
0
Выведите {$idx} посмотрите что выведет. Возможно пдопейдж некешированным вызывается.
Алексей
17 сентября 2023, 18:51
0
А почему просто в чанке не вставить {if $idx == 1}ДОП БЛОК{/if}
Не знал об этом способе, спасибо. Вставил в чанк{if $idx == 4}… Он появляется на четвертой позиции. Но эффект тот же. Он только на первой странице.
Алексей
17 сентября 2023, 18:24
0
Удалено
Ivan
17 сентября 2023, 17:39
0
А почему просто в чанке не вставить {if $idx == 1}ДОП БЛОК{/if}
Ну если феном не работает то можно даже так схитрить
Вызвать
[[$chunk_rsya_[[+idx]]

И создать чанк chunk_rsya_1 и в нем вставить нужный вам код
Артур Шевченко
17 сентября 2023, 16:12
0
Тогда надо переходить к первому совету: логировать плагин.
Алексей
17 сентября 2023, 13:40
0
Отправляется
URL Запроса:
assets/components/minishop2/action.php
Метод Запроса:
POST
Код Статуса:
200
Артур Шевченко
17 сентября 2023, 12:33
0
Посмотри на вкладке Сеть в консоли браузера, отправляется или нет.
Алексей
17 сентября 2023, 11:09
0
Если удаляю товар из корзины при помощи кнопки
<button class="btn btn-default" type="submit" name="ms2_action" value="cart/remove"></button>
то обновление цены происходит, но если использую счетчик уменьшения кол-ва товара, то не работает. Видимо не срабатывает событие, хотя на увеличение срабатывает. Кнопки подключены так:
$('.minus').click(function () {
        var $input = $(this).parent().find('input');
        var count = parseInt($input.val()) - 1;
        count = count < 1 ? 1 : count;
        $input.val(count);
        $input.change();
        return false;
    });
    $('.plus').click(function () {
        var $input = $(this).parent().find('input');
        $input.val(parseInt($input.val()) + 1);
        $input.change();
        return false;
    });
Алексей
17 сентября 2023, 09:59
0
Я так понимаю здесь не перезаписывается почему-то обратно
$cart->set($tmp); //Записываем данные в корзину
 break;
Потому что если подобным сниппетом просто на экран выводить, то цена обновляется и в ту и в другую сторону.
Артур Шевченко
16 сентября 2023, 23:22
0
По коду лично я ошибок не вижу, поэтому на твоём месте стал бы логгировать процессы в плагине.
Алексей Смирнов
16 сентября 2023, 23:16
+1
думаю, тут можно (лучше) воспользоваться не tvFilters, а where. Описание как работать и делать выборки для мульти тв описано тут: modx.pro/solutions/23005
Артур Шевченко
16 сентября 2023, 22:33
0
Ты после уменьшения тоже страницу перезагружаешь и ничего не меняется?