Розробка порталу для аптеки
Аптечна мережа втратила 20% бронювань: залишки на сайті не збігалися з реальними — синхронізація з 1С:Аптека працювала раз на добу. Ми перевели оновлення на Webhook-сповіщення та впровадили PostGIS-геопошук: тепер дані актуальні із затримкою не більше хвилини. Портал — не просто ecommerce, а складна система з регуляторними обмеженнями. Російська постанова №697 вимагає маркування через Чесний знак, верифікації рецептів та суворої фільтрації доставки. Розробка порталу для аптеки включає каталог лікарських препаратів, геопошук аптек, онлайн-бронювання та інтеграцію з обліковими системами. Кожен блок — відображення залишків у реальному часі, пошук аналогів за МНН, підтвердження рецептів — вимагає продуманої архітектури. Ми вирішуємо проблему синхронізації та відповідності регуляторним нормам, забезпечуючи зростання бронювань на 30%. Наші рішення допомагають аптечним мережам збільшити онлайн-бронювання до 40%. Вартість розробки залежить від вимог: базовий портал — від $15,000, повноцінний — від $50,000. Інвестиція окупається за 6-8 місяців завдяки зростанню бронювань на 30%, що забезпечує економію до $15,000 на рік на синхронізації.
Як забезпечити відповідність регуляторним вимогам?
Для забезпечення відповідності необхідно впровадити верифікацію рецептів, маркування через Чесний знак та обмеження доставки. Фармацевт перевіряє рецепт через аптечний кабінет, система блокує Rx-препарати без рецепта. Інтеграція з ГІС МТ перевіряє DataMatrix-коди при продажу.
Вплив регуляторних вимог на архітектуру
Рецептурні препарати (Rx) заборонені до дистанційного продажу без верифікації рецепта. Товари отримують прапорець requires_prescription. Rx-препарати видні в каталозі, але кошик блокується до завантаження знімка рецепта. Фармацевт перевіряє рецепт через аптечний кабінет — замовлення підтверджується лише після схвалення. Маркування обов'язкове: кожна упаковка має DataMatrix-код. Інтеграція з ГІС МТ (Чесний знак) верифікує код при прийманні та вибутті. Система повинна працювати з API ГІС МТ: GET /api/v2/true-api/codes?code=... — перевірка при прийманні, POST /api/v2/true-api/orders — повідомлення про продаж. Користувач бачить лише «товар перевірено», помилки блокують продаж. Ми гарантуємо відповідність регуляторним вимогам, маємо сертифікати на інтеграції з 1С та Чесним знаком, а наш досвід підтверджується понад 50 успішними проєктами. Наша команда — 5+ років досвіду у фармацевтичному ecommerce, 20+ сертифікованих спеціалістів.
Каталог лікарських препаратів: структура даних
Препарат — не просто товар. Його модель включає МНН, АТХ-код, дозування, форму випуску, термін придатності, номер реєстраційного посвідчення. АТХ-код (наприклад, C09AA01 для каптоприлу) — міжнародний класифікатор, за ним будується навігація за терапевтичними групами.
drugs ( id, trade_name, inn, manufacturer, country_of_origin, atc_code VARCHAR(7), dosage_form, dosage, package_quantity INT, requires_prescription BOOLEAN, storage_conditions, shelf_life_months INT, registration_number, is_vital BOOLEAN ) drug_contraindications (drug_id, category, description) drug_interactions (drug_id_a, drug_id_b, severity, description) Для пошуку аналогів використовуємо таблицю синонімів:
drug_synonyms (drug_id, synonym, type) -- type: trade_name | inn | popular_name Пошук аналогів за МНН:
SELECT * FROM drugs WHERE inn = (SELECT inn FROM drugs WHERE id = :id) AND id != :id ORDER BY price Elasticsearch-індекс з полями trade_name, inn, synonyms[], atc_code та російською морфологією прискорює пошук у рази.
Як реалізувати геопошук аптек?
Геопошук базується на координатах аптек та залишках. Користувач вводить адресу — система знаходить найближчі точки з потрібним товаром.
| Метод геопошуку | Продуктивність | Обмеження |
|---|---|---|
| PostGIS (ST_DWithin) | 10мс на 1000 аптек | Потрібен PostgreSQL з розширенням |
| Haversine formula | 1мс на 100 аптек | Повільніше при >1000 аптек в 10 разів |
PostGIS обробляє запити в 10 разів швидше за Haversine при тисячі аптек, тому для мереж із сотнями точок переважніший саме він. Залишки оновлюються кожні 15–60 хвилин через API облікової системи. Важливо показувати мітку часу останньої синхронізації. Наше рішення з інтеграцією через Webhook забезпечує оновлення залишків у 5 разів швидше, ніж щоденна синхронізація.
Як налаштувати пошук аналогів?
Пошук аналогів будується на МНН. Дотримуйтесь цих кроків:
- Визначте МНН препарату за допомогою запиту до таблиці drugs.
- Виконайте SQL-запит для отримання списку взаємозамінних препаратів, відсортованих за ціною.
- Додайте нечіткий пошук через Elasticsearch: індексуйте поля trade_name, inn, synonyms, atc_code з російською морфологією.
- Кешуйте популярні запити в Redis для прискорення.
Онлайн-бронювання vs доставка: юридичні межі
Бронювання (click-and-collect) юридично простіше — це резервування, а не дистанційний продаж. Технічно: бронь з TTL 24–48 годин, декремент резерву. Доставка дозволена лише для безрецептурних препаратів і вимагає ліцензії. На чекауті — жорстка фільтрація за requires_prescription = false.
Аптечний кабінет провізора та особистий кабінет пацієнта
Провізор працює в окремому інтерфейсі: верифікація рецептів, управління залишками, підтвердження броней, лог видачі. Пацієнт бачить історію покупок, завантажені рецепти, нагадування про повторне замовлення. Нагадування — через push (PWA) або email, з тригером за 5 днів до закінчення курсу.
Що входить у роботу
Кожен проєкт включає:
- Технічне завдання та архітектурний проєкт (ER-діаграми, схеми інтеграцій).
- Розробку backend (Laravel 11, API для мобільних додатків) та frontend (React/Next.js).
- Інтеграцію з обліковою системою (1С:Аптека, АСНА, Катрен-Стайл) через REST або Webhook.
- Налаштування геопошуку, повнотекстового пошуку (Elasticsearch).
- Модулі особистих кабінетів (пацієнт, провізор, адміністратор).
- Юридичну перевірку відповідності регуляторним вимогам.
- Розгортання на сервері, навчання співробітників, моніторинг (30 днів підтримки після запуску).
Типові помилки при інтеграції з обліковою системою
- Синхронізація залишків раз на добу — призводить до невалідних броней. Рішення: Webhook-сповіщення про зміни.
- Ігнорування ідентифікаторів аптек у запитах — призводить до плутанини. Використовуйте
pharmacy_idу всіх ендпоінтах. - Відсутність прапорців
requires_prescriptionтаis_vital— порушення регуляторних норм. Додайте обов'язкову валідацію.
Чому варто працювати з нами?
Наш досвід — понад 5 років у фармацевтичному ecommerce, 50+ реалізованих проєктів, 20+ сертифікованих спеціалістів. Ми гарантуємо відповідність регуляторним вимогам, маємо сертифікати на інтеграції з 1С та Чесним знаком. Отримайте консультацію: ми оцінимо ваш проєкт за 3 дні, підготуємо кошторис та план інтеграцій. Зв'яжіться з нами, щоб обговорити деталі.
Терміни розробки аптечного порталу
- Базовий портал (каталог, геопошук, бронювання, безрецептурні): 6–10 тижнів.
- Повноцінний портал (рецепти, 1С, Честний знак, доставка, кабінети): 14–20 тижнів.
- Кожна додаткова облікова система: 2–4 тижні.
| Етап | Тривалість |
|---|---|
| Аудит і ТЗ | 1–2 тижні |
| Проєктування | 1–2 тижні |
| Розробка core | 4–8 тижнів |
| Інтеграції | 2–4 тижні |
| Тестування | 1–2 тижні |
| Розгортання | 1 тиждень |
Регуляторна частина займає 30–40% часу. Отримайте консультацію: ми оцінимо ваш проєкт за 3 дні, підготуємо кошторис та план інтеграцій. Зв'яжіться з нами, щоб обговорити деталі.







