Deprecated: str_replace(): Passing null to parameter #1 ($search) of type array|string is deprecated in /var/www/jsd/data/www/jsd.ru/plugins/system/admintools/src/Feature/CustomAdminFolder.php on line 83
Обновление прайс-листа
Skip to main content

Обновление прайс-листа

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

Поэтому, у меня как у Мюнхгаузена было два варианта: превратить нарядную картинку в набор структурированных данных.

После долгой и кропотливой работы всю полезную информацию из прайс-листа удалось привести с помощью Excel к формату базы данных, таким образом я получил основной файл, в котором производятся все правки и дополнения. Эти действия производятся на локальном компьютере.

Затем обновленный экселевский файл экспортируется (сохраняется) в формате CSV и заливается на сайт. На основе этого сайта создаётся источник динамических данных для YooTheme Builder с помощью Essential Addons.

Дальше дело техники: настроить элемент Table 9 от Flart Studio и разметить поля для работы с динамическими данными.

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

Инструкция, приведенная ниже, описывает алгоритм обновления локальной копии прайс-листа и публикации обновленных данных на сайте.

1. Лист 1 – price

Это основной лист книги (файла) Excel, где в формате базы данных хранятся данные прайс-листа.

Для листа применена настраиваемая сортировка по нескольким колонкам:

  1. service - А-Я
  2. title - А-Я
  3. description - А-Я

Значения колонок:

  • service - Общее наименование услуги. Служебное поле, выводится только при отображении полного прайс-листа по всем услугам. Объединяет в одну группу различные варианты (строки) услуги.
  • specializations – Связанная с услугой специализация. Служебное поле, используется для отображения нужного фрагмента прайс-листа на странице конкретной специализации. Значение поля должно строго соответствовать заголовку (названию) специализации.
  • title – Заголовок варианта услуги, конкретизация. Основная и обязательная текстовая строка прайсл-листа.
  • description – Описание варианта услуги, дополнительная информация. Заполняется по ситуации.
  • one-time-payment – Цена услуги при условии разовой оплаты.
  • subscription – Цена услуги при условии покупки абонемента.

В случае изменения существующей информации достаточно сохранить изменения в файле.

В случае добавления или удаления строк, после внесения изменений, нужно вызвать окно настраиваемой сортировки и нажать кнопку «Ок», после этого сохранить изменения в файле.

2. Лист 2 – price-service

Данный лист книги является служебным, заполнять его вручную не нужно. Посредством запроса Power Query на листе выводятся уникальные наименования услуг из колонки «service» листа «price».

Список уникальных наименований услуг используется для вывода полного прайс-листа. Список определяет сколько нужно отобразить отдельных таблиц, каждая из которых будет отображать информацию по уникальной услуге.

В случае добавления или удаления строк на листе «price» требуется обновить содержимое листа «price-service»: Данные -> Обновить.

Корректность обновления данных (например, в случае изменения места хранения файла на локальном компьютере) проще всего проверить добавив любое произвольное значение в колонку «service» на листе «price», а затем перейти на лист «price-service» и обновить данные. Если новое произвольное значение появилось в списке уникальных услуг, значит всё работает корректно, а если нет, то стоит обратиться к ответственному специалисту.

В случае, когда количество строк на листе «price» не менялось и не производились изменения в колонке «service», лист «price-service» не нужно трогать вообще.

3. Экспорт листов в CSV файлы

Формат файла с расширением .xlsx перенасыщен служебной информацией о структуре, формате хранимых данных и т.п., поэтому потребуется экспортировать содержимое каждого листа файла в отдельный CSV файл.

Поскольку для форматирования хранимых в CSV файле данных используется только некоторые из знаков пунктуации (запятые, точки с запятой, кавычки), то извлечь нужные данные из такого файла легко с помощью любого стороннего приложения (в нашем случае – инструменты сайта, работающие с внешними источниками данных), а понять и прочитать файл можно даже в блокноте.

