Пробовали работать с Битриксом через AI-агента? Если ещё нет, то вам будет интересно узнать, как это :-)

Очередная вариация gpt chat на эту тему
Очередная вариация gpt chat на эту тему

Немного предыстории

С CMS Битрикс я работаю давно. Как закончила университет 13 лет назад, так и работаю. Как-то так получилось, что сайты всех компаний, где я работала, были на Битриксе (ха-ха, если учесть, что я 10 лет проработала в партнёре Битрикса :-)). Так что знакомство у меня долгое, опыт большой. Но, признаться честно, не особо глубокий. Я всё-таки всегда была больше маркетологом, а сайты сама дорабатывала, лишь бы решить свои маркетинговые задачи. Поэтому свои модули я не разрабатывала, ошибки в ядре не правила, а ограничивалась переписыванием компонентов в шаблонах. Ну и админкой, разумеется.

Но в прошлом году всё изменилось. Тогда я начала работать с Claude Code и разработала с ним систему для сопоставления номенклатуры. После этого в мои руки попал проект по разработке интернет-магазина строительных материалов. У клиента уже был куплен Битрикс (причём весёлая редакция «Интернет-магазин + CRM» — это коробка, в которой под одной лицензией живут сразу два продукта: CMS 1С-Битрикс: Управление сайтом для витрины и портал Битрикс24 для CRM и заказов). Вместе с ним клиент прикупил шаблон Интека — Kosmos. Всё это, уже размещённое на сервере, отдали мне на адаптацию.

Чудесный билдер шаблона Kosmos. Все клево, пока не доходишь до кастомизации
Чудесный билдер шаблона Kosmos. Все клево, пока не доходишь до кастомизации

Сразу оговорюсь: дальше по тексту, когда я пишу «Управление сайтом», я имею в виду именно CMS-часть (сам сайт), а когда «Битрикс24» — портальную часть, где живут CRM и заказы. Это разные продукты внутри одной коробки, и путать их не стоит — иначе история с обменом ниже покажется странной.

В целом можно было не париться: воспользоваться визуальным конструктором шаблона, выгрузить номенклатуру клиента и запустить ИМ почти без правок кода (большинство шаблонов на то и рассчитано, а Интек Kosmos — особенно). Но у клиента было другое видение, и перечить я не посмела.

Поэтому мы начали к чертям переписывать шаблон. Да и складскую логику Битрикса заодно. И, как потом всплыло, обмены с 1С тоже писать пришлось.

Если бы я всё это делала сама, у меня ушло бы ужас сколько времени на то, чтобы во всём разобраться, — так далеко я раньше не заглядывала. Обмены не писала. Огромные компоненты на JS (а именно на нём Клод переписал складскую логику в публичной части ИМ) не писала.

Но ещё в самом начале проекта я решила, что буду пробовать использовать Claude Code для работы с Битриксом.

Проблема номер 1: Клод не мог работать на российском сервере

Первое, с чем я столкнулась, — Клод не мог работать прямо на российском сервере. Дело вот в чём: Claude Code, чтобы вообще функционировать, должен достучаться до API Anthropic. А с российского сервера этот адрес недоступен — доступ из России закрыт. На моем компе это, сами понимаете как, работает, а сервер так не умеет. Именно поэтому классическая схема, когда редактор (а вместе с ним и агент) запускается прямо на удалённом сервере, здесь не прокатывает: агент просто не сможет выйти в свой API. Значит, Клод должен крутиться у меня локально — а раз так, ему и файлы нужны локально.

Из-за этого стандартное приложение Remote SSH для VS Code не подходило. Все аналогичные SSH-клиенты тоже. Мне бы отлично подошла методика работы в PhpStorm, где файлы скачиваются на комп, а затем правятся, но платную подписку я купить не удосужилась.

Свой SFTP-клиент за пару часов

Поэтому пришлось искать в VS Code SFTP-приложения. Я перепробовала кучу вариантов — Клод Код мне чего только не рекомендовал. Но не сработало ничего. Расширения либо не поддерживали символические ссылки (ох уж эта архитектура портала и сайта в одном флаконе), либо не тянули такие большие объёмы, как у сайта на Битриксе (о нет, ребят, ядро я не грузила — из папки bitrix только php_interface и шаблон сайта). Короче, ни одно не завелось. Тогда я попробовала смонтировать диск по SSH. Там Клод уже начал мне отвечать в чате. Но… он не мог сделать даже простые действия с файлами — как-то не приспособлен оказался для смонтированного диска.

Следующим вариантом было тупо скачать нужные файлы себе на комп, а затем грузить их руками на сервер. Ну или изменения в них. Работа таким образом показалась мне кошмаром. И тут я подумала: у меня же Клод может написать вообще что угодно! Что я маюсь со стандартными приложухами для SFTP?

Я вполне допускаю, что где-то существует тот самый «правильный» клиент, который решил бы все мои проблемы. Но на его поиск, установку и пробную загрузку я бы потратила больше времени, чем на то, чтобы написать решение под себя. Так что выбор был очевиден.

