Рейтинг: 1  
Новая
Предложил Зайцев Артемий 07.10.2019 18:03:47

Новый ПродуктПровайдерКласс не понимает групп пользователя

Поломалась многородовость с новым АПИ. Теперь не получится пользователю на лету добавлять группу с ценой в этом городе.

Вместо 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 проверку на группы пользователей как было раньше.
Рейтинг: 0  
Ответил Жуков Евгений 07.10.2019 18:26:06
В старом эта ошибка так же исправлена (список групп берется по базе). Изменяться это поведение не будет. Однако мы всегда готовы обсудить сценарии использования старого поведения.