Максимальное количество товара
Здравствуйте. Подскажите пожалуйста, как сделать максимальное количество одного товара равным 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.' товара нельзя');
}
}
Дмитрий, спасибо!
Ваш вариант срабатывает через раз при повторном нажатии на кнопку.
Ваш вариант срабатывает через раз при повторном нажатии на кнопку.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.