Розробка порталу оголошень на 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Розробка порталу оголошень на 1С-Бітрікс
Складна
від 1 тижня до 3 місяців
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Розробка портала об'ять на 1С-Бітрікс

Людина хоче продати диван. Фотографує, пише опис, заходить на сайт — і упирається в форму з 30 полів, половина яких незрозуміла. Кидає. Йде на Avito. Якщо портал об'ять втрачає користувача на етапі подачі — все інше (модерація, пошук, монетизація) не має значення. Проектування класифайда на 1С-Бітриксі починається з користувацького сценарію, а не з архітектури бази даних.

Архітектура контентної моделі

Класифайд — це каталог користувацького контенту з категоріями, де у кожної категорії свій набір характеристик. Автомобіль описується маркою, моделлю, роком випуску, пробігом. Квартира — площею, поверхом, кількістю кімнат. Смартфон — моделлю, станом, об'ємом пам'яті.

У 1С-Бітриксі це реалізується через інфоблоки з користувацькими властивостями:

  • Один інфоблок — всі об'яви, категорія визначається розділом
  • Динамічні властивості — набір властивостей залежить від виібраної категорії. Реалізується через множественні властивості з привязкою видимості до розділу (фронтенд-логіка) або через окремі інфоблоки під кожну крупну категорію

Другий підхід переважніший для порталів з принципово різними типами товарів (авто, нерухомість, послуги). Кожен інфоблок — чиста схема властивостей, індекси заточені під конкретні фільтри, немає «мусорних» порожніх полів.

Елемент об'яви містить:

  • Заголовок, опис, ціну (з валютою)
  • Категорія + підкатегорія (розділи інфоблока, до 3–4 рівнів)
  • Фотографії (множественна властивість типу «Файл», до 10–20 зображень)
  • Геолокацію (місто, район — справочник або координати для карти)
  • Контакти продавця (телефон, мессенджер — сховані до авторизації)
  • Статус: чернетка, на модерації, активно, продано, знято, заблокировано
  • Тип об'яви: приватне / від компанії
  • Термін розміщення та дату закінчення

Подача об'яви — критичний сценарій

Форма подачи має бути покроковою:

  1. Вибір категорії — дерево з пошуком, популярні категорії винесені окремо
  2. Заповнення полів — тільки релевантні для виібраної категорії, обов'язкові поля мінімізовані
  3. Завантаження фото — drag-and-drop, обрізка, поворот, стиск на клієнті перед відправкою
  4. Предпросмотр — як буде виглядати об'ява в пошуку та на сторінці
  5. Публікація — з опціональним вибором платних послуг (піднімання, виділення)

Реалізується через кастомний компонент на базі bitrix:iblock.element.add.form або повністю кастомну форму з REST API на фронтенді. Другий варіант дає контроль над UX — валідація на льоту, прогрес-бар завантаження фото, автозбереження чернетки.

Автозбереження. Користувач заповнив половину форми, закрив вкладку. При повертанні — чернетка на місці. Реалізується через localStorage + збереження на сервер кожні 30 секунд через AJAX.

Модерація

Користувацький контент без модерації — це спам, шахрайство та заборонені товари в перший же день.

