в корзину типа $prevent=true. То как передать причину такой отмены? например "вы не выбрали вариант товара"? что-то никакие данные назад не прилетают кроме status=failed или не туда смотрю
нужен еще плагин на OnAjaxResponse
ну я пока смотрю что прилетает на событие - cart-add-complete.commerce - и там ничего полезного на эту тему не прилетает )
Да, вот тут обсуждали. Но вот такая связка не работает у меня( if ($e->name == 'OnBeforeCartItemAdding') { if ( ($params['item']['price'] * $params['item']['count'] ) > $balance) { $mess = 'На балансе недостаточно средств'; $params['prevent'] = true; $modx->event->stopPropagation(); } } if ($e->name == 'OnCommerceAjaxResponse') { $params['response']['messages'] = $mess; } По отдельности работает, а вместе нет)
Так чтобы показать, ты причину ищешь на javascript в response.messages. А пока ты ее просто в ответ подсунул :)
а.. то есть в "OnBeforeCartItemAdding" надо только запрет добавления делать, а саму причину уже в "OnCommerceAjaxResponse'" определять?
Советую ознакомиться: Commerce
Там ниже написано же как делать
Так ты ее и определил. Теперь этот массив вместе с причиной приходит с сервера и его надо на javascript отловить и показать
Обсуждают сегодня