Добрый день!
Суть такая:
нужно со стороннего сайта наполнить корзину товарами и потом перекинуть пользователя в корзину уже на целевом сайте.
Проблема в том, что при добавлении товаров каждый раз получаю новый BITRIX_SM_SALE_UID и товар по сути добавляется в новую корзину, а при переходе на сайт попадаю в другую сессию.
Пробовал так:
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
\Bitrix\Sale\Fuser::getId(),
\Bitrix\Main\Context::getCurrent()->getSite()
);
if ($item = $basket->getExistsItem('catalog', $productId)){
//Обновление товара в корзине
$item->setField('QUANTITY', $item->getQuantity() + $quantity);
}else{
//Добавление товара
$item = $basket->createItem('catalog', $productId);
$item->setFields([
'QUANTITY' => $quantity,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRODUCT_PROVIDER_CLASS' => \Bitrix\Catalog\Product\Basket::getDefaultProviderName() ,
]);
}
$basket->save();
и так:
$price = CPrice::GetBasePrice($productId)[PRICE];
if($ar_props = $namep->Fetch()){
$arFields = array(
"PRODUCT_ID" => $productId,
"CURRENCY" => "RUB",
"LID" => "s1",
"QUANTITY"=>$quantity
);
CSaleBasket::Add($arFields);
}
Суть такая:
нужно со стороннего сайта наполнить корзину товарами и потом перекинуть пользователя в корзину уже на целевом сайте.
Проблема в том, что при добавлении товаров каждый раз получаю новый BITRIX_SM_SALE_UID и товар по сути добавляется в новую корзину, а при переходе на сайт попадаю в другую сессию.
Пробовал так:
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
\Bitrix\Sale\Fuser::getId(),
\Bitrix\Main\Context::getCurrent()->getSite()
);
if ($item = $basket->getExistsItem('catalog', $productId)){
//Обновление товара в корзине
$item->setField('QUANTITY', $item->getQuantity() + $quantity);
}else{
//Добавление товара
$item = $basket->createItem('catalog', $productId);
$item->setFields([
'QUANTITY' => $quantity,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
'PRODUCT_PROVIDER_CLASS' => \Bitrix\Catalog\Product\Basket::getDefaultProviderName() ,
]);
}
$basket->save();
и так:
$price = CPrice::GetBasePrice($productId)[PRICE];
if($ar_props = $namep->Fetch()){
$arFields = array(
"PRODUCT_ID" => $productId,
"CURRENCY" => "RUB",
"LID" => "s1",
"QUANTITY"=>$quantity
);
CSaleBasket::Add($arFields);
}