Как сделать кнопку очистки корзины на отдельной странице?

Чтобы добавить кнопку очистки корзины на отдельной странице в 1C-Bitrix, вам потребуется изменить шаблон компонента "Корзина" и добавить специальную кнопку.

1. Вам понадобится настроить дизайн для кнопки очистки корзины. Это можно сделать с помощью HTML и CSS. Например, вы можете использовать следующий код для создания кнопки:

<button id="clear-cart-button">Очистить корзину</button>

2. По умолчанию шаблон компонента "Корзина" в 1C-Bitrix находится в папке /bitrix/components/bitrix/sale.basket.basket/templates/.default/. Вам нужно скопировать шаблон внутри этой папки и переименовать его, например, в my_template.

3. В новом шаблоне my_template вам нужно добавить вашу кнопку очистки корзины. Для этого она может быть вставлена в любое удобное для вас место, например, внутри <form>:

<form method="post" action="<?=POST_FORM_ACTION_URI?>">
    <!-- ... -->
    <button id="clear-cart-button">Очистить корзину</button>
    <!-- ... -->
</form>

4. Добавьте JavaScript-обработчик события клика на кнопке, который будет отправлять AJAX-запрос на сервер для удаления товаров из корзины. Вам понадобится использовать API Bitrix для обработки AJAX-запросов. Например, используйте следующий код:

<script>
    document.addEventListener('DOMContentLoaded', function() {
        document.getElementById('clear-cart-button').addEventListener('click', function(event) {
            event.preventDefault();

            BX.ajax.post(
                '/path/to/ajax-handler.php', // Замените на свой путь к обработчику AJAX-запросов
                { clear_cart: 'Y' }, // Параметр для обработчика, указывающий на необходимость очистки корзины
                function(result) {
                    console.log(result); // Вывод результата в консоль (для демонстрации)
                    // Здесь вы можете добавить код для обработки успешного ответа
                }
            );
        });
    });
</script>

5. Наконец, вам нужно создать обработчик AJAX-запросов на сервере. Создайте файл ajax-handler.php и поместите его в папку вашего шаблона my_template. В обработчике PHP вы можете использовать API Bitrix для очистки корзины. Например, вот пример кода:

<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

if (isset($_POST['clear_cart']) && $_POST['clear_cart'] === 'Y') {
    CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID());
    die('Cart cleared successfully.');
}

die('Invalid request.');

6. Не забудьте изменить путь к обработчику AJAX-запросов в коде JavaScript (шаг 4) и в форме отправки (шаг 3), заменив /path/to/ajax-handler.php на свой путь к файлу ajax-handler.php.

Теперь при нажатии на кнопку "Очистить корзину" на вашей отдельной странице, корзина будет очищаться с помощью AJAX-запроса через обработчик ajax-handler.php.