Пользовательские руководства

ЯлАрба (yalarba.ru) · EasySite102 (easysite102.ru)

ЯлАрба: AI-чат с Арбой

Инструкция: AI-чат «Арба» и семантический поиск (B2C)

1. Как это устроено

Арба — AI-помощник ЯлАрба. Плавающая кнопка в правом нижнем углу (панель 380×560px). Умеет: находить объекты, отвечать на вопросы о туризме, давать рекомендации. Поддерживает контекст диалога (сессию).

Связанные возможности:

2. Использование чата

  1. 1. Нажмите плавающую кнопку «Арба» (правый нижний угол).
  2. 2. Задайте вопрос. Быстрые подсказки: «Что посмотреть в Уфе?», «Где отдохнуть на природе?», «Недорогие гостиницы», «Что нужно для регистрации?».
  3. 3. Получайте ответ. Диалог запоминается (сессия).
  4. 4. «Очистить историю» — сбрасывает сессию и начинает заново.
Требуется авторизация (POST /chat — auth). Если AI-сервис недоступен — ответ 503, повторите позже.

3. Семантический поиск

На странице поиска:

  1. 1. Введите запрос обычным языком (например, «тихое место у озера»).
  2. 2. Выберите сортировку «по релевантности» — результаты будут ранжированы AI по смысловой близости, а не только по ключевым словам.
  3. 3. Для точного семантического режима есть параметр mode=semantic (используется из чата/API).

История последних 5 запросов участвует в контексте семантического поиска.

4. Возможные вопросы Арбе

5. Ограничения

6. API (для разработчиков)

МетодПутьКто
POST/chatauth. Тело {session_id, message} → {session_id, reply}

7. Где код

ЯлАрба: избранное и отзывы

Инструкция: избранное и отзывы на ЯлАрба (B2C)

1. Как это устроено

ДействиеURLТребования
Избранное/favoritesавторизация
Мои отзывы/reviewsавторизация
Отзывы объектана деталке объекта /objects/[id]—
Оценка рейтингомкнопка на деталкеавторизация + подтверждённый email

Рейтинг объекта — агрегат из одобренных отзывов (платформа «турист»). Модерация отзывов автоматическая (ML-проверка токсичности) + вручную админами.

2. Избранное

  1. 1. На странице объекта /objects/[id] нажмите «В избранное» (сердечко).
  2. 2. Список сохранённого — /favorites (пагинация по 20).
  3. 3. Удаление — кнопка на карточке в списке или повторное нажатие на деталке.

Ограничения:

API: GET /favorites?offset=&limit=, POST /favorites/{objectId}, DELETE /favorites/{objectId}.

3. Написание отзыва

  1. 1. Откройте объект → блок «Отзывы» → «Написать отзыв».
  2. 2. Заполните:

- Оценка 1–5 (обязательно),

- Текст — обязательно, до 2000 символов; при оценке ≤ 2 текст обязателен и минимум 10 символов,

- Фото — до N файлов (до 10 МБ каждый).

  1. 3. Отправьте. Отзыв публикуется:

- сразу — если ML не нашёл токсичности (score < 0.7),

- уходит на пре-модерацию — при score 0.7–0.95,

- отклоняется — при score ≥ 0.95 или стоп-словах.

Владелец объекта получает уведомление (в т.ч. в MAX-бот).

4. Управление отзывами

5. Частые ошибки

ОшибкаПричинаРешение
«Оценка ≤ 2 требует текст»валидациядобавьте текст от 10 символов
«Требуется подтверждение email»голосование рейтингомподтвердите email
Отзыв не появился сразупре-модерациядождитесь проверки (статус pending)
Отзыв отклонёнтоксичность/стоп-словапереформулируйте

6. API (для разработчиков)

МетодПутьКто
GET/reviews/object/{objectId}публично
GET/reviews/myauth
POST/reviewsauth (rate limit)
PUT/DELETE/reviews/{id}владелец
POST/ratings/{objectId}/voteauth + verified email
GET/ratings/object/{objectId}публично
GET/ratings/{objectId}/my-voteauth

