Как в Битрикс отменить все скидки, если товары в корзине из разных разделов?

В 1C-Bitrix есть несколько способов отменить все скидки, если товары в корзине находятся в разных разделах. Вот два из них:

1. С использованием свойства товара "Скидка"
- Откройте административную панель Bitrix и перейдите в каталог товаров.
- Найдите нужный товар и откройте его для редактирования.
- В разделе "Дополнительные свойства" найдите свойство "Скидка" и удалите значение этого свойства.
- Сохраните изменения.
- Повторите этот процесс для каждого товара в корзине, который находится в разных разделах.

2. С использованием компонента "sale.order.ajax"
- Откройте файл шаблона корзины (обычно это файл "sale.basket.basket" или "sale.order.ajax").
- В коде компонента найдите место, где выводится информация о товарах в корзине.
- Добавьте код, который будет проверять раздел товара и отменять скидку, если он находится в разных разделах.
- Пример кода на PHP, который проверяет раздел товара и отменяет скидку:

foreach ($arResult["ITEMS"]["AnDelCanBuy"] as $key => $arItem) {
   $sectionPath = CIBlockSection::GetNavChain(false, $arItem["PRODUCT_IBLOCK_SECTION_ID"]);
   $sections = array();
   while ($section = $sectionPath->Fetch()) {
      $sections[] = $section["ID"];
   }
   // Проверяем, есть ли разделы товара
   if (count(array_unique($sections)) > 1) {
      $arResult["ITEMS"]["AnDelCanBuy"][$key]["DISCOUNT_PRICE"] = 0; // Отменяем скидку
   }
}

После добавления этого кода сохраните файл и проверьте работу корзины. Теперь все скидки будут отменены для товаров, находящихся в разных разделах.

Оба этих подхода позволяют отменить скидки для товаров в корзине, находящихся в разных разделах. Выберите тот, который наиболее удобен для вас и соответствует вашим требованиям.