Заметки e-commerce разработчика
Делюсь опытом в разработке высоконагруженных платформ, интеграции 1С, управлении командой и архитектуре e-commerce систем.

Разделы инфоблока в 1С-Битрикс: D7 и без ручного разбора массива
Собираем дерево разделов инфоблока через D7 (SectionTable) без ручного unset/usort — с помощью небольшой открытой библиотеки yunaweb/bitrix-section-tree.

Отключение событий Add/Update/Delete в 1С-Битрикс: почему raw SQL и EventManager — оба не то
Разбираю, почему прямой SQL в обход CUser::Update() ломает интеграции, и почему EventManager::registerEventHandler для этого тоже не подходит. Рабочий D7-совместимый способ — внутри.
Bitrix, MAMP, Mysql query error: (1364)
Решение ошибки «Field doesn't have a default value» при работе с Bitrix на локальном сервере MAMP.
Очистка корзины Bitrix24 коробка [сниппет]
PHP-сниппет для очистки корзины в Bitrix24 коробочной версии через Recyclebin API.
Если нужно сделать User Update и сразу Authorize(id)
При обновлении пользователя через AJAX и попытке сразу авторизовать по ID нужен дополнительный вызов CheckAuthActions().
Битрикс ЧПУ, правила urlrewrite.php
Частые правила ЧПУ в Битриксе для страниц детального описания — и как правильно обрабатывать query string в условии.
Виртуальная машина Bitrix, CURL
Как установить и включить php-curl на виртуальной машине Bitrix (BitrixVM).
Отключение обработчиков событий [1С-Битрикс]
Техника управления обработчиками событий в 1С-Битрикс с помощью статического флага класса для условного отключения обработчика.
Отработка событий *::Add, *::Update, *::Delete
Обход ограничения на срабатывание событий в методах 1С-Битрикс через прямой SQL-запрос для обновления полей пользователя.
OnAfterUserUpdate не все данные
В обработчике события OnAfterUserUpdate в массиве $arFields отсутствует поле XML_ID — обходное решение через CUser::GetByID().