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

Как можно запретить добавление в корзину?
miniShop2.Callbacks.add('Cart.add.before', 'restrict_cart', function() {
    miniShop2.Message.error('Добавление товаров в корзину запрещено!');

    return false;
});
не помогает (( товар все равно проходит, что делать может плагин какой можно на модиксе написать? но желательно все таки через джс
stas
27 июля 2016, 10:50
modx.pro
5
2 929
0

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

mngatoff
27 июля 2016, 23:47
+1
плагин на событие msOnBeforeAddToCart.
чтобы отказаться положить что-то в корзину, нужно сделать что-то такое:
$modx->event->output('Некий текст, который появится в красной всплывашке jGrowl');
    stas
    28 июля 2016, 10:47
    0
    Очень полезная штука! но товар все равно добавляется я вставил в самом начале события
    и почему в документации к минишопе нет этого ппц печалька ((
      mngatoff
      28 июля 2016, 10:54
      +1
      версия минишопа должна быть не меньше 2.4
      если это так, код плагина покажите
      stas
      28 июля 2016, 10:54
      3
      0
      Хотя я придумал, я просто засовываю принудительно сколько мне нужно товаров и если клиент ввел больше вывожу ваше сообщение

      $cartArray = $cart->get(); // Массив корзины
      $cartStatus = $cart->status(); // Состояние корзины
      $totalCount = $cartStatus['total_count']; // Общее количество товаров в корзине
      foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
        if ($product = $modx->getObject('msProduct', $cartProduct['id'])) { // Получаем объект товара по его ID в корзине
          $quanity = $product->getTVValue('quantity');
          $quanity1 = $cartProduct["count"];
          if($quanity1 > $quanity){
            $cartProduct['count'] = $quanity;
            $modx->event->output('Вы пытаетесь положитель больше товаров чем есть в наличии');
          }
        }
      }
      $cart->set($cartArray); // Запись нового состояния корзины
      Спасибо вам огромное!!!
        Евгений Дубровин
        18 декабря 2017, 23:18
        0
        Здравствуйте.
        скажите, пожалуйста, а куда вставлять этот код? с Модкс не так давно начал работать, сейчас тоже задача всплывающее окно сделать, если товара в на личии меньше, чем хотят положить в корзину и не дать положить.
        заранее спасибо за любые советы.
          Евгений
          22 декабря 2017, 22:22
          0
          я догадался сделать плагин на системное событие msOnBeforeAddToCart
          но почему-то работает через раз. т.е. если после красной всплывашки снова нажать «добавить в корзину» товар добавится и jGrowl уже будет зелёный.
          почему такое может быть?
          Евгений
          22 декабря 2017, 23:00
          0
          Здравствуйте.

          не подскажете почему Ваш плагин может работать через раз?

          т.е. у меня он даёт положить в корзину два раза по максимальному количеству (поле quantity), а на третий выводит красный jGrowl на четвёртый снова зелёный, на пятый снова красный.
          почему такое может быть?
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7