Важно! Надо СРОЧНО поменять пароли, которые предоставляли техподдержке АСПРО!

Сквозная корзина для нескольких сайтов

4 сайта (s1, s2, s3, s4) по системе многосайтовости сделано исключительно для разных языков.
товары одни

Задача:
  • сделать сквозную корзину
  • чтобы купоны и скидки с основного сайта применялись на всех сайтах

Cвои компоненты для работы с корзиной и заказами

так получает товары со всех сайтов, но если корзина пустая, то не добавляет в нее товары
$basket = Basket::loadItemsForFUser(Fuser::getId(), ['s1','s2','s3','s4']);

а так и выводит товары со всех сайтов, и добавляет норм
$basket = Basket::loadItemsForFUser(Fuser::getId(), ['s1','s2','s3','s4']);
if(empty($basket->getBasketItems()) ){
      $basket = Basket::loadItemsForFUser(Fuser::getId(), SITE_ID);
}

а заказы всегда создаем на сайте основном s1 и скидки подтягиваются
$basket = Basket::loadItemsForFUser(Fuser::getId(), ['s1','s2','s3','s4']); //корзина с товарами на всех сайтах

//проверка, что не пустая корзина
if (empty($basket->getBasketItems()))
    LocalRedirect("/");

$order = Order::create('s1', $userId); //s1 - сайт основной
$order->setBasket($basket);

Стандартные компоненты корзины и заказа
для вывода товаров со всех сайтов передать параметр в компоненты
"CUSTOM_SITE_ID" => ['s1','s2','s3','s4']

чтобы срабатывали скидки и купоны с основного сайта s1 на всех остальных сайтах (без дублирования скидок)
в ядре поменять
файл /bitrix/modules/sale/lib/discountbase.php
метод loadDiscountList
$currentList = Discount\RuntimeCache\DiscountCache::getInstance()->getDiscounts(
   $this->discountIds,
   $this->executeModuleFilter,
   's1', //тут, было $this->getSiteId()
    $couponList?: array()
);
но в данном случае будет бесполезно заводить на других сайтах скидки, они НЕ применятся