Добавление только одного товара в корзину minishop2

Добавляется услуга в корзину, и она должна быть только одна, т.е. даже если она есть уже в корзине, при добавлении должна оставаться только одна.
ms2_cart_max_count не подходит, т.к. выдает ошибку.
Т.е. нужно что бы просто выводилось что услуга успешно добавлена, но в корзине была только 1 единица.
Подскажите как реализовать.
Александр
20 сентября 2018, 06:23
modx.pro
1 635
0

Комментарии: 4

Володя
20 сентября 2018, 08:53
0
Нечетко поставлены условия.
Помимо услуги в корзине еще может быть другой товар или нет?
если нет, то вам наверно самое простое это плагин на msOnBeforeAddToCart и в нем вызывать метод clean обработчика корзины.
Если же в корзине может присутствовать другой товар то можно:
— плагин на msOnBeforeAddToCart и в нем удалять уже присутствующую в корзине услугу
— расширить обработчик корзины и поместить свою логику по работе с корзиной туда
    Александр
    20 сентября 2018, 09:00
    1
    0
    Для решения помог плагин:
    <?php
    switch ($modx->event->name) {
        case 'msOnChangeInCart':
            $tmp = $cart->get();
            $tmp[$key]['count'] = 1;
            $cart->set($tmp);
            break;
    }
    Вопрос, есть ли отличия в реализации: с помощью расширения обработчика корзины и плагина?
      AlexBleck
      11 февраля 2020, 15:59
      0
      Подскажите куда вставить этот код чтоб заработало?)
        Дмитрий
        11 февраля 2020, 16:56
        0
        Создайте новый плагин с любым именем, на вкладке системных событий поставьте галочку возле msOnChangeInCart, вставьте этот код, сохраните.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4