Розробка сайту аптеки на 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С-Бітрікс

Аптечний сайт — один з найбільш зарегульованих проектів у e-commerce. Дистанційна продаж рецептурних препаратів заборонена законодавством, безрецептурні можна продавати лише при наявності ліцензії на фармацевтичну діяльність і дотриманні вимог постанов уряду. Технічна реалізація повинна враховувати ці обмеження на рівні архітектури, а не просто текстових попереджень.

Каталог лікарських препаратів

Структура каталогу будується на інфоблоці з розширеним набором властивостей, адаптованих під фармацевтичну номенклатуру:

Властивість Тип Призначення
ACTIVE_SUBSTANCE Строка МНН (міжнародне непатентоване найменування)
TRADE_NAME Назва елемента Торговий назва
DOSAGE_FORM Список Таблетки, капсули, розчин, мазь, супозиторії...
DOSAGE Строка 500 мг, 10 мг/мл
PACKAGE_QTY Число Кількість в упаковці
PRESCRIPTION Список Рецептурний / Безрецептурний
ATC_CODE Строка Код АТХ-класифікації (J01CA04 тощо)
MANUFACTURER Прив'язка до HL Виробник
COUNTRY Прив'язка до HL Країна виробництва
REG_NUMBER Строка Номер реєстраційного посвідчення
STORAGE_TEMP Список До 25°C / 2–8°C / Без обмежень
MDLP_GTIN Строка GTIN для маркування МДЛП
ANALOGS Прив'язка до елементів (множ.) Аналоги за МНН

Для рецептурних препаратів кнопка «Купити» замінюється на «Забронювати» з поясненням: відпуск лише при пред'явленні рецепта в аптеці. Це обробляється на рівні шаблону компонента catalog.element — перевіряється властивість PRESCRIPTION, і залежно від значення рендериться потрібний блок дій.

Категоризація каталогу — подвійна. Основна навігація за фармакотерапевтичними групами (АТХ-класифікація), додаткова — за формами випуску та за призначенням (від головного болю, від застуди, вітаміни). Реалізація через розділи інфоблока (АТХ) та теги (призначення).

Пошук за симптомами та довідник МКБ-10

Довідник МКБ-10 (Міжнародна класифікація хвороб, 10-й перегляд) завантажується в Highload-блок hl_mkb10. Структура:

  • UF_CODE — код діагнозу (J06.9, K21.0)
  • UF_NAME — назва діагнозу
  • UF_PARENT_CODE — код батьківської групи (для ієрархії)
  • UF_SYNONYMS — побутові назви (нежить, виразка, мігрень)

Пошукова строка з автопідказкою: користувач вводить «болить горло» — система шукає по полю UF_SYNONYMS, знаходить J02 (гострий фарингіт) і J03 (гострий тонзиліт), підставляє пов'язані препарати. Зв'язок «діагноз → препарат» зберігається в проміжному Highload-блоці hl_mkb_drugs (поля: UF_MKB_CODE, UF_PRODUCT_ID).

Пошук працює через AJAX-контролер, результати кешуються на стороні клієнта (sessionStorage) для повторних запитів. На бекенді — складній індекс по UF_SYNONYMS + UF_NAME для швидкої фільтрації.

Перевірка наявності по аптекам і пошук аналогів

Це найбільш затребувана функція аптечного сайту і основна точка технічної складності. Користувач хоче знати: є чи потрібний препарат в аптеці рядом з домом, і якщо нема — які аналоги доступні.

Архітектура перевірки наявності:

Остатки зберігаються не в Бітриксі — приходять з облікової системи аптечної мережі. Типові варіанти:

  1. 1С:Управління аптечною мережею — вивантаження остатків через REST-сервіс по HTTP
  2. Фарматика / М-Аптека плюс — обмін через файли CSV/XML на FTP
  3. Кастомна система обліку — REST API або SOAP

Незалежно від джерела, дані потрапляють в Highload-блок hl_pharmacy_stock:

Поле Тип Призначення
UF_PRODUCT_ID Число ID товара в каталозі Бітрікса
UF_PHARMACY_ID Число ID аптеки (з інфоблока «Аптеки»)
UF_QUANTITY Число Остаток (штуки/упаковки)
UF_PRICE Число Ціна в конкретній аптеці
UF_UPDATED_AT Дата/час Час останнього оновлення

