Возникла необходимость создать несколько цен у товаров в зависимости от количества.
У каждого товара свое количество для применения второй цены. У каких-то товаров может не быть второй цены.
Данные о ценах и количествах должны приходить из 1С.
Я не слишком большой специалист в 1С и битрикс, поэтому не уверен, что придумал лучшее решение. Вот что я придумал.
В 1С создается еще одна цена- Цена 2. У товаров создается новое свойство price2count. Далее нужным товарам назначается значения этой цены и заполняется поле price2count. Создается новое типовое соглашение с клиентами, доступное внешним пользователям и с ценой 2.
После обмена цена 2 оказывается на сайте. Свойство price2count тоже появляется у товаров на сайте.
Тут возникла первая проблема. Битрикс почему-то стал выбирать вторую цену, вместо той, которая у него базовая... Не понял почему. Но исправил это руками в коде init.php сам определяя какую цену поставить в зависимости от количества и наличия у товара второй цены.
Изменил шаблоны, добавив в них код для проверки наличия второй цены и если она есть- вывода ее в карточке товара.
Далее изменить события добавления в корзину и пересчета корзины для выбора правильной цены.
Казалось, что все получилось, пока я не оформил тестовый заказ. Несмотря на то, что во время оформления заказа мне была указана вторая цена, после оформления товар был посчитан по обычной цене. Видимо данные о цене при создании заказа берутся не из корзины, а из свойств товаров.
Какое событие вызывается при создании заказа, в котором можно было бы повлиять на цены товаров?
Может быть я вообще изобретаю велосипед и есть более нормальный способ заставить битрикс понимать вторую цену?
PS Я знаю, что в битрикс цены можно настраивать гибко. Указывать в них как раз все эти условия- количества, сумму, скидку. Но это никак нельзя нормально интегрировать с 1С, а следовательно мне не подходит.