Импорт данных из iCalendar на Drupal-сайт. Кейс — блог Wpressdesk
050 640 98 44
support@drudesk.com

Кейс: импорт данных из iCalendar на сайт

Зачастую в блогах мы даем советы, чтобы показать, какие аспекты ваших веб-сайтов стоит оптимизировать, каким образом и зачем. Мы рассказывали о важности скорости загрузки страниц, производительности и SEO, о том, как сделать веб-дизайн более современным и так далее.

Это все обобщенные советы, основанные на нашем опыте. На этот раз мы решили, что было бы неплохо написать детально об одном конкретном случае из жизни нашей команды. Это даст вам более глубокое представление о повседневной работе специалистов Drudesk. Надеемся, что будет полезно показать на одном конкретном примере, как мы практически помогаем клиентам.

Кратко о сайте клиента

Наш клиент — владелец Drupal-сайта по недвижимости, с помощью которого сдает в аренду апартаменты. На этом веб-сайте пользователи могут видеть изображения многих домов, выбрать понравившейся и забронировать его на день или больше.

Требования к заданию

Клиент хотел в более удобный способ управлять бронированием, а именно, используя iCalendar. Была поставлена задача наладить процесс импортирования данных с его учетной записи iCal в расписание на веб-сайте для синхронизации этих данных. Таким образом пользователи сайта смогут видеть актуальную информацию по каждому номеру о свободных и уже заказанных неделях. Кроме того, мы должны наладить еженедельный автоимпорт, оставив возможность ручного импорта в любое время при необходимости.

Минимальное время, на который пользователи могут арендовать дом — один день. Однако, целые недели отображаются как доступные или недоступные на веб-сайте. Таким образом, данные iCal должны превышать неделю (7-10 дней), чтобы отметить эту неделю как полностью забронированную. Если зарезервировано меньшинство дней (только 1-3 дня из 7), система не позволит забронировать следующую неделю, пока не будет зарезервирована большинство дней на текущей.

Трудности, с которыми мы столкнулись

Нужно было выяснить, как сопоставить данные. Все названия домов почти совпадали с их URL-адресами в iCal. Поэтому из данных iCalendar нам потребовались достать ID домов, а также даты начала и окончания бронирования.

Не было готового Drupal-модуля или иного решение в свободном доступе, которое мы могли бы скачать и установить. Поэтому нам нужно было написать кастомный код для удовлетворения потребностей клиента.

Предложенное нами решение

Чтобы сопоставить данные, мы предложили добавить к нодам новое поле «iCal ID», которое будет содержать ID домов из iCalendar.

После этого должно начаться обновление с использованием Cron, проверяя все данные и отправляя запросы. Потом запуститься парсинг с помощью библиотеки PHP ICS Parser, чтобы внести изменения в базу данных.

Объем работ

1. Анализ задачи и поиск необходимых инструментов.

2. Выполнение задачи.

  • Написать батч (кастомный код), который будет получать недельные обновления в соответствии с вытянутыми значениями ID домов и IDs из iCalendar и будет обновлять статусы недель.
  • Добавить новое поле id_ical.
  • Создать задачу для Cron и прикрепить кастомный батч.
  • Подключить библиотеку для парсинга данных из iCalendar.

3. Тестирование.

4. Перенос на пробную версию сайта и на живой сайт.

Конечный результат

В результате мы получили функциональность, которая автоматически изменяет статус каждой недели для каждого дома на сайте на основе информации из iCal. Cron запускает миграцию с iCalendar один раз в неделю. Также, есть возможность запустить миграцию со страницы администратора. Для этого наш клиент вводит свой ключ API iCal на странице админа и выполняет миграцию данных вручную, если это понадобиться.

В итоге наш клиент остался доволен результатом, которого мы достигли. Теперь, когда все обновления и синхронизация автоматизированы, он может сосредоточиться на ведении своего бизнеса, не отвлекаясь на технические детали.

Наша команда поддержки готова помочь каждому с оптимизацией Drupal-сайта, что положительно повлияет на успех вашего бизнеса. Напишите нам и получите профессиональную помощь экспертов по Друпалу.

Похожие материалы