Обновление корзины "на лету" при добавлении товара из списка рекомендуемых

Скрипт для добавления товаров "на лету" из списка Рекомендуемых товаров при нахождении в Корзине:
<script>
BX.ready(function() {
    var recommendedBlock = document.querySelector('.catalog-element-section-content');
    if (!recommendedBlock) return;
    if (!BX.Sale.BasketComponent || typeof BX.Sale.BasketComponent.sendRequest !== 'function') {
        console.warn('Компонент корзины не найден');
        return;
    }
    // Функция синхронизации кнопок
    function syncButtons() {
        var basketContainer = document.getElementById('basket-root');
        if (!basketContainer) return;
        // Собираем ID товаров из видимых элементов корзины
        var basketIds = [];
        basketContainer.querySelectorAll('.basket-item[data-basket-id]').forEach(function(item) {
            if (item.style.display !== 'none') {
                var id = parseInt(item.getAttribute('data-basket-id'));
                if (id) basketIds.push(id);
            }
        });
        // Обновляем кнопки в рекомендованном блоке
        recommendedBlock.querySelectorAll('.catalog-section-item-purchase-buttons').forEach(function(btnContainer) {
            var addBtn = btnContainer.querySelector('.catalog-section-item-purchase-button-add');
            var addedLink = btnContainer.querySelector('.catalog-section-item-purchase-button-added');
            if (!addBtn) return;
            var productId = parseInt(addBtn.getAttribute('data-basket-id'));
            if (!productId) return;
            if (basketIds.includes(productId)) {
                addBtn.setAttribute('data-basket-state', 'added');
                addBtn.style.display = 'none';
                if (addedLink) {
                    addedLink.setAttribute('data-basket-state', 'added');
                    addedLink.style.display = '';
                }
            } else {
                addBtn.setAttribute('data-basket-state', 'none');
                addBtn.style.display = '';
                if (addedLink) {
                    addedLink.setAttribute('data-basket-state', 'none');
                    addedLink.style.display = 'none';
                }
            }
        });
    }
    // Наблюдатель за изменениями в корзине
    var basketRoot = document.getElementById('basket-root');
    if (basketRoot) {
        var observer = new MutationObserver(function() {
            clearTimeout(window.syncTimeout);
            window.syncTimeout = setTimeout(syncButtons, 100);
        });
        observer.observe(basketRoot, { childList: true, subtree: true });
    }
    // Клик по кнопке "В корзину" в рекомендациях
    document.addEventListener('click', function(e) {
        var addBtn = e.target.closest('[data-basket-action="add"]');
        if (!addBtn || !recommendedBlock.contains(addBtn)) return;
        setTimeout(function() {
            BX.Sale.BasketComponent.sendRequest('refreshAjax', {
                fullRecalculation: 'Y'
            });
        }, 800);
    });
    // Первоначальная синхронизация
    syncButtons();
});
</script>