Разбираюсь с сортировкой по цене, обнаружил, что после обновления из 1С PRICE!=PRICE_SCALE
Начал искать где возможно расхождение. Есть скрипт который обнуляет базовую цену и количество если из 1С приходит галочка отключить от продажи(на сайте количественный учет и товары должны быть все активны всегда для прямых ссылок на них).
Так вот обновление цены происходит следующим способом
[CODE]if ($fields['CATALOG_PRICE_ID_1'] > 0) {
// $this->bxCPrice->Update(
\Bitrix\Catalog\PriceTable::update(
$fields['CATALOG_PRICE_ID_1'],
[
'PRODUCT_ID' => $id,
'CATALOG_GROUP_ID' => 1,
'PRICE' => $price,
'CURRENCY' => 'RUB',
]
);
} else {
$this->bxCPrice->Add(
//\Bitrix\Catalog\PriceTable::add(// ошибка, цена не проставляется, пользуемся старым методом
[
'PRODUCT_ID' => $id,
'CATALOG_GROUP_ID' => 1,
'PRICE' => $price,
'CURRENCY' => 'RUB',
]
);
}[/CODE]
при // $this->bxCPrice->Update( - в ядре есть
if (!empty($currency)) $arFields['PRICE_SCALE'] = $currentPrice*$currency['CURRENT_BASE_RATE'];
при \Bitrix\Catalog\PriceTable::update( - не нашел
Подскажите для PriceTable::update мне нужно самому высчитывать и прописывать дополнительно еще и PRICE_SCALE ?
в документации написано: PRICE_SCALE Цена в базовой валюте. Поле доступно только для чтения, пересчитывается автоматически.
Сайт еще 17 версия и обновлению не подлежит, возможно какая-то старая ошибка и давно устранена, подскажите пожалуйста