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

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

CSRF в D7-контроллерах: почему GET-запросы тоже требуют токен
С версии главного модуля 18.0.9 D7-контроллер 1С-Битрикс требует CSRF-токен и на GET-запросах. Разбор ActionFilter\Csrf, ошибки invalid_csrf и точечной настройки фильтров через configureActions().

AJAX в 1С-Битрикс: актуальные способы вместо CPHttpRequest
Актуальные способы AJAX в 1С-Битрикс: BX.ajax.runComponentAction, свой обработчик на fetch/jQuery/Vue — вместо устаревшего CPHttpRequest.

15k+ заказов в месяц на 1С-Битрикс без падения под нагрузкой
Композитный кеш и индексы MySQL — что реально держит нагрузку на проекте 1С-Битрикс с 15k+ заказов в месяц.

Отключение событий Add/Update/Delete в 1С-Битрикс: почему raw SQL и EventManager — оба не то
Разбираю, почему прямой SQL в обход CUser::Update() ломает интеграции, и почему EventManager::registerEventHandler для этого тоже не подходит. Рабочий D7-совместимый способ — внутри.

Новый блог. Старый просто пылился
Переделал блог с нуля после нескольких лет молчания. Что изменилось и о чём буду писать дальше.
Ajax загрузка, минимальное время работы
Как сделать минимальное время отображения загрузчика при быстрых AJAX-запросах.
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().