Максимальное количество товара

Здравствуйте. Подскажите пожалуйста, как сделать максимальное количество одного товара равным 1? То есть сделать так, чтобы пользователь не мог добавить в корзину товар больше одного раза
Vbif
27 апреля 2016, 17:25
modx.pro
5
3 037
0

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

Vbif
27 апреля 2016, 21:22
2
0
В итоге решилось так. Плагин с кодом:
<?php
if ($modx->event->name = 'msOnBeforeAddToCart' || $modx->event->name = 'msOnBeforeChangeInCart') {
	$values = & $modx->event->returnedValues;
	if ($values['count'] < 1) {
		$values['count'] = 1;
	}
}
и события msOnBeforeAddToCart и msOnBeforeChangeInCart.
    Александр Наумов
    12 декабря 2017, 00:55
    0
    У меня данный плагин позволяет выбирать по одной единице из каждой товарной позиции.
    А как выбрать только одну единицу из всего ассортимента?
Михаил
20 декабря 2017, 06:34
2
0
<?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;
}
Дмитрий
20 декабря 2017, 14:49
1
0
для вопроса заданного здесьМаксимальное количество товара в размере одной единицы для всех товаров корзины,
можно еще такое железобетонное решение… должно помочь
<?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.' товара нельзя');
    }
}
    Александр Наумов
    22 марта 2018, 17:54
    0
    Дмитрий, спасибо!
    Ваш вариант срабатывает через раз при повторном нажатии на кнопку.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8