Поломалась многородовость с новым АПИ. Теперь не получится пользователю на лету добавлять группу с ценой в этом городе.
Вместо CCatalogProductProvider теперь Bitrix\Catalog\Product\CatalogProvider
Новый ПродуктПровайдерКласс не понимает групп пользователя, которые установлены "на лету" методом $USER->GetUserGroupArray();. Приходится заменять новый на старый.
// Получение корзины для текущего пользователя
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(
\Bitrix\Sale\Fuser::getId(),
$_GET["site_id"]
);
if($item = $basket->getExistsItem("catalog", intval($_GET["id"]))){
//Обновление товара в корзине
$item->setField("QUANTITY", $item->getQuantity() + $addBasketQuantity);
}
else{
//Добавление товара
$rsElement = CIBlockElement::GetByID(intval($_GET["id"]));
if($arNextElement = $rsElement->GetNext()){
$item = $basket->createItem("catalog", intval($_GET["id"]));
$item->setFields([
"QUANTITY" => $addBasketQuantity,
"CURRENCY" => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
"LID" => $_GET["site_id"],
"PRODUCT_PROVIDER_CLASS" => "CCatalogProductProvider",//changed for OPT price in basket//Bitrix\Catalog\Product\CatalogProvider",
"CATALOG_XML_ID" => $arNextElement["IBLOCK_EXTERNAL_ID"],
"PRODUCT_XML_ID" => $arNextElement["EXTERNAL_ID"],
]);
}
}
//Сохранение изменений
$basket->save(); |
Предлагаю добавить в новый Bitrix\Catalog\Product\CatalogProvider проверку на группы пользователей как было раньше.