Короче, через пару часов у меня был вполне работоспособный клиент для VS Code, который по SFTP отправлял и получал файлы с удалённого сервера. А я одной кнопочкой загружала все изменения Клода на сервер! Таким образом, первый шаг по сближению Клода и Битрикса был сделан.

Кусочек моего sftp клиента
Кусочек моего sftp клиента

Учим Клода Битриксу

Следующий момент — это знание Клодом Битрикса. Я сразу покидала Клоду ссылки на всю документацию и обучающие материалы по Битриксу и попросила создать навык. Может, это как-то помогло, но не уверена. Короче, что-то Клод знал, где-то допиливал на чистом PHP, JS и прямых запросах к БД. В эти моменты я его тормозила, снова кидала ссылки на документацию и заставляла писать в CLAUDE.md, как надо делать правильно. И знаете, к концу проекта Клод уже неплохо выполнял задачи, и я всё реже его тормозила.

Выбор склада отгрузки
Выбор склада отгрузки

Вместе мы написали функционал по выбору склада отгрузки (пользователь выбирал один склад в начале покупок, а затем мог покупать только с него или поменять склад при обнулении корзины), переписали дизайн шаблона (уф, вот тут намучались! Kosmos явно не был рассчитан на кастомизацию через код…) и — вишенка на торте — написали обмен заказами с 1С!

Обмен заказами с 1С

«Ого! — скажете вы. — А чем кастомный-то не устроил?» А тем, что не было его. Заказы хранились в Битрикс24. Значит, обмен нужно было делать не с CMS, а с порталом. «Ноу проблем, — скажете вы, — ставите коннектор и вперёд!» Можно и так. Но клиент не хотел публиковать вовне свою 1С, плюс, судя по документации, настройка была не шибко простая. Так что я решила писать. Ведь у меня был Клод. А значит, можно всё.

Короче, за вечер Клод мне накатал обмен со стороны Битрикса (ага, сам, но я ему скармливала куски из модулей Битрикса и документацию по обмену). После кучи правок 1С его таки подхватила (со стороны 1С был типовой). Но по ходу пьесы всплыло много «но»: НДС не проставлялся вообще — почему, я не знаю. Наверное, потому что у клиента был НДС 5 %. Хотя 1С была обновлённая и должна была всё принимать. Но нет. Короче, после многих часов борьбы я смирилась и дописала обмен на стороне 1С расширением (да-да, это тоже был Клод, но это дорого мне стоило). Потом ещё дописала, чтобы проставлялся склад из заказа, а не склад по умолчанию. Потом — передачу комментария, документ оплаты, скидку на товар… Короче, и со стороны Битрикса, и со стороны 1С дописок было достаточно. Но всё это были расширения, поэтому база клиента не сильно пострадала.

В целом после проекта я узнала и Битрикс, и 1С, мягко говоря, чуть глубже. Несмотря на все чудеса AI-агента.

Перенос собственного сайта: Клод сам лезет в админку

Следующим моим этапом работы с Битриксом через Claude Code стал перенос моего сайта на Битрикс. Я умудрилась благополучно получить партнёрство Битрикса (сдав нормальное количество тестов). И дабы иметь ещё и NFR CMS, надо было перенести свой личный сайт на Битрикс.

Чем я и занялась. На этом этапе я вконец обнаглела и попросила Клода как-нибудь самому заливать файлы на сервер с сайтом и ещё самому создавать инфоблоки и менять данные в админке (ну ребят, у Битрикса же есть API, почему бы не использовать?). И знаете что? Клод всё это сделал! Я закинула на сервер php-файлик, через который он совершал свои манипуляции, и всё отлично заработало! (За безопасность не переживайте: этот файлик закрыт HTTP Basic Auth на уровне nginx, так что без пароля к нему никто не достучится и ничего через него не сделает.) В итоге за пару дней он перенёс весь мой сайт на Битрикс, создал инфоблоки, шаблон, формы, прописал все настройки. Короче, я в админку залезала уже на финальном этапе, когда настраивала отправку почты. Всё. Раньше я думала, что я важная такая прослойка, которая лазает в админке и всё настраивает, но оказалось — без меня вполне можно обойтись. Хотя, думаю, с ИМ такое бы не прокатило, всё равно пришлось бы полазить. Но как факт!

Правда, с шаблоном я немного намучилась: мне опять пришлось учить Клода работать с Битриксом и рассказывать с помощью документации, как делать шаблоны. Но это всё мелочи. В целом он неплохо справлялся.
К слову свой сайт на Битриксе я так и не запустила. Пока мне значительно удобнее работать с самописным сайтом, админку для которого мне сделал Клод. Там каждое изменение делается им весело быстро и почти без ошибок. С Битриксом же ручной отладки значительно больше. А NFR... Ну вот когда она мне будет позарез нужна - тогда и подумаем ;-)

Итог

Вот такие дела. Может, есть кто давно уже Битрикс с AI-агентами пилит? Как ваши успехи?