Читайте внимательнее описание метода CCatalogProduct::GetOptimalPrice.
Метод возвращает параметры наименьшей цены товара productID с учетом скидок в количестве quantity для посетителя, входящего в группы пользователей arUserGroups. Метод статический.
И далее описание параметра arUserGroups:
Массив групп пользователей. Если он пуст, то будут взяты группы текущего пользователя (при условии существования глобальной переменной $USER класса CUser, в случае отсутствия будет использована группа с кодом 2).
Если группы пользователей передаются в вызове, к ним будет принудительно добавлена группа с кодом 2 (Все пользователи) в случае ее отсутствия.
Т.е. в любом случае этот метод обработает группу пользователей 2 и если для неё цена будет оптимальной (например с учетом каких то скидок), то он вернет именно её.
Скорее всего у вас для группы пользователей "Оптовики" заведен отдельный тип цен, поэтому вы можете получить цену например так:
\Bitrix\Main\Loader::includeModule('catalog');
$price = \Bitrix\Catalog\PriceTable::query()
->setSelect(['*'])
->setFilter([
'=PRODUCT_ID' => 123456,
'=CATALOG_GROUP_ID' => 7,
])
->exec()
->fetch();
print_r($price);
где в CATALOG_GROUP_ID передавайте предварительно вычисленный для текущей группы пользователя тип цен.