Сообщения

Сообщения за июнь, 2014

Новый шаблон sale.order.ajax: кастомизация

Изображение
На реализацию этого функционала ушло порядка 30 часов рабочего времени (плюс время на самообразование). За это время было отправлено 18 коммитов, написано 371 строк кода и осуществлено несколько попыток виртуального суицида :) Основная задача Создать группу свойств "Параметры доставки", которая будет зависеть от выбора типа доставки. Для курьера это "Адрес доставки", для "Транспортной компании" это выбор ТК из выпадающего списка, для доставки "Другая транспортная компания" - тоже текстовое поле (как и адрес доставки). Все эти поля являются обязательными, и отображаться должны не в блоке "Пользователь", а в блоке с доставками. В новом шаблоне sale.order.ajax перенести поля в другой блок не так просто, как кажется на первый взгляд, а информации на эту тему буквально крупицы.

Оформление заказа без использования функционала интернет-магазина

Итак, сегодня задача была несколько странновата. Заказчик, имея полноценную версию интернет-магазина, желает получать заказы через подобие "формы обратной связи". Для удобства я сразу решила определять все заказы в инфоблок "Заказы", чтобы они хранились еще хоть где-то, кроме почты. Поэтому использую компонент iblock.element.add.form. Заказы успешно добавляются, но теперь нужно, чтобы еще и почта приходила. Штатного события "Добавлен элемент в инфоблок" в системе нет. Поэтому пишем свой обработчик в init.php. Если используется событие OnAfterIBlockElementAdd, то ID инфоблока в который добавлен элемент - это $arFields["IBLOCK_ID"]. Достаточно понятно этот механизм описан у Дениса Шаромова в статье о создании своего почтового события и шаблона . Кроме прочих данных, нам в письме понадобится ID товара, на котором нажали кнопку "Купить". Для этого кнопка "Купить" имеет идентификатор, например, id=171, который совпадае