После удаления товара через API корзине не обновляется
        Добрый день.
Объясню сначала задачу:
1. При заказе товара с определенного раздела, в корзину нужно добавить товар с определенным ID (товар-доставка)
2. Также все должно корректно работать при обновлении корзины и удалении товаров из корзины (если в корзине не осталось товаров с данного раздела, то и доставку нужно убирать)
Но почему-то у меня доставка удаляется но висит в корзине до перезагрузки страницы.
Вот мой стремный код если есть решение изящнее то буду очень благодарен. По сути — нужно установить определенную сумму доставки при наличии в корзине товаров из определенного раздела (категории)
    
    
                                                                                
            Объясню сначала задачу:
1. При заказе товара с определенного раздела, в корзину нужно добавить товар с определенным ID (товар-доставка)
2. Также все должно корректно работать при обновлении корзины и удалении товаров из корзины (если в корзине не осталось товаров с данного раздела, то и доставку нужно убирать)
Но почему-то у меня доставка удаляется но висит в корзине до перезагрузки страницы.
Вот мой стремный код если есть решение изящнее то буду очень благодарен. По сути — нужно установить определенную сумму доставки при наличии в корзине товаров из определенного раздела (категории)
<?php
switch ($modx->event->name) {
	case 'msOnBeforeAddToCart':
		$delivery = 0;
		$parent = $product->get('parent');
		if ($parent == 49 || $parent == 51 || $parent == 52 || $parent == 53 || $parent == 54 || $parent == 55 || $parent == 56) {
			foreach($cart->get() as $key => $value){
				if ($value['id'] == 460) {
					$delivery++;
				}
			}
			if ($delivery == 0) {
				$cart->add(460);
			}
		}
	
	break;
	case 'msOnChangeInCart':
	case 'msOnRemoveFromCart':
		$delivery = 0;
		$parent = 0;
		foreach($cart->get() as $key => $value){
			if ($value['id'] == 460) {
				$delivery++;
				$keys = $key;
			}
			if ($product = $modx->getObject('msProduct', $value['id'])) {
				$pparent = $product->get('parent');
				if ($pparent == 49 || $pparent == 51 || $pparent == 52 || $pparent == 53 || $pparent == 54 || $pparent == 55 || $pparent == 56) {
					$parent++;
				}
			}
		}
		if ($delivery == 0 && $parent != 0) {
			$cart->add(460);
		}
		else if ($delivery == 1 && $parent == 0) {
			$cart->remove($keys);
		}
	
	break;
}    Комментарии: 4
                Помогииите)            
                    
                Корзина не перерисовывается автоматически. 
А текущий товар удаляется оттуда с помощью JS. Теоретически, там можно попробовать подцепиться к доп товарам, по каким-нибудь data-атрибутам и тоже их удалить из вёрстки.
Но вообще можноо смотреть и в эту сторону полного ajax обновления содержимого: modx.pro/solutions/3942
                    А текущий товар удаляется оттуда с помощью JS. Теоретически, там можно попробовать подцепиться к доп товарам, по каким-нибудь data-атрибутам и тоже их удалить из вёрстки.
Но вообще можноо смотреть и в эту сторону полного ajax обновления содержимого: modx.pro/solutions/3942
                А коллбеки тут не помогут?
Например такой:
                    Например такой:
miniShop2.Callbacks.add('Cart.remove.response.success', 'remove_cart', function(e) {
        console.log(response);
        // Здесь логика
    });            
                Надо пробовать и экспериментировать)            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.