вторник, 1 ноября 2016 г.

1 ноября

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

Несмотря на корректную работу синхронизатора, его пришлось переделать. Первые версии не учитывали возможности работы с несколькими языками. Благо, первоначальная концепция оказалась довольно удачной, и для доработки не понадобилось изменять общую схему. Единственное, что изменилось - это механизм подключения к локальной и удаленной БД. Ранее подключение выполнялось попеременно, теперь соединение с базами данных выполняется синхронно. Тестирование этого способа веду параллельно с разработкой, но данных пока маловато, чтобы делать какие-то конкретные выводы. Однозначно здесь есть, что оптимизировать.

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

воскресенье, 17 июля 2016 г.

17 июля

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

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


четверг, 7 июля 2016 г.

Модуль синхронизации

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

- сложность реализации;
- двойное хранение данных;

… и, наверное, еще куча всего.

Но есть и явные, определенные достоинства, которые могут быть полезны в #treeShop:

  • возможность восстановления утерянных (поврежденных, испорченны) данных;
  • дополнительная информация из локальной БД дает возможность создания расширенного функционала приложения;
  • увеличивается производительность программы за счет скорости обмена данными;
  • возможность работы offline;
  • можно работать с другими системами управления (PrestaShop или WooCommerce) и соответственно переносить данных из одной в другую.

вторник, 14 июня 2016 г.

#tree.Shop.import v0.0.4

добавлено

- для *.csv файлов:

  • добавлена обработка атрибутов;
  • добавлена обработка дополнительных изображений;

- редактор категорий;
- макеты сохранения настроек с привязкой к подключению;
- макеты разбора обоих типов файлов;
- проверка категорий на наличие в БД и их групповое внесение;
- инфо раздел;
- иконки ).

улучшено

- переработан способ сохранения настроек;
- оптимизированы запросы к БД.

среда, 1 июня 2016 г.

#tree.Shop.import v0.0.3

новое:

- для XML файлов:

  • обработка атрибутов;
  • обработка дополнительных изображений;

- редактор атрибутов.

улучшено:

- ошибка одностороннего разрыва соединения удаленным сервером.

понедельник, 30 мая 2016 г.

Первый опыт использования

Это первый опыт загрузки прайс-листа XML на удаленный сервер, до этого все тесты проводились на локальном.

В качестве площадки для тестирования настроен локальный web server Xampp и установлены две версии магазина ocStore 2.1.2.1 и Bitnami_Opencart 2.2. Bо время тестирования, как по обработке, так и загрузке данных на сервер программа показала достаточно хорошие результаты по производительности: прайс-лист xml в 1000 товарных позиций с 5-6 атрибутами и 2-3 изображениями добавлялся в БД менее, чем за 20 сек.

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

- Возможность удаленного подключения.

Если хостинг не предоставляет такой услуги, ничего не получится. Если предоставляет, для открытия доступа хостинг требует ip адрес, откуда будет выполнено подключение.

- Настройка таймаута.

На тестовой базе значение connect_timeout в разделе Timeout Setting вообще не учитывалось и при разработке не был принят во внимание. Поэтому тайм-аут удаленного сервера, выставленный на 10 сек, стал полной неожиданность ведь по ходу работы паузы неизбежны. Интересно, что при разрыве соединения со стороны сервера, Qt все равно показывает db.isOpen() == true, что довольно странно.

Как и ожидалось, время загрузки на удаленный сервер не было таким же, как на локальный. Результата обработки 1000 позиций пришлось подождать 12-15 минут (без атрибутов почти в половину меньше).

В целом, загрузка прошла успешно, без каких-либо отличий от тестов и с таким же результатом. Загрузку выполнял #tree.Shop_import 0.0.3, демо которой выложу чуть позже.


воскресенье, 22 мая 2016 г.

Доступ к тестовым версиям

Тестовые версии программ и модулей будут открыты для свободно скачивания. Релизные версий будуд выходить для операционных Windows и Linux. Демо, пока только для Linux, но если кто-то желает опоробовать, оставьте заметку в комментариях.

Перед использованием тестовой версии не забудьте сделать back up базы данных.

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

Freelancehunt.com