Багаторівнева система модерації:

  • Автоматична фільтрація — стоп-слова, перевірка на дубікати (порівняння гешей фото та тексту), детектор телефонних номерів у тексті (спроба обійти скриття контактів)
  • Ручна премодерація — для нових користувачів (перші 3–5 об'ять)
  • Постмодерація — для користувачів з історією, об'ява публікується одразу, але потрапляє в чергу перевірки
  • Скарги користувачів — кнопка «Пожаловаться» з вибором причини, автоскриття при порозі скарг
Тип перевірки Момент Реалізація
Стоп-слова При збереженні Обробник OnBeforeIBlockElementAdd
Дублікат фото При завантаженні Perceptual hash (pHash), порівняння з базою
Дублікат тексту При збереженні Шингли або MinHash
Телефон у тексті При збереженні Regex-фільтр
Ручна модерація Після подачи Чергу в админці з bulk-діями
Скарги Після публікації Лічильник скарг, поріг автоскриття

Модераторський інтерфейс — окрема сторінка в адміністративному розділі з фільтрами за статусом, категорією, датою. Гарячі клавіші для швидкої обробки: одобрити, відклонити, запросити правки.

Пошук та фільтрація

Пошук — основний спосіб навігації. Користувач не листає каталог, а задає параметри: «квартира, 2 кімнати, Мінськ, до $50 000».

Компонент фільтра:

  • Фасетні фільтри за властивостями інфоблока — для швидкості використовується модуль фасетного індекса (iblock_facet)
  • Діапазони цін з повзунком
  • Геофільтр — вибір міста/району або радіус на карті
  • Сортування: за датою, ціною, релевантністю
  • Збереження пошуку — користувач підписується на запит і отримує сповіщення про нові об'яви

Повнотекстовий пошук — Elasticsearch для автодовипадання, виправлення опечаток, пошуку за синонімами (наприклад, «однушка» → «1-кімнатна квартира»).

Для крупних порталів (100 000+ об'ять) фільтрація через стандартний CIBlockElement::GetList не підходить за продуктивністю. Рішення — вивіз даних у Elasticsearch або Sphinx, фільтрація на стороні пошукового рушія, віддача ID елементів назад у Бітрікс для відображення.

Особистий кабінет користувача

Особистий кабінет — другий за важливістю елемент після пошуку.

Функції кабінету:

  • Мої об'яви — список з фільтрами за статусом, швидке редагування, продовження, знімання
  • Улюблене — збережені об'яви інших користувачів
  • Повідомлення — внутрішня переписка між покупцем та продавцем (без розкриття контактів до угоди)
  • Сповіщення — нові повідомлення, зміна статусу об'яви, результати підписки на пошук
  • Відгуки — рейтинг продавця по итогам угод
  • Баланс та платежи — для монетизації через платні послуги

Внутрішня переписка реалізується через кастомний модуль або через модуль «Веб-мессенджер» (im) 1С-Бітрікса. Другий варіант дає real-time доставку, але інтерфейс вимагає кастомізації.

Монетизація

Безплатна площадка без монетизації — це убитковий проект. Моделі заробку:

Платні послуги для об'ять:

  • Піднімання в пошуку (на N годин/днів)
  • Виділення кольором або рамкою в ленті
  • VIP-розміщення в топі розділу
  • Збільшення ліміту фотографій

Підписки для продавців:

  • Безплатний тариф: N об'ять на місяць
  • Платний: безліміт + статистика переглядів + пріоритет у видачі

Реклама:

  • Баннери в каталозі та на сторінках об'ять (модуль advertising)
  • Контекстні блоки, прив'язані до категорій

Платежи приймаються через модуль «Інтернет-магазин» (sale): замовлення на послугу, оплата через платіжну систему (YooKassa, CloudPayments, Stripe), автоматичне застосування послуги після оплати. Рекурентні платежи для підписок — через токенізацію карти.

Баланс користувача. Внутрішній рахунок, поповлюваний через платіжну систему. Списання — при активації послуги. Реалізується через внутрішні рахунки модуля sale або кастомну таблицю.

SEO для класифайда

Портал об'ять генерує тисячи сторінок. SEO-стратегія:

  • Унікальний title та description для кожної об'яви — шаблонізація з властивостей: «{Назва} — купити у {Місто}, ціна {Ціна} грн.»
  • ЧПУ/category/subcategory/id-slug/
  • Фільтри як посадочні сторінки/kvartiry/minsk/2-komnatnye/ — окрема сторінка з мета-тегами, а не параметр в URL
  • Noindex для порожніх категорій та знятих об'ять
  • Sitemap — динамічна генерація, оновлення при кожній публікації/знятті
  • Мікророзмітка Product або Offer по Schema.org

Продуктивність та масштабування

Портал об'ять — це високонавантажений проект. 100 000 об'ять × 5 фото = 500 000 файлів. Тисячі одночасних пошукових запитів з фільтрацією.

Стек оптимізації:

  • Композитний кеш для сторінок об'ять та категорій
  • Фасетний індекс для швидкої фільтрації
  • Elasticsearch/Sphinx для повнотекстового пошуку
  • CDN для зображень з автоматичним ресайзом (через BX_RESIZE_IMAGE_PROPORTIONAL або зовнішній сервіс типу imgproxy)
  • Чергу — обробка фото, відправка сповіщень, індексація в пошуковому рушії — через агенти 1С-Бітрікса або RabbitMQ
  • Окремий сервер БД, реплика для читання при навантаженні понад 500 RPS