Алгоритм экспорта в CSV:

  1. Открыть нужный файл (файл прайс-листа) с помощью приложения Excel
  2. Перейти на лист, который нужно сохранить как CSV файл
  3. Меню: Файл -> Экспорт -> Изменить тип файла
  4. Из доступных вариантов выбрать CSV
  5. Нажать кнопку «Сохранить как»
  6. Присвоить имя файлу и сохранить в нужном месте
  7. Диалоговое окно: «В файле выбранного типа может быть сохранен только текущий лист» - ответить утвердительно (нажать кнопку «ОК»)
  8. Закрыть файл.

Сохранить поочередно каждый лист файла как отдельный CSV файл:

  • price.csv
  • price-service.csv

Если файл price-service.csv уже существует и на листе price-service файла price.xlsx не производились никакие изменения, то экспорт и дальнейшие действия с этим файлом можно проигнорировать.

4. Изменение кодировки файла

В подавляющем большинстве случаев кодировка файлов на локальном компьютере и на сервере будут различные. Например, на компе с ОС Windows это будет Windows-1251, а на сервере – UTF-8. Если не изменять кодировку перед загрузкой на сервер, то при чтении файла будут кразязябли в виде нечитаемых или бессмысленных символов, особенно вместо кириллицы.

Поэтому, перед загрузкой на сервер, кодировку CSV файлов нужно поменять на ту, которая используется на сервере по умолчанию. В нашем случае – UTF-8.

Для смены кодировки файла лучше всего подойдёт бесплатное приложение Notepad++ с огромным количеством полезных инструментов и возможностей.

Алгоритм смены кодировки с помощью приложения Notepad++:

  1. Открыть CSV файл в приложении Notepad++
  2. Меню: Кодировки -> Преобразовать в UTF-8
  3. Сохранить изменения (при этом файл не должен быть открыт ни в каком другом приложении, например в Excel)
  4. Закрыть файл

Смену кодировки необходимо произвести для всех CSV файлов, готовящихся к загрузке на сервер.

Дополнительная информация:

5. Загрузить файлы на сервер

Предполагается, что пользователь знает папку назначения для загрузки CSV файлов.

Для загрузки CSV файлов на сервер лучше всего подойдут два варианта:

  • Загрузка через веб-интерфейс с помощью файлового менеджера панели управления сервером.
  • Загрузка с помощью FTP клиента, установленного на локальном компьютере.

Методы и способы загрузки файлов на сервер не рассматриваются в рамках данной инструкции.

Перед загрузкой новых версий файлов рекомендуется переименовать текущую версию файла для её резервного сохранения. Если после проверки результатов станет очевидно, что всё работает корректно, то предыдущую версию файла можно с сервера удалить.

6. Проверить результат

Убедиться, что внесенные изменения корректно отображаются на сайте: в общем прайс-листе и во фрагментах прайс-листа на страницах специализаций.

7. Изменения не отображаются – кэш элемента

Проблема: все действия произведены корректно, но изменения на сайте не отображаются или отображаются только на некоторых страницах.

Причина: возможная причина – большой кэш элемента, изменения не отображаются сразу.

Лечение: удалить, свести к нулю или понизить до приемлемых значений время кэширования (в секундах) для каждого элемента, где выявлена проблема. Настройки кэша спрятаны на вкладке «ещё» элемента таблицы.

8. Изменения не отображаются – кэш CSV файла

Проблема: все действия произведены корректно, но изменения на сайте не.

Причина: возможная причина – большой кэш в настройках файла-источника компонента Yoo Essentials, изменения не отображаются сразу.

Лечение: свести к нулю или понизить до приемлемых значений время кэширования (в секундах) CSV файла. Путь к настройкам внутри открытого компонента YooTheme: Essentials -> Sources -> Выбрать источник (Price – CSV).

  • Создано
    30 июня 2024
  • Последняя правка
    02 июля 2024