CLI-утилиты для каталога Bitrix24

Bitrix24 Tools

Набор CLI-утилит на Python для экспорта контактов и товаров Bitrix24, массового удаления товаров и импорта каталога из ClickHouse по расписанию

  • 0 ★ репозитория
  • Последний коммит
CLI

Широкий доступ

Почему такой уровень

  • Может массово и необратимо удалять товары из каталога Bitrix24
  • Импорт создает и обновляет карточки товаров по расписанию без подтверждения человеком
Все причины и проверки
Российский стек

eurasia-group-kazakhstan/bitrix_tools

Установка

Сервисы

Ручная установка

python3.12 -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt

Требуется именно Python 3.12.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Может массово и необратимо удалять товары из каталога Bitrix24
  • Импорт создает и обновляет карточки товаров по расписанию без подтверждения человеком

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Каждая утилита: отдельный Python-скрипт с общими аргументами (лимит, фильтр в JSON, уровень логирования), который дергает REST API Bitrix24 через асинхронный клиент с ретраями и ограничением частоты запросов. export_contacts и export_products выгружают данные в JSON-файл, delete_products удаляет товары по белому или черному списку ID с режимом предпросмотра (dry-run), а import_products_from_clickhouse тянет товары из ClickHouse по конфигу маппинга полей, приводит типы и создает или обновляет карточки в каталоге Bitrix24. Каждый запуск пишет лог и запись в общий summary.json, есть Dockerfile и примеры cron-задач.

Для кого. Для команд, которые синхронизируют каталог товаров Bitrix24 с внешним хранилищем данных и автоматизируют выгрузки по расписанию.

Подходит, если

  • Нужно регулярно выгружать контакты или товары Bitrix24 в JSON по фильтру
  • Нужно массово удалить товары по списку ID с предварительным дебагом через dry-run
  • Каталог товаров ведется в ClickHouse и его нужно синхронизировать в Bitrix24

Не подходит, если

  • Источник каталога не ClickHouse: импорт заточен под него
  • Нужен диалоговый MCP-инструмент, а не автономные CLI-скрипты для cron

Пример запроса к агенту

Выгрузи все активные товары раздела 5 в JSON и покажи статистику по активным и неактивным

Ограничения

Требуется именно Python 3.12. Импорт из ClickHouse хранит пароль подключения в конфиге маппинга в открытом виде. delete_products: необратимая операция без встроенного бэкапа, полагается на предварительный dry-run и явное подтверждение. README не описывает аутентификацию сервисного пользователя ClickHouse отдельно от пароля в конфиге.

Как отключить. Удалите crontab-записи, добавленные для утилит, и деактивируйте вебхук BITRIX_WEBHOOK_URL в Bitrix24.

Частые вопросы

Можно ли отменить удаление товаров?

Нет встроенного отката, поэтому сначала обязательно запустите delete_products с флагом --dry-run и проверьте список.

Обязателен ли ClickHouse?

Только для утилиты импорта каталога, экспорт контактов и товаров и удаление товаров от него не зависят.

Обсуждение

Вопросов и отзывов пока нет.

Российский стек

CLI с полным CRUD для сделок, лидов, контактов и компаний Битрикс24, все команды с флагом --json для агентов

CLIШирокий доступ
Российский стек

PowerShell CLI для безопасной выгрузки компаний и контактов Bitrix24 в CSV через входящий вебхук

CLIРасширенный доступ1Звезды репозитория
Российский стек

MCP-сервер для REST API Битрикс24 на чтение и запись: CRM, задачи, скрам, календарь, диск, мессенджер и события портала

MCP-серверШирокий доступ1Звезды репозитория
Российский стек

Python-сервер для агентов с доступом к порталу Битрикс24 через вебхук: смотрит сделки и контакты, а запись включается отдельной настройкой

MCP-серверРасширенный доступ1Звезды репозитория

Коротко о README

README подробно описывает каждую из четырех утилит с таблицами параметров и примерами, формат конфига маппинга полей для ClickHouse с типами трансформаций cast и map, устройство логов и summary.json, примеры cron-задач и раздел устранения ошибок по кодам вроде QUERY_LIMIT_EXCEEDED.

Бейдж для README

Сообщить о проблеме