Как лучше исправить обновление стоимости заказа при удалении товара из объединенного с корзиной оформления заказа?
Ссылка скопирована
Сейчас ситуация такая: при удалении товара из объединенной страницы корзины и оформления заказа не пересчитывает результирующий сумму заказа
Кто знает как исправить?
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
woocommerce
Как отображать при фильтрации товары со значением search параметра visibility: HUSKY — Products Filter for WooCommerce?
1 ответ

В 1С-Битрикс стоимость заказа при удалении товара из объединённой корзины и оформления заказа обычно не обновляется из-за того, что удаление товара происходит отдельно, а пересчёт order/ajax-компонента не вызывается. Нужно не просто удалить позицию из basket, а инициировать штатный refresh оформления заказа.
Если используется стандартный
sale.order.ajax, проверьте, не сломаны ли события компонента и не переопределён ли JS шаблона. В нормальной схеме после изменения корзины должен выполняться пересчёт: доставка, скидки, итоговая сумма, купоны и свойства заказа.На фронте обычно нужно после удаления товара вызвать обновление order component, а не только убрать строку из DOM. В зависимости от шаблона это может быть
BX.Sale.OrderAjaxComponent.sendRequest()или штатное событие/метод вашего кастомного компонента.if (window.BX && BX.Sale && BX.Sale.OrderAjaxComponent) { BX.Sale.OrderAjaxComponent.sendRequest(); }if (window.BX && BX.Sale && BX.Sale.OrderAjaxComponent) { BX.Sale.OrderAjaxComponent.sendRequest(); }
Но слепо вставлять этот код нельзя: в разных версиях и кастомных шаблонах имя объекта может отличаться. Сначала откройте консоль и проверьте, существует ли объект компонента. Также посмотрите Network: после удаления товара должен уходить ajax-запрос на пересчёт заказа. Если его нет — проблема в JS. Если запрос есть, но сумма старая — проблема уже в обработчике или кэше данных корзины.
На backend-стороне проверьте, что удаление идёт через API корзины, а не прямым SQL/самодельным endpoint. После изменения basket должны пересчитываться скидки и order:
Итог: не обновляйте только визуальную строку товара. Привяжите удаление к штатному механизму пересчёта
sale.order.ajaxили явно вызывайте refresh компонента после успешного удаления. Так сумма, доставка и скидки будут синхронны с реальной корзиной.