Существует ли событие в Битриксе, которое активируется при создании товара вместе со всеми его ценами?

Как можно автоматически добавить наценку к новому товару/предложению сразу после его создания в админке, учитывая, что у товара может быть несколько типов цен? Как можно отследить событие, указывающее что все цены товара были созданы, чтобы на основе этой информации построить дальнейшую логику работы? Как можно автоматически создать цену для определенного типа, если она не была указана при создании товара?
  • 1 декабря 2023 г. 18:50
Ответы на вопрос 2
1. В CMS "1С-Битрикс" отсутствует событие, которое активируется при создании товара вместе со всеми его ценами. События активируются при создании или изменении товара (OnBeforeIBlockElementAdd, OnAfterIBlockElementAdd, OnBeforeIBlockElementUpdate, OnAfterIBlockElementUpdate), а также при изменении свойств товара, включая цены (OnBeforeIBlockElementSetPropertyValues, OnAfterIBlockElementSetPropertyValues). 

2. Вы можете добавить наценку к новому товару сразу после его создания, подписавшись на событие OnAfterIBlockElementAdd. В обработчике этого события получите все цены товара с помощью функции GetCatalogProductPriceList, заведите на каждую цену наценку и обновите их с помощью функции SetCatalogProductPrice.

3. Чтобы отследить событие, указывающее что все цены товара были созданы, придется воспользоваться кроном или агентами "1С-Битрикс" и периодически проверять цены всех товаров.

4. Для того, чтобы автоматически создать цену для определенного типа, если она не была указана при создании товара, нужно в обработчике события OnAfterIBlockElementAdd проверять, есть ли цены нужного типа, и если их нет - создавать с помощью функции AddCatalogProductPrice.

Здесь стоит отметить, что при работе с ценами важно не забывать про торговые предложения и SKU, а также учесть, что операции с ценами можно выполнять только в рамках одной валюты.
Добрый день ! У вас есть 2 пути легкий и сложный. Легкий на событие "OnPriceAdd" вызывать запрос и проверять есть ли данная цена или нет и добавлять запись в нужные поля. Сложный писать свое событие и внедриться в логику.
Похожие вопросы