Добавляю в корзину товар
Код |
---|
$addResult = $this->catalogTools->addProductToBasket([
'PRODUCT_ID' => 123,
'QUANTITY' => 1,
'CUSTOM_PRICE' => 'Y',
'PRICE' => 1000,
'CURRENCY' => 'RUB'
], [
'PRODUCT_PROVIDER_CLASS' => MyProvider::class
]); |
Тут цена 1000 возникает после моих сложных расчетов. Это цена зависит от множества свойств и мне нужно поддерживать актуальность цены в корзине после изменения какого-либо свойства.
В документации написано про функции обратного вызова (они устарели и их функциональность мигрировала в PRODUCT_PROVIDER_CLASS)
Цитата |
---|
Функция обратного вызова вызывается (если установлена) при каждом чтении корзины для обновления параметров содержащихся в корзине товаров. |
Из этих слов я понимаю, что раньше вызывался
CALLBACK_FUNC, а теперь должен вызываться метод
IBXSaleProductProvider::GetProductData. Но он не вызывается при каждом чтение из корзины.
Пробовал не указывать провайдер, а указать только
CALLBACK_FUNC. Он вызывается при добавление корзины, но не вызывается при каждом обращение к корзине.
Как вообще правильно сделать свой актуализатор корзины?