Хочу воспользоваться событием OnSaleBasketItemRefreshData для того, чтоб отслеживать изменение состояние корзины. Для этого я поместил следующий код: https://pastebin.com/Ui3115Hb в bitrix\php_interface\init.php. При изменение состояния корзины я ожидаю, джаваскрипт сообщение "basket update event is here".
Однако вместо этого я вижу кучу сообщений при визите на страницу карточки товара: https://imgur.com/a/IqbZE
Либо я не понимаю назначение события OnSaleBasketItemRefreshData, либо данный интернет магазин вызывает аномалию в системе событий.
Bitrix установлен последней версии (16.06 по-моему), стоит виртуалка CentOS на VirtualBox, хост - windows 8.1.
Ок, попробую сформулировать вопрос по-другому. Почему дефолтный интернет магазин вызывает события, которые противоречат спецификации событий в Битрикс:
Что мы видим на картинке? Просмотр карточки товара. При этом из лога валят следующие события:
Цитата
VM928:1 ******************** OnBeforeSaleOrderFinalAction: Происходит непосредственно перед финальным обсчетом. . ******************** 18:03:04.661 VM928:1 ******************** OnAfterSaleOrderFinalAction: Происходит тогда, когда заказ полностью просчитан. . ******************** 18:03:04.661 VM928:1 ******************** OnBeforeSaleOrderFinalAction: Происходит непосредственно перед финальным обсчетом. . ******************** 18:03:04.661 VM928:1 ******************** OnAfterSaleOrderFinalAction: Происходит тогда, когда заказ полностью просчитан. . ********************
Что такое заказ в контексте данного интернет магазина? В контексте bitrix framework? Что такое обсчет и чем он отличается от просчета? Я товар и в корзину добавил, почему у меня вызывается событие "финальный обсчет"? Такое ощущение, что 1С для написания документации нанимал студентов.
При изменение состояния корзины я ожидаю, джаваскрипт сообщение "basket update event is here". Однако вместо этого я вижу кучу сообщений при визите на страницу карточки товара: https://imgur.com/a/IqbZE
Вы не дебажили корзину до этого? У Вас стоит настройка "Preserve log", которая сохраняет лог. То есть, если Вы были в корзине и потом перешли на страницу то лог у вас останется К тому же, добавление товара в корзину ведет к пересчету
Цитата
Bitrix установлен последней версии (16.06 по-моему),
Последняя версия битрикса 17.5.9, а не 16
Цитата
Я товар и в корзину добавил, почему у меня вызывается событие "финальный обсчет"?
Потому что перед выводом цены нужно пересчитать корзину исходя из скидок/наценок, доставки и платежной системы. Скидки нельзя расчитать к корзине, для этого нужно проверить на заказе (сгенерировать но не сохранять заказ). Правила применения скидок в корзине.
Что же касается названия - не предавайте глубокого значения, как не назови суть одна.