Здравствуйте!
Скажите, пожалуйста, существует ли все же решение для описанной задачи?
И относительно двух пунктов, описанных в предыдущем сообщении - является ли это ошибкой или я что-то делаю не верно?
Добавлено: Обработка событий каталога24.03.14 14:01:31
Evgeney S.: 1. Опытном путем установлено (сейчас еще раз проверил с использованием флага из примера), что событие 'v5_on_generate_eshop_item_keywords' возникает после события 'v5_on_item_prepare'.
Поэтому в обработчике события v5_on_item_prepare не доступен флаг, установленный при обработке события v5_on_generate_eshop_item_keywords (его еще просто не установили).
Наоборот - да, доступен.
Событие v5_on_generate_eshop_item_keywords на данный момент действительно генерируется позже v5_on_item_prepare.
Evgeney S.:
2. В обработчике события 'v5_on_item_prepare' не удается изменить значения кастомных полей.
Т.е. конструкция вида
$aEvent['aData']['custom_field_XXX'] = YYY;
не дает никакого результата. Данные, которые есть в массиве $aEvent['aData'] - да, можно изменить. Но кастомных полей там нет...
Как вариант решения, можно подменять полученные с формы данные внутри обработчика события v5_on_item_prepare, например -
Evgeney S.: 2. В обработчике события 'v5_on_item_prepare' не удается изменить значения кастомных полей.
Т.е. конструкция вида $aEvent['aData']['custom_field_XXX'] = YYY; не дает никакого результата. Данные, которые есть в массиве $aEvent['aData'] - да, можно изменить. Но кастомных полей там нет...
В следующей версии системы мы добавим наличие дополнительных полей и возможность их изменения из обработчика события 'v5_on_item_prepare'.
Добавлено: Обработка событий каталога28.03.14 11:16:51
В итоге задача была решена через подмену данных, полученных с формы внутри обработчика события v5_on_item_prepare, как предложил Dmitry Kornilov.
Спасибо!
Однако не могу сказать, что это именно то, чего я ожидал от реализации обработки события сохранения товара
Антон: В следующей версии системы мы добавим наличие дополнительных полей и возможность их изменения из обработчика события 'v5_on_item_prepare'.
Отлично!
Однако, даже будь такая возможность сейчас, это бы не решило проблемы.
Т.к. в этом событии так же нет возможности модифицировать мета-данные, а событие v5_on_generate_eshop_item_keywords происходит уже позже.
Поэтому, на мой взгляд, для полноценной работы нужно событие, которое происходит непосредственно перед сохранением данных в БД и в котором можно изменять все те данные, которые сохраняются.
Так же хотелось бы видеть событие, которое происходит непосредственно после сохранения данных элемента в БД (здесь из доступных данных нужны только id модуля и id элемента).
Еще раз спасибо за помощь в решении задачи!
Добавлено: Обработка событий каталога28.03.14 11:32:43