OfflineVM теория
08.07.2009 г.

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

Итак начнем с малого, а именно - определимся как хранятся данные о товарах в Виртумарте:

На сайте мы видим, что о товаре хранится

  • Название товара
  • Артикул
  • Краткое описание
  • Полное описание
  • Цена
  • Малое Изображение товара
  • Полное изображение товара

И много чего еще. Как я подсчитал более 30 полей  в таблице товара и много информации хранятся в таблицах связанных с товаром. Т.е. данные о товаре хранятся в базе.

Кроме того изображения товара хранятся не в базе а в качестве файлов.

Загрузка интерфейса администрирования Виртумарт занимает довольно большое время, а если есть место не совсем быстрый интернет, то просто мучительно долгое время.

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

Сказано сделано. У меня между этими двумя словами ушло 2.5 года и достаточно времени как своего, так и других людей, которые работали над этой программой. 

OfflineVM предоставляет интерфейс в котором можно сформировать данные о категориях товарах и самих товаров. На локальном компьютере  в локальной базе данных и файловой системе.

Возникает вопрос, как после формирования данных загрузить их на сайт. Ответ находится в двух непонятных на первый взгляд словах XML-RPC.

RPC  -удаленный вызов процедур. Т.е. для того чтобы что-то на сайт загрузить удаленно нужно использовать эту технологию. Разбираться в ней вам не нужно, просто нужно установить XML-RPC плагин для Joomla CMS.

Т.к. технология XML-RPC накладывается ряд ограничений при передачи данных, то передавать по ней картинки и дампы базы, по крайней мере глупо. Поэтом у нужен FTP-доступ к сайту.

Таким образом у нас процесс синхронизации с сайтом происходит следующим образом.

  1. Програма посылает команду на формирование дампа базы данных сайта. Не полностью, а только всех таблиц, относящихся к товарам.
  2. XML-RPC плагин воспринимает эту команду и формирует дамп базы сайта в файловой системе сервера.
  3. От XML-RPC плагина приходит ответ, что дамп сформирован и можно его закачивать по FTP
  4. Программа закачивает по FTP к себе в каталог и начинает импорт данных в локальную базу (при этом все что было в локальной базе очищается)
  5. После того как импорт данных в локальную базу произведен - загружаются изображения товаров
Вот так в 5 этапов произведена Полная синхронизация с сервером и мы получили все данные которые есть на сайте.