| 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() ); |