Сайт мнгопрофильного медицинского центра на minishop2

Всем привет!
Поделитесь опытом, плиз, кто уже сталкивался с подобной задачей.
Нужно сделать сайт многопрофильного медцентра.

У специализации врача есть набор услуг, которые оказывают несколько врачей и каждый по своей цене. Каждый врач может относиться к разным специализациям (например, врач-УЗИ и гинеколог), к тому же врач по специализации может относиться к разным отделениями (например, Взрослое: гинеколог и Детское: детский гинеколог).

Никак не могу понять как это правильно или лучше сделать, чтобы не плодить услуги, не дублировать карточки врачей, в услугах не писать ФИО и специализацию и т.д. Так как затем нужно создать фид для загрузки в Яндекс Вебмастер

yastatic.net/s3/doc-binary/src/support/ru/webmaster/files/doctors.xml

Ключевые разделы:
Взрослое отделение
— Врач-УЗИ
— — Иванов И
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 1000 рублей
— — — УЗИ органов малого таза — 1500 рублей
— Гинеколог
— — Иванов И
— — — Первичный приём — 1200 рублей
— — — Повторный приём — 1000 рублей
— — Петрова М
— — — Первичный приём — 1500 рублей
— — — Повторный приём — 1200 рублей
Детское отделение
— Гинеколог
— — Петрова М
— — — Первичный приём — 1000 рублей
— — — Повторный приём — 800 рублей
Arthur
06 марта 2025, 09:39
modx.pro
936
0

Комментарии: 2

Наумов Алексей
06 марта 2025, 09:54
+1
Обычно на таких сайтах есть раздел Услуги, где будет все, что у вас перечислено (до уровня врачей, но не включая их) и раздел Специалисты — где уже просто идут все врачи общим списком каким-то.

Далее нужно связать эти два раздела, в целом можно было бы просто добавить TV поле Список с множественным выбором к Услуге и выбирать там врачей, кто оказывает эту услугу. Но вы указали, что каждому врачу нужен еще и прайс-лист свой. Тогда используем либо MIGX, либо PageBlocks (бесплатный вполне подойдет), где делаем выбор врача из списка и добавляем таблицу с ценами.

В фид это при желании тоже всё можно вывести
    Дима Касаткин
    07 марта 2025, 04:59
    +1
    Я делал ровно такое через тегирование, компонентом tvSuperSelect.

    На другом сайте клиники пытался сделать через taxonomy, но там что-то пошло не так (вроде с кодировкой русской были проблемы, но уже не помню, было несколько лет назад), и в итоге через TV с подстановкой возможных значений через синтаксис
    @SELECT [[!pdoResources? //и тут выбор значений для чекбоксов ]]
    То есть к врачу галочки ставишь, какие специальности, потому что специальностей список конечный, а врачей как будто нет. Услуги и цены создавал ресурсами, через настройку форм убирал лишние поля. Там где надо было схлопнуть дерево в админке, использовал компонент Collections.

    Тут главное не забывать концепцию MODX, что ресурс — это не обязательно страница. Есть побочный эффект при таком подходе: на одинаковых услугах у тебя будет одинаковый alias, но это легко пофиксить пакетом customURLs, где настраиваются маски alias-ов по разным правилам.

    Кастомные цены на одни и те же услуги, чтобы без дублирования самих услуг, наверное удобнее всего через MIGX — услугу подвязываешь через выбор из списка (типа справочника), а цену указываешь руками нужную. Это будет легко вывести в карточке врача. Но если нужно в общем прайсе потом указывать наоборот стоимость услуги разную у разных врачей, то будут сложности с выборкой, то придется либо написать небольшой сниппет, который ходит по врачам и дергает цену на услугу (закэшируй чтобы не тормозило, если много врачей), либо плагинчик, который при сохранении врача пропишет его персональную цену на услугу в MIGX-поле привязанное уже к самой услуге. Плагин получше будет, позволит показывать цену от и до на услугу, что, вероятно, улучшит UX сайта и порадует дизайнера и заказчика))

    Там все операции сводятся к перекладыванию JSON для MIGX и простейшим выборкам ресурсов, так что бояться такой кастомизации не стоит.

    Успехов!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2