Онлайн-портал замовлення ліків і управління мережею аптек (Yii2 + MySQL)

Online portal for ordering medicines and managing a network of pharmacies (Yii2 + MySQL)
21 лютого 2026 р.

Створив веб-портал для мережі аптек, який поєднує онлайн-замовлення медикаментів, керування асортиментом і складами, планування графіків прийому (фармацевтів/провізорів/пунктів видачі) та роботу з постачальниками. Рішення побудоване на Yii2 із акцентом на надійність, масштабування та чітку рольову модель доступу.

Технології: PHP 8+, Yii2, MySQL, HTML, CSS, Bootstrap, Yii2-queue (за потреби), Redis/Cache (де актуально).

Бізнес-вимоги

  • Онлайн-вітрина з актуальними залишками, цінами, статусами наявності (в наявності/під замовлення/закінчується).
  • Кошик і швидке оформлення замовлення: самовивіз або доставка (за сценарієм клієнта).
  • Кілька ролей: Адміністратор мережі, Менеджер аптеки, Провізор/Фармацевт, Користувач (пацієнт), Постачальник.
  • Графіки прийому / години роботи аптек і пунктів видачі, слоти видачі/консультацій.
  • Інтеграція з постачальниками: прайси, мінімальні замовлення, статуси поставок.
  • Розширюваність: нові аптечні точки, категорії товарів, правила ціноутворення, промокоди.

Архітектура та ключові рішення (Yii2)

  • Шаблон: Yii2 Advanced (frontend/backend/api), чіткий поділ на публічний інтерфейс, адмін-панель і REST-API.
  • ActiveRecord + DataProvider: ефективні запити, індекси в MySQL, пошук із фільтрами (категорія, виробник, форма).
  • RBAC (Role-Based Access Control): політики доступу для всіх ролей; granular permissions (create/update/approve orders, manage stock, manage suppliers).
  • Behaviors: TimestampBehavior, BlameableBehavior; для товарів — SEO-поля та дружні URL (за потреби).
  • Валідації/сценарії: окремі сценарії для створення, редагування, підтвердження замовлень; перевірка рецептів (за вимогою).
  • REST API (yii\rest\Controller): мобільний застосунок/3rd-party інтеграції; формати JSON, узгоджені коди помилок.
  • Міграції: повний контроль схеми БД; дампи/seed-дані для стендів.
  • Кешування: категорій, фільтрів, підказок пошуку; при оновленні довідників — інвалідовано.

Ключовий функціонал

1) Ролі та доступ

  • Адміністратор мережі: глобальні налаштування, створення аптек, ролей, бізнес-правил, інтеграції з постачальниками.
  • Менеджер аптеки: локальні ціни, запаси, підтвердження замовлень, робочі години, вітрина конкретної точки.
  • Провізор/Фармацевт: обробка замовлень, консультації, резервування товарів, позначення готовності до видачі.
  • Постачальник: прайси/мінімальні партії, підтвердження відвантажень, ETA, заміни аналогами (якщо узгоджено).
  • Користувач (пацієнт): пошук ліків, перевірка наявності, оформлення замовлення, вибір аптеки/часу.

2) Каталог і наявність

  • Категорії, форми випуску, виробники, SKU/штрих-коди, правила заміни (узгоджені аналоги).
  • Склади/залишки по кожній аптеці, резерв під замовлення (щоб уникати оверсейлу), сповіщення про зниження запасів.

3) Замовлення та опрацювання

  • Класичний флоу: В кошик → Оформлення → Оплата/Бронювання → Підтвердження аптекою → Готово до видачі/Доставка.
  • Статуси: draft / pending / confirmed / ready / completed / cancelled; журнал подій і коментарі персоналу.
  • Валідація рецептурності (якщо є вимога завантаження рецепта), логіка перевірки віку/обмежень (конфігуровано).

4) Години роботи та слоти

  • Календар аптек: години прийому/видачі, винятки (свята, інвентаризації).
  • Ранжування слотів при оформленні (найближчий доступний час), ліміти на кількість видач у слоті.

5) Постачальники та закупівлі

  • Імпорт прайсів (CSV/Excel/API), мапінг на внутрішні артикули.
  • Формування заявок постачальнику з урахуванням мінімальної партії та залишків.
  • Трекінг поставок: статуси, очікувані дати, автооновлення залишків.

Безпека та відповідність

  • RBAC + політики доступу на кожен CRUD-оператор.
  • Захист форм: CSRF, rate-limit (на API), валідації сервером, санітизація інпутів.
  • Аудит-лог дій користувачів і змін у замовленнях/запасах.
  • Резервне копіювання БД; окремі ролі доступу до чутливих операцій.
  • Опціонально: зберігання та перевірка електронних рецептів згідно з локальними нормами (конфігуровано).

Перформанс і UX

  • Пошук з автодоповненням (кеш підказок), фільтри без перезавантаження.
  • Оптимізація SQL (композитні індекси, explain-аналіз), пагінація через ActiveDataProvider.
  • Bootstrap для чистої, доступної верстки; мобільний-перший підхід.
  • Опціонально: черги (Yii2-queue) для важких задач — імпорт прайсів, масові оновлення, нотифікації.

Аналітика та адмін-панель

  • Дашборди: продажі по аптеках, топ-позиції, відсоток резервів, скасування, SLA видачі.
  • Звіти по постачальниках: ціни, виконання термінів, надійність поставок.
  • Експорт CSV/Excel; ролезалежні перегляди й фільтри.

Результати для бізнесу

  • Єдина система для онлайн-продажу і операцій аптечної мережі.
  • Прозорість запасів і контроль бронювань — менше відмов клієнтам.
  • Швидше опрацювання замовлень і планування видач завдяки слотам і ролям.
  • Готовність до масштабування: додавання аптек, нових категорій, інтеграцій із постачальниками чи платіжними сервісами.

Потрібен подібний портал для аптечної мережі на Yii2?

Підготую архітектуру, дорожню карту впровадження та кошторис з урахуванням регуляторних вимог і інтеграцій.