Максимальное количество товара
        Здравствуйте. Подскажите пожалуйста, как сделать максимальное количество одного товара равным 1? То есть сделать так, чтобы пользователь не мог добавить в корзину товар больше одного раза    
    
    
                                                                                
            Комментарии: 8
                В итоге решилось так. Плагин с кодом:
<?php
                    <?php
if ($modx->event->name = 'msOnBeforeAddToCart' || $modx->event->name = 'msOnBeforeChangeInCart') {
	$values = & $modx->event->returnedValues;
	if ($values['count'] < 1) {
		$values['count'] = 1;
	}
}и события msOnBeforeAddToCart и msOnBeforeChangeInCart.            
                У меня данный плагин позволяет выбирать по одной единице из каждой товарной позиции.
А как выбрать только одну единицу из всего ассортимента?
                    А как выбрать только одну единицу из всего ассортимента?
                total? )))            
                    
                Если так:
                    $values['total_count'] = 1;То не работает.            <?php
switch($modx->event->name){
    case 'msOnBeforeAddToCart':
        $tmp = $cart->get();
    
        
        if(!empty($tmp)){
            $modx->event->output('Больше одного товара нельзя');
        }
        
        break;
        
    case 'msOnChangeInCart':
        
        $tmp = $cart->get();
        $tmp[$key]['count'] = 1;
        $cart->set($tmp);
        
        $modx->event->output('Количество только 1');
        
        break;
}            
                Михаил, спасибо!
Ваш вариант работает!!!
                    Ваш вариант работает!!!
                для вопроса заданного здесь — Максимальное количество товара в размере одной единицы для всех товаров корзины,
можно еще такое железобетонное решение… должно помочь
                    можно еще такое железобетонное решение… должно помочь
<?php
if ($modx->event->name = 'msOnAddToCart' || $modx->event->name = 'msOnBeforeChangeInCart') {
    $max=5; //наше максимальное значение
    $mark=0;
    foreach ($_SESSION['minishop2']['cart'] as $key_item => $item) {
        if($item['count'] > $max){
            $_SESSION['minishop2']['cart'][$key_item]['count'] = $max;
            $mark=1;
        }
    }
    if($mark==1){
        $modx->event->output('Больше '.$max.' товара нельзя');
    }
}            
                Дмитрий, спасибо!
Ваш вариант срабатывает через раз при повторном нажатии на кнопку.
                    Ваш вариант срабатывает через раз при повторном нажатии на кнопку.
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.