Сквозная корзина битрикс при многосайтовости в 1С-Битрикс
Сквозная корзина битрикс при многосайтовости в 1С-Битрикс
Объясняю и показываю примеры решений разных задач с которыми сталкивался и сталкиваюсь в процессе работы
📅 29 мая 2023
👁🗨 453
Например, у вас имеется два сайта (s1 и s2) и вы хотите, чтобы пользователь добавив в корзину товар на сайте s1 увидел этот же товар в корзине находясь на сайте s2. Или вы хотите использовать одну корзину, потому что в правилах работы с корзиной вы не можете выбрать более одно сайта. Для этого есть специальный и к сожалению неосвященный параметр для компонентов bitrix:sale.basket.basket и bitrix:sale.order.ajax - CUSTOM_SITE_ID.
<?$APPLICATION->IncludeComponent(
"bitrix:sale.basket.basket",
".default",
array(
...
"CUSTOM_SITE_ID" => "s1", // Символьный код сайта
...
),
false
);?>
<?$APPLICATION->IncludeComponent(
"bitrix:sale.order.ajax",
".default",
array(
...
"CUSTOM_SITE_ID" => "s1", // Символьный код сайта
...
),
false
);?>
Присутствие проверки на этот параметр мы можем увидеть в классе корзины /bitrix/components/bitrix/sale.basket.basket/class.php на строке 113.
<?
...
public function onPrepareComponentParams($params)
{
if (isset($params['CUSTOM_SITE_ID']))
{
$this->setSiteId($params['CUSTOM_SITE_ID']);
}
...
?>