404 выбивает потому что break, а нужен exit. я думаю так
paic
Вот полностью рабочий вариант с плагином, на всякий случай, может пригодится.
Удаляет из корзины товары с ИД, равным ИД текущей страницы, и перезагружает корзины.
1. Вот JS на странице
$(document).on('click', '[data-commerce-custom-action=remove]', function(e) {
var doc_id = '[*id*]';
$.ajax({
type: 'post',
url: '/remove-item-by-id',
dataType: 'json',
data: {doc_id: doc_id}
})
.done(function(res) {
if(res.status && res.status=='ok') {
Commerce.reloadCarts();
}
});
});
2. Вот плагин
if(isset($_GET['q'])) {
switch($_GET['q']){
case 'remove-item-by-id':
$cart = $modx->commerce->getCart();
$items = $cart->getItems();
$cart->removeById($_POST['doc_id']);
echo json_encode(['status'=>'ok']);
die();
break;
default:
die();
break;
}
}
3. Вот строка в cart_wrap.tpl (ownerTPL)
<span class="button button_sm button_gray" data-commerce-custom-action="remove">Удалить этот товар</span>