Как создать массив купон=размер скидки по корзине?

Чтобы создать массив, в котором каждому купону будет соответствовать размер скидки в корзине, вам потребуется использовать функционал платформы 1C-Bitrix.

В первую очередь, у вас должен быть доступ к файлу, где происходит обработка корзины. Обычно это файл /bitrix/php_interface/init.php или альтернативный файл, который вы задали для обработки корзины.

В данном файле вам нужно объявить массив, где каждый элемент будет представлять собой купон и его значение - размер скидки. Например:

$coupons = array(
    'COUPON1' => 10,
    'COUPON2' => 15,
    'COUPON3' => 20
);

Здесь мы создали массив $coupons, где купону 'COUPON1' соответствует скидка в размере 10%, купону 'COUPON2' - 15%, и купону 'COUPON3' - 20%.

Далее, вам нужно проверить, введен ли пользователем купон для применения скидки. Вы можете использовать глобальную переменную $USER для доступа к информации о текущем пользователе и его корзине.

global $USER;

if ($USER->IsAuthorized() && isset($_POST['COUPON'])) {
    $coupon = $_POST['COUPON'];
    
    if (array_key_exists($coupon, $coupons)) {
        $discount = $coupons[$coupon];
        // В этом месте вы можете применить скидку к корзине, используя значение $discount
    }
}

Здесь мы проверяем, авторизован ли пользователь и есть ли в POST-запросе переменная COUPON (купон), введенная пользователем. Если купон найден в массиве $coupons, мы присваиваем переменной $discount значение скидки для этого купона. Теперь вы можете использовать значение $discount для применения скидки к корзине в нужном месте вашего кода.

Обратите внимание, что вы можете применять скидку к корзине используя различные методы в зависимости от вашей текущей конфигурации и требований проекта. Например, вы можете использовать функцию CSaleBasket::OrderBasket(), чтобы применить скидку к конкретной корзине или использовать события модуля sale для применения скидки в разных пунктах вашего кода.

Надеюсь, данная информация будет полезной вам при работе с массивом купон=размер скидки по корзине в 1C-Bitrix.