Синхронізація запускається cron-агентом CPharmacyStockAgent кожні 15–30 хвилин. Повна вивантаження — ночами, протягом дня — інкрементальна (тільки зміни). При 50 аптеках і 15 000 SKU таблиця містить до 750 000 записів — Highload-блок справляється, але потрібен індекс по (UF_PRODUCT_ID, UF_PHARMACY_ID).

Вивід на фронте:

На деталізованій сторінці препарата — блок «Наявність в аптеках». AJAX-запит з передачею ID товара повертає список аптек з остатками. Аптеки сортуються за відділеністю від користувача (геолокація через Geolocation API браузера + розрахунок відстані за формулою Haversine). Кожна строка: назва аптеки, адреса, остаток (точна кількість або «В наявності» / «Мало» / «Немає»), кнопка «Забронювати».

Точну кількість остатків показувати не рекомендується — вона застарівує за хвилини. Краще три градації: зелена (>5), жовта (1–5), сірий (0). Поріг настроюється в опціях модуля.

Пошук аналогів:

Коли препарата нема ні в одній аптеці — користувачу пропонуються аналоги. Алгоритм:

  1. Беруться МНН поточного препарату (ACTIVE_SUBSTANCE).
  2. Вибираються всі товари з тим же МНН та тією ж дозуванням — це повні аналоги (дженерики).
  3. Якщо збігів мало — розширюється до тієї ж АТХ-групи 4-го рівня (фармакологічні аналоги).
  4. Результат фільтрується за наявністю в аптеках — показуються тільки ті, які реально можна взяти.

Властивість ANALOGS (прив'язка до елементів) заповнюється автоматично cron-скриптом на основі збігу МНН. Ручне редагування — для випадків, коли фармацевт хоче додати або виключити конкретний аналог.

Онлайн-бронювання

Бронювання — не продаж. Оплата не взимається на сайті. Процес:

  1. Користувач вибирає препарат і аптеку, натискає «Забронювати».
  2. Створюється заявка в CRM Бітрікса (ліда або угода) з даними: препарат, аптека, контактний телефон.
  3. Паралельно — запит в облікову систему аптеки на резервування.
  4. Користувач отримує SMS/push з номером броні та часом, до якого потрібно взяти (зазвичай 24–48 годин).
  5. При закінченні терміну — автоматична відмена бронювання, повернення в вільний остаток.

Для рецептурних препаратів бронювання доступне, але при отриманні обов'язково пред'явлення рецепта — це фіксується в умовах бронювання.

Інтеграція з МДЛП

Маркування ліків через систему «Честный ЗНАК» (МДЛП — моніторинг руху лікарських препаратів) обов'язкова. На сайті це відображається:

  • Кожен препарат містить GTIN (MDLP_GTIN) — по ньому можна перевірити підлинність на сайті «Честного ЗНАКа».
  • На деталізованій сторінці — посилання «Перевірити підлинність» з формуванням URL на checkmark.crpt.ru.
  • При бронюванні фіксується серійний номер упаковки (якщо аптека передає цю інформацію через API).

Schema.org для фармацевтики

Мікророзмітка schema.org/Drug на деталізованих сторінках:

  • nonProprietaryName — МНН
  • activeIngredient — активна речовина
  • dosageForm — форма випуску
  • drugClass — фармакологічна група
  • manufacturer — виробник
  • availableStrength — дозування
  • prescriptionStatusOTC або PrescriptionOnly
  • isAvailableGenerically — наявність дженериків (true/false)

Ця розмітка допомагає пошуковим системам правильно індексувати каталог і формувати розширені сніпети.

Етапи проекту

Етап Роботи Тривалість
Аналітика та проектування Маппінг номенклатури, інтеграційні контракти, UX-прототипи 2–3 тижні
Каталог та пошук Інфоблоки, HL-блоки, пошук за МКБ-10, фільтри 3–4 тижні
Наявність та бронювання Інтеграція з обліковою системою, геолокація, бронювання 4–5 тижнів
Аналоги та Schema.org Алгоритм підбору аналогів, мікророзмітка, SEO 2 тижні
Тестування Перевірка обміну даними, навантаження на HL-блок остатків 1–2 тижні
Запуск Наповнення каталогу, навчання фармацевтів-редакторів 1 тиждень