7. Где код

ЯлАрба: профиль и уведомления

Инструкция: профиль, уведомления, согласия и обратная связь (B2C)

1. Как это устроено

Профиль (/profile) — вкладки: Обзор, Избранное, 💎 Подписка, ⚙️ Настройки, Мои отзывы, Мои маршруты, Уведомления, Выход. Настройки — карточки: Обращения, Реферальная программа, Маркетинг, Соцсети, Согласия, Администрирование.

2. Профиль и настройки

API: GET/PUT /me, GET /me/stats, GET /me/export, DELETE /me, POST /change-password, GET/POST /me/2fa/*.

3. Уведомления

API: GET /notifications, PUT /notifications/{id}/read, GET/PUT /notification-preferences, POST/DELETE /push-subscriptions.

4. Согласия (152-ФЗ)

4 типа согласий: personal_data, terms, offer, cookies.

API: GET /consents, PUT /consents/{type} {action: give|revoke}.

5. Обращения в поддержку

/appeals — форма: Тип (question/complaint/suggestion/wish/other), Тема, Сообщение, Приоритет (low/medium/high/critical). Статусы: new → in_progress → resolved/rejected/closed.

API: POST /appeals (публично), GET /appeals/me (auth).

6. Реферальная программа

/profile/referral: ваш реферальный код, статистика переходов/регистраций, конверсии (clicked → registered → subscribed → paid → credited). Бонус: 200 ₽ за регистрацию + VIP-статус на месяц.

API: POST /referrals/generate, GET /referrals/my/stats, GET /referrals/my/conversions, POST /referral/track.

7. Маркетинг (рассылки)

/profile/marketing: частота дайджеста (daily/weekly/never), тумблеры marketing_email, marketing_bot. Отписка — по ссылке из письма.

API: GET/PUT /marketing/subscription, GET /marketing/unsubscribe.

8. Частые ошибки

ОшибкаПричинаРешение
«Согласие можно дать позже»cooldown 5 мин после отзываподождите 5 минут
«Доступ ограничен»отозваны все согласияверните согласия в /profile/consents
Не приходят уведомления в ботвыключен тумблер / не привязан ботвключите notification_bot, привяжите MAX-бот

9. Где код

ЯлАрба: регистрация и вход

Инструкция: регистрация и вход на ЯлАрба (B2C)

Раздел для туристов: создание аккаунта, вход, подтверждение email, восстановление пароля.

1. Как это устроено

ДействиеURLAPI
Регистрация/auth/registerPOST /auth/register
Вход/auth/loginPOST /auth/login
Подтверждение email/auth/verify-email (по ссылке из письма)GET /auth/verify-email?token=
Восстановление пароля/auth/reset-password → /auth/reset-password/confirmPOST /auth/reset-password, POST /auth/reset-password/confirm
OAuth (VK / Яндекс)/auth/oauth/{provider}GET /auth/oauth/{provider}/login?redirect_uri=

Аккаунт нужен для: избранного, отзывов, маршрутов, AI-чата, подписки, заявок на объекты.

2. Регистрация

  1. 1. Откройте https://yalarba.ru/auth/register.
  2. 2. Заполните:

- Имя и Фамилия (складываются в ФИО),

- Email — на него придёт письмо подтверждения,

- Пароль — минимум 8 символов (и при регистрации, и при смене/сбросе),

- Подтверждение пароля — должно совпадать,

- Согласие с условиями — обязательно (без него регистрация не завершится).

  1. 3. Опционально: реферальный код подставляется автоматически из ссылки ?ref=....
  2. 4. Нажмите Зарегистрироваться.
  3. 5. Вы попадёте на страницу «Подтверждение email». Перейдите по ссылке из письма — без этого нельзя голосовать рейтингом и часть функций будет ограничена.

Ошибки: 400 — неверный email/короткий пароль (мин. 8) / пустое имя; 409 — email уже зарегистрирован.

3. Вход

  1. 1. https://yalarba.ru/auth/login — введите email и пароль.
  2. 2. Если у вас включён 2FA (TOTP) — введите 6-значный код.
  3. 3. Если email не подтверждён — появится баннер с кнопкой «Отправить повторно» (повторная отправка письма).
  4. 4. Можно войти через VK ID или Яндекс ID (кнопки OAuth).

Сессия: access-токен живёт 15 минут, refresh — 7 дней (автопродление). Выход — кнопка «Выход» в профиле.

4. Восстановление пароля

  1. 1. /auth/reset-password — введите email → получите письмо со ссылкой.
  2. 2. Перейдите по ссылке → /auth/reset-password/confirm → введите новый пароль (мин. 8 символов).
  3. 3. Ссылка для сброса действительна 1 час.

5. OAuth

Привязка VK / Яндекс: профиль → Соцсети (/profile/social). Отвязка — там же. Лимит попыток OAuth-входа: 10/мин на IP.

6. Частые ошибки

ОшибкаПричинаРешение
Пароль < 8 символоввалидацияпридумайте пароль от 8 символов
«Email не подтверждён» при голосованиинет подтвержденияперейдите по ссылке из письма или «Отправить повторно»
«Пароль неверный»опечаткасброс пароля
Письмо не пришлоспам/задержка«Отправить повторно», проверьте спам

7. API (для разработчиков)

МетодПутьКто
POST/auth/registerпублично
POST/auth/loginпублично
POST/auth/refreshcookie
POST/auth/logoutauth
GET/auth/verify-email?token=публично
POST/auth/resend-verificationauth
POST/auth/reset-passwordпублично
POST/auth/reset-password/confirmпублично
GET/auth/oauth/available, /auth/oauth/providersпублично
GET/auth/oauth/{provider}/loginпублично

8. Где код

ЯлАрба: маршруты

Инструкция: маршруты на ЯлАрба (B2C)

1. Как это устроено

СтраницаURLТребования
Список маршрутов/routesпублично (вкладки: Популярные / 🤖 AI-маршруты / Мои)
Создать свой/routes/newавторизация
AI-маршрут/routes/aiавторизация + тариф «Стандарт 500»
Карточка маршрута/routes/[id]публично
Редактирование/routes/[id]/editвладелец

Маршрут = набор точек (объектов) с порядком, временем в каждой точке и днём. Автоматически считаются: общее расстояние (км), общая длительность, бюджет. Экспорт в GPX.

2. Создание маршрута вручную

  1. 1. /routes/new → заполните Название, Дней (мин. 1), описание (необязательно).
  2. 2. Добавьте точки маршрута: через поиск объектов (попап) или клик по карте.
  3. 3. Точку можно отредактировать: Название, Адрес, Заметка, Время (мин), День.
  4. 4. Порядок точек меняется drag-and-drop.
  5. 5. Сохраните:

- «💾 Сохранить» — приватный (виден только вам),

- «📤 Опубликовать» — публичный (попадает на /routes).

Переход с деталки объекта: кнопка «добавить в маршрут» → /routes/new?add_object=<slug> (точка подставляется автоматически).

3. AI-маршрут

  1. 1. /routes/ai — заполните параметры:

- Регион (по умолчанию «Республика Башкортостан»),

- Дней: 1 / 2 / 3 / 5 / 7 / 14,

- Бюджет: слайдер 3 000 – 100 000 ₽ (шаг 1000),

- Интересы: до 5 из 15 (природа, история, поход, города, сплав, горы, гастротур, здоровье, лыжи, пещеры, озёра, фототур, семейный, экстрим, паломничество),

- Транспорт: автомобиль / пешком / автобус / смешанный,

- Начальная точка: один из 10 городов РБ (Уфа, Стерлитамак, Салават, Нефтекамск, Белорецк, Сибай, Октябрьский, Туймазы, Ишимбай, Мелеуз),

- Сезон: лето / осень / зима / весна,

- Сложность: лёгкий / средний / сложный,

- «С детьми» — чекбокс.

  1. 2. «Сгенерировать» — AI (Ollama t-lite-it-2.1) составляет маршрут, расстояния — через OSRM. Кэш ответа 1 час.
  2. 3. Полученный маршрут можно перегенерировать или сохранить в свои.
⚠️ AI-маршруты доступны только с подпиской «Стандарт 500 ₽/мес» (пока тарифы туриста — целевая модель, доступ может включаться пилотно).

4. Просмотр и шаринг

5. Частые ошибки

ОшибкаПричинаРешение
«Доступно только со Стандарт»AI-маршрут без тарифаоформите подписку или создайте вручную
Нет точекне добавили ни одной точкидобавьте через поиск или клик по карте
Ошибка геокодинга точкиадрес не найденвведите адрес вручную/координаты

6. API (для разработчиков)

МетодПутьКто
GET/routesпублично
GET/routes/{id}, /routes/slug/{slug}публично (id — optional auth)
GET/routes/ai/popularпублично
GET/routes/mineauth
POST/routesauth
PUT/DELETE/routes/{id}владелец
POST/routes/{id}/share, /routes/{id}/recalculateвладелец
POST/routes/ai/generate, /routes/ai/regenerate/{id}auth + тариф
GET/routes/{id}/export.gpxпублично

Тело создания: {title, description, duration_days, is_public, waypoints:[{object_id, sort_order, title, address, latitude, longitude, note, stay_duration_min, day_number}]}.

7. Где код

EasySite102: аналитика и экспорт

Инструкция: аналитика и экспорт на EasySite (B2B)

1. Как это устроено

СтраницаURLТариф
Дашборд аналитики/profile/analyticshas_analytics (budget+)
Аналитика объектана дашборде, выбор объектато же
Экспорт/profile/exporthas_export (business+)

Данные собираются автоматически (события просмотров/кликов с сайта, ЯлАрбы и виджета) и агрегируются по дням (object_daily_stats).

2. Дашборд (по всем объектам)

3. Аналитика по объекту

Выберите объект — дополнительные метрики:

4. Экспорт

/profile/export → выберите формат (CSV — с BOM для Excel / JSON) и период (1–365 дней):

ВыгрузкаЧто содержит
ОбъектыID, название, категория, тип, город, адрес, координаты, цена, контакты, статус, просмотры, отзывы
Аналитикаагрегаты по дням
Аналитика объектапо конкретному объекту
Отзывыфидбек по объекту
Персональные данныепо 152-ФЗ ст.20 (JSON)
Экспорт доступен при tariff.has_export (business, vip, municipal, nko). Иначе — «экспорт недоступен на вашем тарифе».

5. Частые ошибки

ОшибкаПричинаРешение
Аналитика пустаямало событий / агрегация не запущенадождитесь данных (агрегация по дням, backfill 90 дней)
«Экспорт недоступен»тариф без has_exportповысьте тариф (business+)
CSV кривой в Excelбез BOMоткрывайте CSV (BOM уже добавляется автоматически)

6. API (для разработчиков)

МетодПутьКто
GET/analytics/dashboardauth + verified
GET/analytics/objects/{id}владелец
GET/analytics/objects/{id}/competitorsвладелец
POST/analytics/eventsпублично (rate limit)
POST/analytics/internal/eventsтолько Docker-сеть
GET/analytics/admin/dashboard?days=admin
GET/analytics/admin/objectsadmin
GET`/export/objects?format=csv\json`auth + has_export
GET/export/analytics?format=&days=auth + has_export
GET/export/analytics/objects/{id}владелец
GET/export/feedbacks?object_id=auth + has_export

7. Где код

EasySite102: CRM-интеграции

Инструкция: CRM-интеграции на EasySite (B2B)

1. Как это устроено

Заявки с объектов (из виджета, страницы объекта, ЯлАрбы) и заказы автоматически превращаются в лиды в вашей CRM. Поддерживаются AmoCRM (OAuth v4) и Bitrix24 (webhook/rest). Доступно на тарифе с флагом has_crm (VIP).

СтраницаURL
Интеграции/profile/crm

2. Подключение AmoCRM (OAuth v4)

  1. 1. В AmoCRM: создайте приложение (настройки → приложения) → получите client_id, client_secret.
  2. 2. Укажите redirect_uri — например https://ваш-сайт.ru/crm/amocrm/callback.
  3. 3. В /profile/crm заполните:

- client_id, client_secret, redirect_uri,

- subdomain — поддомен аккаунта (без .amocrm.ru).

  1. 4. Пройдите OAuth-флоу → EasySite получит access_token и будет автоматически его обновлять (401 → retry).
  2. 5. Проверьте кнопкой «🧪 Отправить тестовую заявку» — в AmoCRM должен появиться тестовый лид.

3. Подключение Bitrix24

  1. 1. В Bitrix24: «Разработчикам» → «Входящий вебхук» → создайте вебхук (по умолчанию права) → скопируйте URL вида:
   https://портал.bitrix24.ru/rest/1/xxxx/
  1. 2. Вставьте webhook_url в /profile/crm.
  2. 3. «🧪 Отправить тестовую заявку» → в Bitrix24 появится лид (crm.lead.add.json).

4. Как работают лиды

5. Управление

6. Частые ошибки

ОшибкаПричинаРешение
«Интеграция недоступна»тариф без has_crmповысьте до VIP
Лиды не создаютсяневерные креды/правaпроверьте client_secret, права вебхука
OAuth-токен протухинтеграция отключенапереподключите, refresh автоматический
Статус errorошибка отправкинажмите «Тест», исправьте параметры

7. API (для разработчиков)

МетодПутьКто
GET/POST/crm/integrationsauth + has_crm
PUT/DELETE/crm/integrations/{id}владелец
POST/crm/integrations/{id}/testвладелец

8. Где код

EasySite102: редактирование и удаление

Инструкция: редактирование, расширения, удаление и batch-операции (B2B)

1. Как это устроено

ДействиеURL/API
Редактирование/objects/[id]/edit
Расширения (extension)в форме редактирования, ExtensionForm
Акцииблок «Акции и новости» на /objects/[id]/edit
Событияблок «События»
Удалениекнопка 🗑️ на карточке (DELETE /objects/{id})
Batch-операции/objects/my-objects (галочки + массовые действия)

2. Редактирование

Откройте /objects/[id]/edit. Доступно:

3. Акции и события

На странице редактирования:

Оба раздела привязаны к объекту и попадают в календарь B2C (yalarba.ru) — только для объектов с publish_to_b2c=true, is_active=true, status=active.

4. Заказы, брони, слоты, клиенты (VIP)

5. Batch-операции (массовое изменение)

На /objects/my-objects выберите объекты галочками → массовые действия:

Лимит: до 100 объектов за раз.

6. Удаление

Кнопка 🗑️ на карточке (или DELETE /objects/{id}). Мягкое удаление (GORM DeletedAt) — объект скрывается, данные сохраняются в БД.

7. История изменений

GET /update-history/model/object/{objectId} — журнал изменений объекта.

8. Частые ошибки

ОшибкаПричинаРешение
403 при сохранениивы не владелецпроверьте права
Лимит событий/акцийпревышен max_events/max_salesповысьте тариф
Фото цены не загружается>1 МБсожмите фото до 1 МБ
Batch > 100лимитразделите на части

9. Где код

EasySite102: модерация

Инструкция: модерация объекта на EasySite (B2B)

1. Как это устроено

После создания объект проходит автоматическую + ручную модерацию. Статусы: draft → moderation → active, или inactive (скрыт), rejected (отклонён).

СтатусЗначение
draftчерновик (виден только владельцу)
moderationна проверке модератором
activeопубликован (виден всем, в т.ч. на B2C при publish_to_b2c)
inactiveскрыт владельцем/системой
rejectedотклонён (причина — комментарий модератора)

Статус виден на бейджах /objects/my-objects (draft=серый, moderation=жёлтый, active=зелёный, rejected=красный) и счётчиками в профиле.

2. Критерии модерации (13)

#КритерийВесАвто-проверка
1Фотографииcritical≥1 фото
2Контактыcriticalphone или email
3Описаниеhigh≥500 символов
4Адрес и координатыhighaddress или lat/lng
5Ценаhighprice > 0
6Категорияhighobject_type_id задан
7Удобстваmedium≥1 amenity
8Грамотностьmediumтолько человек
9Доп. классификаторыlowлюбой из 6 списков
10Сайт и соцсетиlowsite задан
11Нет дубликатовhighавто (похожее название+город)
12Нет стоп-словhighавто
13Нет токсичности (ML)mediumавто (moderation-svc)

Автоматические проверки выполняются сразу; человеческая — модератором в /admin/objects → review/[id] (сводка по весам critical/high/medium/low, авто-индикаторы ✅/❌).

3. Что нужно для прохождения (владельцу)

Чтобы объект одобрили, проверьте перед отправкой:

  1. 1. Фото — минимум 1 (лучше 3+).
  2. 2. Контакты — телефон или email.
  3. 3. Описание — от 500 символов.
  4. 4. Адрес — полный адрес и/или координаты.
  5. 5. Цена — стоимость больше 0 (даже «бесплатно» укажите 0 с пояснением).
  6. 6. Категория — выбран тип объекта.
  7. 7. Удобства — хотя бы одно.
  8. 8. Классификаторы — заполните релевантные списки.
  9. 9. Сайт/соцсети — укажите, если есть.
  10. 10. Уникальность и корректность — без стоп-слов, токсичности, дублей с другими объектами.

4. Как отправить на модерацию

5. После модерации

6. API (для разработчиков)

МетодПутьКто
GET/admin/objects/moderationмодератор
GET/admin/objects/{id}/reviewмодератор
PUT/admin/objects/{id}/review {results:[{criteria_id, passed, comment}]}модератор
PATCH/admin/objects/{id}/approveмодератор
PATCH/admin/objects/{id}/rejectмодератор
GET/admin/objects/content-reviewмодератор

7. Где код

EasySite102: создание объекта

Инструкция: создание объекта на EasySite (B2B)

1. Как это устроено

СтраницаURL
Мастер создания/objects/create
Пошаговая инструкция/objects/add-guide
Мои объекты/objects/my-objects

Объект создаётся в мастере из 9 шагов. На первом шаге создаётся черновик (status=draft), остальные шаги дополняют его. При отправке на модерацию статус → moderation.

2. Шаги мастера

ШагЧто заполняете
0. Название и типshort_name* (≤100), long_name, title, тип объекта (ClassifierSelect), tourism-типы
1. ПараметрыExtensionForm — поля зависят от типа объекта (категории)
2. Описаниеshort_description, description
3. Адресадрес (каскад ГАРН/ФИАС), city, координаты (карта/пин/геокодинг)
4. ФотоImageUploader (доступен после создания черновика)
5. Контактыphone, email, site
6. Время работыworking_hours
7. Цены и удобстваprices[], amenity_ids, транспорт/возраст/группы/культурное наследие/риски
8. Предпросмотрсводка

3. Адрес (ГАРН/ФИАС)

4. Фото

5. Тарифные лимиты

ТарифОбъектовФото
free11
budget53
business∞10
vip∞∞
municipal5030
nko2020

При превышении — tariff_limit_reached → предложение повысить тариф.

6. Автосохранение

Черновик автоматически сохраняется в localStorage (stores/objectDraft) — при обрыве можно продолжить.

7. Частые ошибки

ОшибкаПричинаРешение
tariff_limit_reachedпревышен лимит объектовповысьте тариф
photo_limit_reachedпревышен лимит фотоудалите лишние или повысьте тариф
Адрес не найденнет в ФИАСвведите вручную, координаты через пин
Не сохранён шаг 0short_name пустоезаполните название

8. API (для разработчиков)

МетодПутьКто
POST/objects (status=draft)auth
PUT/objects/{id}владелец
POST/objects/import-from-map {url}auth
GET/object-types, /tourism-types, /amenities, /transport-types, /age-groups, /group-types, /cultural-heritage-types, /risk-factorsпублично
GET/addresses/localities, /streets, /houses, /geocode, /reverseпублично
POST/upload (multipart file+object_id)владелец
POST/upload/priceвладелец (фото позиции прайса, ≤1 МБ)

9. Где код

EasySite102: регистрация и верификация

Инструкция: регистрация и верификация на EasySite (B2B)

1. Как это устроено

EasySite — B2B-платформа для владельцев туристических объектов. Регистрация → подтверждение email → заполнение профиля → верификация модератором (проверка личности/бизнеса) → публикация объектов.

СтраницаURL
Регистрация/auth/register
Вход/auth/login
Восстановление пароля/auth/forgot-password, /auth/reset-password
Подтверждение email/auth/verify-email, /auth/verify-email-pending
Профиль + подача на верификацию/profile/edit

2. Регистрация

  1. 1. /auth/register — заполните:

- Email (валидный),

- Имя и Фамилия (мин. 2 символа),

- Пароль (мин. 8 символов) + подтверждение,

- Согласие (152-ФЗ) — обязательно,

- Маркетинговое согласие — опционально,

- Тип предприятия: ИП / ООО / АО / МУП / ГУП / АУ / НКО / (физлицо),

- Самозанятый (НПД) — чекбокс.

  1. 2. Подтвердите email по ссылке из письма.
Верификация email обязательна для публикации отзывов/заявок; согласия обязательны для CRUD объектов.

3. Заполнение профиля

/profile/edit — поля: full_name, inn (до 12), phone, city, email, enterprise_type, org_full_name, org_short_name, org_inn, address, planned_objects_count; аватар — загрузка/удаление. Сохранение — кнопка «Сохранить».

4. Верификация модератором

  1. 1. Заполните профиль полностью.
  2. 2. Нажмите «Отправить на проверку» (POST /account/me/submit-verification) — статус станет pending.
  3. 3. Модератор проверяет по чеклисту из 5 пунктов: phone_verified (телефон подтверждён), inn_checked (ИНН проверен), address_confirmed (адрес подтверждён), objects_discussed (объекты обсуждены), responsibility_informed (об ответственности уведомлён).
  4. 4. Решение: approved / rejected (с комментарием). Статусы: not_submitted | pending | approved | rejected.
  5. 5. Статус виден на баннере /profile.
После верификации становятся доступны: публикация объектов, аналитика, экспорт и др. Для администраторов/модераторов — раздел /admin/verification.

5. Частые ошибки

ОшибкаПричинаРешение
Пароль < 8валидацияпароль от 8 символов
«Email не подтверждён»нет подтвержденияссылка из письма / «Отправить повторно»
Заявка на проверку не уходитпрофиль не заполнензаполните все обязательные поля
Верификация отклоненачеклист не выполненисправьте по комментарию модератора

6. API (для разработчиков)

МетодПутьКто
POST/auth/register, /auth/login, /auth/refresh, /auth/logoutпублично
POST/auth/reset-password, /auth/reset-password/confirmпублично
GET/auth/verify-email?token=публично
POST/auth/resend-verificationauth
PUT/account/meauth
POST/account/me/avatar, DELETE /account/me/avatarauth
POST/account/me/submit-verificationauth
GET/account/admin/accounts/pending-verificationadmin
PUT/account/admin/accounts/moderator-verifyadmin

7. Где код

EasySite102: тарифы и оплата

Инструкция: тарифы и оплата на EasySite (B2B)

1. Как это устроено

СтраницаURL
Тарифы/pricing
Оплата/pay
Моя подписка/profile → вкладка «Подписка»

Оплата — ручной перевод (карта Т-Банка или СБП по QR). После перевода укажите назначение платежа, админ подтверждает → создаётся подписка.

2. Тарифы

slugНазваниеЦенаОбъектовФото/объектАналитикаЭкспортAPIПлатежиCRMВиджет
freeБесплатный0 ₽11––––––
budgetБюджетная 500500 ₽/мес53✓–––––
businessБизнес 10001000 ₽/мес∞10✓✓––––
vipVIP 25002500 ₽/мес∞∞✓✓✓✓✓✓
municipalМуниципальныйпо договорённости5030✓✓✓–––
nkoСоциальный0 ₽2020✓✓––––

Особенности:

3. Оплата (шаги)

  1. 1. /pricing → выберите тариф → «Оформить» → /pay.
  2. 2. Укажите период: 1 / 3 / 6 / 12 месяцев.
  3. 3. Email плательщика (на него придут данные).
  4. 4. Способ оплаты:

- карта Т-Банка 2200 7005 6131 9004, или

- СБП по QR.

  1. 5. В назначении платежа укажите строго:
   {tariff_slug} {N}мес {email}

Пример: business 1мес ivan@mail.ru.

  1. 6. Отправьте форму (POST /manual-payments). Статус платежа — pending.
  2. 7. После подтверждения админом создаётся подписка → тариф активируется.
Если назначение платежа заполнено неверно — админ не сможет сопоставить платёж, обработка затянется. Пишите точно по шаблону.

4. Подписка

5. Авто-подписка

POST /subscriptions — создание подписки автоматически (например, после подтверждённого ручного платежа). Обычно пользователю не требуется вызывать вручную.

6. Частые ошибки

ОшибкаПричинаРешение
Платёж «завис» в pendingназначение платежа не совпалонапишите в поддержку с номером перевода и email
Тариф не активировалсяподтверждение ещё не прошлоподождите (обычно в течение рабочего дня)
Недоступен раздел (CRM/виджет/экспорт)тариф без флагаповысьте тариф

7. API (для разработчиков)

МетодПутьКто
GET/tariffs, /tariffs/{slug}публично
GET/me/subscriptionauth
POST/subscriptionsauth
PUT/subscriptions/cancelauth
GET/me/manual-payments, /me/paymentsauth
POST/manual-paymentsauth
GET/admin/manual-paymentsadmin
PUT/admin/manual-payments/{id}/confirm / /rejectadmin

8. Где код

EasySite102: виджет заявок

Инструкция: виджет заявок на EasySite (B2B)

1. Как это устроено

Виджет — кнопка заявок на вашем сайте. Посетитель нажимает → открывается форма → заявка приходит вам (в профиль + в CRM при подключении). Доступен на тарифе с флагом has_widget (Business+).

СтраницаURL
Настройка/profile/widget
Вставкакод на ваш сайт

2. Настройка виджета

/profile/widget → «Создать виджет»:

ПараметрОписание
Объектконкретный объект или «все объекты» (null)
Цветprimary_color (hex)
Позицияправый/левый нижний угол
Заголовокtitle (≤100)
Текст кнопкиbutton_text (≤50)
Иконка кнопкичат / телефон / календарь
Поля формычекбоксы: имя, телефон, email, комментарий, даты
Сообщение после отправкиsuccess_message
Разрешённые доменыallowed_domains — где виджет можно встраивать (защита от чужого размещения)

Создание требует: авторизацию + подтверждённый email + тариф с has_widget.

3. Вставка на сайт

После создания получите embed_code:

<script async defer src="{base}/widget/embed.js" data-widget-id="{id}"></script>

Вставьте его перед </body> на вашем сайте (или в шаблон CMS/лендинга).

4. Приём заявок

5. Частые ошибки

ОшибкаПричинаРешение
«Виджет недоступен»тариф без has_widgetповысьте тариф (Business+)
Заявки не приходятвиджет на другом доменедобавьте домен в allowed_domains
Кнопка не виднакод вставлен невернопроверьте data-widget-id, вставьте перед </body>

6. API (для разработчиков)

МетодПутьКто
GET/POST/widget/configsauth + verified + has_widget
PUT/DELETE/widget/configs/{id}владелец
GET/widget/config/{widget_id}публично
POST/widget/inquiryпублично (rate limit 5/час/IP, honeypot)
GET/widget/embed.jsпублично (go:embed widget.min.js)

7. Где код