Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Функции обратного вызова для корзины

00 голосов
1
Вопрос следующий: должны ли эти функции возвращать все поля $arFields или только измененнные?

Когда подключил CALLBACK_FUNC, которая возвращает только
Код
$arFields = array(
    'PRICE'=>9999,
    'CAN_BUY'=>'Y'
);

CSaleBasket::Add стала возвращать FALSE, в связи с чем и встал такой вопрос.

Далее размышления вслух:
В документации этот момент не освещен и если действительно необходимы все поля, то по моему скромному мнению это существенно узкое место: по-любому мы в реализации корзины используем инфоблоки, получаем свойства и т.п. и эта функция выполняется каждый раз при чтении корзины для каждого элемента! Куда логичнее было бы передавать указатель &$arFields и просто менять необходимые поля.
спросил 14 Янв, 14 от Trunix (160 баллов)

1 Ответ

00 голосов
Да. Должны.
Должны возвращать записи с полями в точности соответсвующими набору того, что использовалось при добавлении в корзину

в вашем примере в пролете количество как минимум

что касается вашего отношения к функциям обратного вызова и их постоянного дергания (разделяю, что это не всегда надо), но :)
универсальность есть универсальность.
На самом деле они дергаются, когда происходит обращение к необходимым API, их дергающим.


зато есть гарантия, что в нужном месте цена и количество всегда под контролем :)
ответил 01 Май, 14 от jenia (1,500 баллов)

Похожие вопросы

0 голосов
3 ответов
спросил 29 Сен, 13 от Titan91 (1,120 баллов)
0 голосов
2 ответов
спросил 06 Май, 14 от ZooWolf (120 баллов)
0 голосов
2 ответов
спросил 17 Май, 13 от mrUhauma (320 баллов)
0 голосов
3 ответов