Версия для сдачи этапа. Чтобы сохранить в PDF — «Печать» → «Сохранить как PDF».
[cron: ежедневное обновление]
│
▼
Скачать выгрузки 6 поставщиков (~300 МБ)
portobello · oasis · oceangifts · happygifts · gifts.ru(p111) · prag196
│
▼
Разобрать в единый формат (название, цена, остаток, фото, нанесение…)
→ data/catalog_<сайт>.json
│
▼
Собрать быстрый поисковый индекс (77 000 товаров)
→ data/catalog.sqlite (полнотекстовый поиск)
│
▼
Автопроверка (self-qa): всё ли импортировалось корректно
[Менеджер пишет боту в Битрикс24]
│
▼
Бот ведёт АНКЕТУ (9 шагов):
продукция → цвета → бюджет → тираж → нанесение →
компания → ЦА → цель → пожелания
│
▼
ПОИСК (этап 1):
1) быстрый отбор кандидатов из индекса (~200 шт.)
2) ранжирование: соответствие запросу, цвет, материал,
бюджет (−20%/+5%), цель, аудитория
3) перемешивание по сайтам (чтобы не было «всё с одного»)
│
▼
ВЫДАЧА превью (до 12 на странице):
фото · название · цена · ссылка · кнопка «+ В подборку»
│
├──「Показать ещё」──► следующая страница
│
├──「Уточнить запрос」──► «только металл», «без пластика» → пересборка
│
├──「Новый поиск」──► другая категория, корзина сохраняется
│
▼
Менеджер отмечает нужные товары (корзина копится)
│
▼
「Создать КП」 (этап 2):
│
▼
Сборка PPTX:
• титул (компания клиента + данные менеджера из Битрикса)
• по слайду на товар (название, артикул, фото, цена, описание)
• финал (контакты Прагматики)
│
▼
Готовый файл → ссылка на скачивание в чат
│
▼
Запись запроса в смарт-процесс Битрикса (история для аналитики)
«API» — это «окошки», через которые бот общается с внешним миром и через которые Битрикс общается с ботом.
| Адрес | Зачем | Кто вызывает |
|---|---|---|
/bot.php | Главный мозг: сообщения и кнопки из чата, анкета, поиск, сборка КП | Битрикс24 (вебхук бота) |
/events.php | Прочие события Битрикса | Битрикс24 |
/download.php?t=… | Отдаёт готовый файл КП по одноразовой ссылке | Менеджер (из чата) |
/img.php?u=… | Прокси для фото поставщиков (напр. gifts.ru отдаёт фото только по паролю) | Битрикс (показ карточек) |
/health.php | Проверка «жив ли сервис» | мониторинг |
/install.php | Разовая установка приложения в портал | Битрикс24 |
imbot.message.add — отправить сообщение/карточку товара в чат.imbot.command.register — зарегистрировать кнопки бота.user.get — данные менеджера (ФИО, должность, телефон, email) для титула КП.crm.item.add / crm.item.get — запись запроса в смарт-процесс (история).| Поставщик | Что берём | Доступ |
|---|---|---|
| Portobello | товары + отдельный файл остатков | открытый |
| Oasis | общий XML (товары и остаток вместе) | открытый |
| Ocean | JSON-каталог | открытый |
| HappyGifts | общий XML | открытый |
| gifts.ru (Project 111) | товары + остатки + фото | логин/пароль + белый список IP |
| prag196 | разбор карточек с сайта | открытый |
member_id в bot.php и events.php.В панели — карточка «Автопочинка» с 7 безопасными операциями: пересборка индекса, снятие зависшего лока, очистка кэша картинок, обновление токена Битрикса, чистка старых файлов, запуск ночного обновления, сброс антиспама. Каждая требует подтверждения, пишет в историю и шлёт алерт об успехе/неудаче. Опасные операции НЕ автоматизированы.
Понимание свободного запроса, синонимы, продающие тексты, умный подбор. Доступ — по ключу и folder_id (ждём от клиента).
id, источник, ссылка, название, артикул, цена, цвета, остаток, фото (1+), описание, вид нанесения, характеристики
b2b_import_<имя>() в lib/importer_b2b.php (по образцу существующих): скачивает выгрузку, проходит по товарам, приводит к единому формату, сохраняет в data/catalog_<имя>.json.cron/import-b2b.php и cron/daily-update.php.img.php).proposal_rate_limit('host', 220) — кросс-процессный лимитер через файловый lock в /tmp/.Бот сам обновляет всю базу товаров с 6 сайтов поставщиков каждый день в 04:00 по Москве. За одно ночное обновление он скачивает свежие выгрузки, разбирает их и пересобирает поисковый индекс — чтобы менеджеры утром уже работали с актуальными ценами и остатками.
Полная цепочка занимает ~1,5 минуты. Лог каждого запуска — в logs/cron.log. В панели управления видно ✓/✗ по каждому сайту.
В любой момент можно запустить обновление вручную из панели управления (кнопка «Обновить все сайты»). Также есть фоновый сторож (watchdog) — он раз в 10 минут проверяет, что бот живой, индекс свежий, авторизация в Битриксе на месте, и пишет тревогу в чат, если что-то сломалось.
© Прагматика · бот подбора и формирования КП