Парсинг опций

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

Одно значение - Просто строка, или слово. Обычный текст.
Много значений - Текст разделенный {csvnc} , или же повторяющаяся граница парсинга.

Собственно интерфейс.

На данный момент заведен минимум по работе с опциями, и в дальнейшем будет развивается от ваших потребностей.

  1. Действие - тут два варианта. Добавляем, обновляем, создаем опции или игнорируем опции. По умолчанию опции отключены.
  2. Обязательная опция - этот переключатель отвечает за то что бы сделать опцию обязательной при покупке товара, или пользователь может купить товар не выбирая опцию.
  3. Имя опции - Сюда вы можете указать границу парсинга в которой вы парсите имя опции. Или же вы можете выбрать опцию из уже существующих у вас в магазине. Выбор одной из существующих осуществляется в выпадающем списку под пунктом 7
    Так же нужно понимать что имя опции это обычная граница парсинга.
  4. Значение опции - Значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга.
  5. Цена опции - Цена каждого значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга.
  6. Колво опций - Количество каждого значения опции, разделенные символом {csvnc} или повторяющаяся граница парсинга. (по умолчанию считается 10шт)
  7. Выбор опции - если вы не можете спарсить имя опции с сайта донора, вы можете сами выбрать опция из списка созданных у вас в магазине. И все спарсенные данные будут записаны в эту опцию и эта опция будет добавлена вам в товар.
    Так же нужно понимать что выбранная опция из списка имеет выше приоритет над полем 3 И если вы выбрали из списка модулю все равно что попадет в границу парсинга. И поле 3 можно не указывать.
  8. Здесь вы можете выбрать по стандарту Opencart спарсенная цена опции будет приплюсовать к основной, или минусовый.
  9. Добавить новые поля для второй и последующих опций, в товаре

Логика работы.

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

Каждая опция имеет множество значений.
Каждое значение имеет свою цену
Каждое значение имеет свое количество.

Структурно это выглядит так.

Прасинг опций в интернет магазин

В поле Значение опции должна попадать строка такого типа.
Значение1{csvnc}Значение2{csvnc}Значение3

В поле Цена опции должна попадать строка такого же типа как и у значения, где одна цена отделена {csvnc} от другой.
150р{csvnc}200р{csvnc}250р
Но так же нужно понимать что первая цена будет присвоена первому значениею опции, вторая второму, третья третьему и тд.
То есть порядок значений опций. И порядок цена, и кол-ва должен быть идентичен.

В поле Колво опций должна попадать строка как и у цены, через разделитель {csvnc}
0шт{csvnc}10шт{csvnc}3шт

Внимание!!! Запись через разделитель {csvnc} может быть заменена просто на повторяющуюся границу парсинга. Как показано на первом скриншоте.

Если вы указали верно настройки то на вкладке пред просмотра вы сможете увидеть как модуль запишет опции.
Для демонстрации я заполнил сразу 4 опции, и вот как это будет видно в режиме пред просмотра парсинга в ИМ

Логи

При работе модуль с опциями я уделил отдельное внимание логированию. Модуль отдает максимально полную информацию по работе модуля с логами.

Для создания опции обязательно должны быть такие данные.

  1. Имя опции или же выбрана опция из выпадающего списка.
  2. Значение опции.
    Без этих двух пунктов модуль не будет добавлять опции в товар.
    Остальные данные не обязательны.

Если у вас остались вопросы можете задавать их в теме поддержки модуля, и я с радостью на них отвечу.