Freeocart

Проект свободной экосистемы Opencart

Небольшой проект в помощь вебмастерам

Обновил свою давнюю поделку для перепозиционирования модулей в макетах и добавил поддержку opencart 2.

(далее…)

FO CSV: Новая функция

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

Работает это следующим образом:

  1. Создаем новую обработку
  2. Создаем нужные переменные
  3. Заполняем эти переменные данными (выставляем соответствия с CSV полями)
  4. Пишем шаблон обработки
  5. Выбираем поле БД куда будут добавлены результаты обработки
  6. Выбираем режим обработки

Шаблон обработки

Система шаблонизации очень простая — в вашем распоряжении два инструмента:

Интерполяция переменных — {{ variable }}

Циклы перебора — [@each (item,iter) <= variable] …. [@endeach]

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

Режим обработки

Заменить значение — заменяет всё что было получено из CSV файла на результат рендеринга.

Добавить до/после — добавляет результат рендеринга либо в конец поля БД, либо в начало.

FO CSV — ВСЁ))

Довёл проект до более-менее стабильного состояния и выложил на гитхабчег.

Модуль распространяется под лицензией GPL v. 3, это означает, что вы свободно можете использовать его и распространять!

Если вы нашли ошибку, или хотите помочь — с удовольствием приму ваши Pull requests и постараюсь ответить на вопросы в Issue.

https://github.com/ikenfin/fo-csv

FO CSV: Export time!

Вчера ночью очень плотно занимался субмодулем экспорта, и, кажется, оно работает!

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

Самый острый вопрос на данный момент — очистка от временных файлов. Пока не уверен как именно и в какой момент буду её производить.

[NOTE] Новости FO CSV IMPORT

Прошла ровно неделя с последней записи, обновлений совсем немного, но они есть.

Во-первых убрал опцию «пропустить первую строку» и добавил возможность указывать количество пропускаемых строк.

Добавил возможность установки условий пропуска строк при отсутствии данных в определённых ячейках:

Смысл опции прост — если поле не заполнено или его нет, строка пропускается. Это может быть весьма полезно, если нужно импортировать товары, содержащие определённые поля.

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

Удалил DB_PREFIX из всех полей, которые видит юзер — совершенно не понимаю — зачем я их туда добавил вообще:

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

Начал работать над субмодулем экспорта

Пока что имеются только наброски UI, функционала за ними пока что никакого.

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

Общая идея такая же как и в импорте — колонки будут полностью управляться пользователем, будут профили экспорта, будут кастомизируемые дамперы атрибутов и будет возможность запаковки и выкачивания изображений вместе с csv.

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

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

[NOTE] FO CSV Import

С момента начала проекта прошёл почти месяц. За это время проект немного подрос, были исправлены глупые ошибки, и реализовано немного нового функционала.

Управление состоянием

Добавил интерфейс для экспорта/импорта профилей импортёра, в будущем полагаю, если модуль зайдёт пиплу, можно будет обмениваться готовыми профилями в формате JSON и не парить себе голову с импортом любого CSVшника.

Импорт атрибутов

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

Сделал возможным создавать свои парсеры атрибутов с помощью OCMOD, каждому парсеру можно задать ряд параметров которые будут запрошены и переданы в парсер

Разделители — это опции определённые в коде парсеров

На данный момент поддерживается два вида опций — текстовое поле и поле сопоставления с CSV.

Последний тип полей добавил для парсера атрибутов по колонкам.

Перевод

Не поленился и перевёл весь интерфейс на русский язык, так что на данный момент поддерживается два языка.

Что дальше?

На очереди осталось потестировать более глубоко еще несколько различных CSV выгрузок и сделать модуль более стабильным. Кроме того, планирую уже начинать ваять интерфейс и бэкенд для экспорта данных в CSV. Как только закончу с этим — модуль отправится в Opensource.

Freeocart start

Ну что, вот и запустился проект!

Будем считать дату 18.04.2018 — точкой отсчета