Документация по модулю anyCSV/XLS для OpenCart 2, OpenCart 3

Дополнительные услуги интеграции файлов, API, ссылок с товарами поставщиков

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

Видео

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

Pdf-инструкции

Руководство по инсталляции Скачать
Типовые настройки: идентификация товаров, импорт категорий, цен, остатков, опций, атрибутов, картинок по ссылкам. На примере файлов CSV и XLSСкачать
Настройки при импорте YML-файлаСкачать
Настройка автоматизации через smartExchange модуляСкачать
Создание абстрактных (функциональных) колонок при импорте, замена данных при импорте, создание колонок из данных в соседних колонках строкиСкачать

Оглавление

     1. Общая информация
            1.1. Базовые принципы обмена данными
                 1.1.1. Идентификация данных при обмене одних и тех же сущностей (продуктов, категорий, и пр.)
                 1.1.2. Источники данных: файлы, ссылки на файлы на других сайтах, авторизация, файлы в архиве
                 1.1.3. Кодировка данных
            1.2. Формат CSV/TSV/DSV - базовые знания
                 1.2.1. Разделитель в форматах CSV/DSV/TSV
                 1.2.2. Ограничитель текстовых данных в форматах CSV/DSV/TSV
                 1.2.3. Символ экранирования
                 1.2.4. Как узнать, какой разделитель, какая кодировка и какой ограничитель используется в том или ином файле CSV/DSV/TSV
                 1.2.5. Проверка валидности файла в формате CSV/DSV/TSV
                 1.2.6. Требования к файлу CSV/DSV при использовании модуля
            1.3. Формат XLS, XLSX, XML (YML) - базовые знания и валидация данных в этих форматах
            1.4. Вопросы производительности, достаточности ОЗУ, времени работы скрипта и дополнительные параметры хостинга, влияющие на производительность и её ограничение
                 1.4.1. Расчет ОЗУ (RAM) для работы с данными при импорте
                 1.4.2. Расчет времени выполнения скрипта
                 1.4.3. Работа с большими файлами
                 1.4.4. Максимальные затраты времени нужны при работе с изображениями
     2. Установка и обновления
            2.1. Установка
            2.2. Установка новой версии
            2.3. Регистрация продукта
     3. Импорт данных CSV, DSV, XLS, XLSX на OpenCart
            3.1. Шаг 1. Настройки входящих данных
                 3.1.1. Подача файла или ссылки на файл CSV, DSV, XLS, XLSX в архиве zip или безархивации, выставление предварительных настроек
                 3.1.2. Дополнительные настройки при импорте файлов в формате XLS, XLSX
                 3.1.3. Завершение настроек, предварительная проверка файла и загрузка представления для настроек импорта данных
            3.2. Шаг 2. Настройки, импортируемых данных
                 3.2.1. Валидация файла перед началом создания настроек
                 3.2.10. Дополнительные настройки товаров
                 3.2.11. Сохранение профиля настроек, и режимы обмена данными
                 3.2.2. Общие принципы представления и создания настроек по колонкам в модуле
                 3.2.3. Предварительные действия с товаром(ами) перед импортом (обнуление остатков у определенных товаров, выключение и пр.)
                 3.2.4. Сопоставление (маппинг) категорий файла и сайта перед импортом
                 3.2.5. Установка идентификатора товарам
                        3.2.5.1. Составной идентификатор
                 3.2.6. Настройка колонок файла при прямом импорте (прямой импорт данных из колонок в базу, без обработки, и переработки данных в ходе импорта)
                 3.2.7. Настройка колонок файла при функциональном импорте (переработка данных в ходе импорта)
                        3.2.7.1. Различные способы импорта изображений
                             3.2.7.1.1. Импорт изображений со скачиванием с удаленных сайтов, изображения размещены в ячейке через разделитель
                             3.2.7.1.2. Импорт изображений, когда файлы уже есть на сайте, и нужно передать только пути с названием картинки, относительно папки image
                             3.2.7.1.3. Дополнительные настройки
                        3.2.7.2. Различные способы импорта категорий
                             3.2.7.2.1. Импорт категорий вложенностью через любой разделитель
                             3.2.7.2.2. Импорт категорий, если уровни категорий идут по разным колонкам
                             3.2.7.2.3. Другие возможности
                        3.2.7.3. Различные способы импорта атрибутов и значений атрибутов товара
                        3.2.7.4. Различные способы импорта опций товара
                             3.2.7.4.1. Дополнительные настройки при импорте опций товара
                 3.2.8. Работа с ценой при импорте
                 3.2.9. Работа с остатками при импорте
            3.3. Шаг 3. Импорт данных
     4. Экспорт данных из ОпенКарт в CSV, DSV, XLS, XLSX
            4.1. Шаг 1. Настройка файла экспорта (конструктор выгрузки) CSV, DSV
            4.2. Шаг 2. Конструктор выгрузки - создание колонок и настройка выходных данных
     5. Автоматизация обмена при импорте и экспорте
            5.1. Создание ссылки для автоматизации
            5.2. Запуск ссылки в планировщике CRON
            5.3. Общие рекомендации
     6. Ошибки
            6.1. Ошибки сервера (500-ые) и php (Fatal, вызванные со стороны сервера)
            6.2. Ошибки при импорте данных из источников в OpenCart
                 6.2.1. Ошибки при загрузке файла или подаче ссылки
                 6.2.2. Ошибки при загрузке изображений
            6.3. Данные дублируются
            6.4. Ошибки при автоматическом импорте или экспорте
     7. Программы для работы с CSV/DSV/XLS, если нужно скорректировать данные в файлах импорта

1. Общая информация

1.1. Базовые принципы обмена данными

Обмен данными – это процесс, при котором какие-то данные из входящего набора данных (например, из текстового документа) физически переносятся в какой-либо другой формат хранения данных, например, в базу данных

Иными словами, перенос данных – это процесс, после которого данные, уложенные в формат 1, переходят в хранение в виде формата 2. Например, данные из табличного формата, текстового документа, переходят в данные, хранимые в формате базы данных, или в формат XML и т.п.

Представление одних и тех же данных в Эксель или XMLТе же данные, уже находящиеся в БД ОпенКарт и выведенные для редактирования в панели администрирования


1.1.1. Идентификация данных при обмене одних и тех же сущностей (продуктов, категорий, и пр.)

Сущность данных – это однородные наборы данных, связанные по какому-либо семантическому признаку(ам). Например, товарные данные, данные о категориях вне зависимости от товаров, атрибуты или заказы и т.п.

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

Наиболее точным идентификатором тех или иных данных является автоинкрементный идентификатор той базы, куда назначаются данные. Например, при импорте товаров, наиболее точным идентификатором будет значение product_id. Однако ввиду того, что автоинкрементные идентификаторы сложно иметь сразу во входящих данных, в качестве идентификатора используют какой-то независимый от базы данных код, составной или чистый, произвольный артикул, модель или унифицированные, стандартизированные идентификаторы складских позиций такие как: EAN, JAN, UPC, GTIN и другие

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

1. Колонка файла, в которой содержится идентификатор2. Настройка идентификации на колонку файла, в которой содержится нужный идентификатор (подробнее о настройке в соответствующем разделе)


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

Примечание: пример файла, используемый в иллюстрации (формат CSV, разделитель: точка с запятой, ограничитель: двойные кавычки, кодировка: windows 1251)

1.1.2. Источники данных: файлы, ссылки на файлы на других сайтах, авторизация, файлы в архиве

В модуль импорта могут подаваться (в зависимости от версии) практически все распространённые источники с данными, в т.ч. архивированные в zip, или требующие стандартной авторизации по стандарту: RFC 7617

Подача того или иного источника рассмотрена в соответствующем разделе. Перед подачей файла или ссылки, ведущей на файл

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

Пример ссылки, которая ведет на файл для скачивания

Если файл расположен на сайте, и при вызове ссылки в браузере открывается не файл, а сайт (например, какой-то сайт Google Doc и т.п.), со ссылкой на скачивание, то такой сайт не может применяться в качестве источника. В этом случае, необходимо скачать файл, и подать файл, как файл.

Для упрощения работы с файлами, Вы можете копировать файл на собственный сайт, и подавать в модуль ссылку на файл на собственном сайте. Например, используя FTP, скопировать файл в папку image Вашего сайта, и передать в модуль ссылку типа: http://мой_сайт/image/file_csv.csv

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

1.1.3. Кодировка данных

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

Установка кодировки файла при импорте, или для экспорта в файл, если входящая или исходящая кодировка должна быть не в UTF-8 (настройка находится здесь при импорте или здесь при экспорте)


Узнать кодировку файла можно в программе NOTEPAD++, в ней же сделать перекодирование файла в UTF-8. Более качественную работу с CSV обеспечивает программа OpenOffice Calc, которая уже при открывании файла позволяет выбрать кодировку и таким образом, про тому, что будет показано в окне предпросмотра можно выяснить, как кодировка у файла. В этой же программе можно перекодировать файл, сохранив его с нужными разделителями, и в нужно кодировке – UTF-8

Просмотр кодировки в NOTEPAD++Просмотр кодировки в OpenOffice Calc


Убедиться, что данные перекодированы верно можно по отсутствию «крякозябров» в области вывода данных, как это показано на следующих примерах

Если данные нечитабельные, то кодировка неверная Если данные читабельные, то кодировка верная


Важно! В связи с тем, что в средствах php ограниченные возможности по конвертации, и во избежание потери данных, а также для снижения нагрузки на сервер, которая понадобится на дополнительное действие – перекодировку, рекомендуется подавать данные сразу в кодировке UTF-8

1.2. Формат CSV/TSV/DSV - базовые знания

Формат CSV/DSV/TSV представляет собой – простой текстовый документ, посмотреть который можно в программах NOTEPAD++ или OpenOffice Calc. 

Формат позволяет записывать данные в табличный вид, в котором в роли вертикальных ограничителей ячеек таблицы выступают т.н. разделители, а в роли новых строк таблицы – символ новой строки: \r\n

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

Листинг файла DSV с разделителем: | и ограничителем текстового значения в виде двойных кавычек: " 

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


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

Аббревиатура CSV – означает, что разделителем колонок в файле будет выступать запятая (от английского слова comma). Однако нужно всегда проверять, какой именно разделитель используются. Часто смысл аббревиатуры игнорируется, и формат CSV, на самом деле, представляет собой файл в формате DSV

DSV – это аббревиатура, означающая, что перед Вами текстовый документ, с каким-то разделитель колонок (от английского словам delimiter). Каким именно можно узнать из описания к формату, или после просмотра файла в текстовом редакторе, например, NOTEPADE++. 

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

Подробнее о формате

1.2.1. Разделитель в форматах CSV/DSV/TSV

Разделителем называют какой-нибудь символ, который позволяет программе, интерпретирующей данные,  узнать, где заканчивается одна ячейка табличной записи одной и той же строки и начинается другая. В примере, ниже приведен листинг текстового документа DSV, с разделителем – вертикальная черта: |

Листинг данных в формате DSV с разделителем вертикальная черта: |

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

Листинг данных в формате DSV с разделителем вертикальная черта: ;

Если какие-либо данные отсутствуют в ячейке, то разделители идут друг за другом без символов

Листинг данных в формате DSV с разделителем точка с запятой: ; и пустыми ячейками

Таким образом, два разделителя, которые идут друг за другом образуют пустую ячейку таблицы, если вывести файл в программе Эксель или OpenOffice Calc

Строки текстовых документов DSV разделяются символом новой строки. Такой символ образуется автоматически, если нажать на клавишу enter в программе notepad++. Символ новой строки относится к символам, не имеющим графического вывода и поэтому он не виден в текстовых документах

Включение видимости символов, не имеющих графического вывода в программе NODEPADE_++

В программе NOTEPAD++ можно увидеть такие символы, если выбрать соответствующий режим видимости

В примерах выше такой символ показан записью: \r\n, а в примере ниже, в программе NOTEPAD++ такой символ будет показан черными квадратами с вписанными в них буквами: CR LF

Если в файле DSV, есть символы новой строки, которые при этом должны находиться в одной ячейке, то такую ячейку оборачиваются слева и справа в символ: ограничитель текстовой ячейки

Листинг данных в формате DSV с разделителем точка с запятой, в программе NOTEPAD++

Символы новой строки показаны: CR LF


1.2.2. Ограничитель текстовых данных в форматах CSV/DSV/TSV

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

Для чего нужен ограничитель ячеек, если ячейка и так ограничена разделителем (см. главу Разделитель)? Действительно, ограничитель нужен не всегда. Но нужен обязательно, если в текстовых данных встречается символ разделителя, или символ ограничителя, или есть новые строки, но такие строки не нужно интерпретировать программе, как новые строки таблицы, такие разделители не нужно использовать для деления на колонки. 

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


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

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

Примечание: пример файла, используемый в иллюстрации (формат CSV, разделитель: точка с запятой, ограничитель: двойные кавычки, кодировка: windows 1251)

1.2.3. Символ экранирования

Символ экранирование – это символ, который позволяет экранировать разделители, если в файле CSV/DSV/TSV не указан символ ограничителя. Данный символ, в виду более узкого применения практически не используется, но всё еще является обязательным при парсинге формата. Если по в файле импорта символ экранирования не известен, то укажите символ обратного слеша: \

1.2.4. Как узнать, какой разделитель, какая кодировка и какой ограничитель используется в том или ином файле CSV/DSV/TSV

Чтобы узнать, какой разделитель используется в том или ином файле, откройте его в программе NOTEPAD++, и визуально определите, какой символ используется в качестве разделения колонок. На указанном примере – это символ точка с запятой


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


Чтобы узнать кодировку данных в файле, откройте файл в программе NOTEPAD++ и найдите, какая именно кодировка будет отмечена галкой, как на примере


1.2.5. Проверка валидности файла в формате CSV/DSV/TSV

Валидность формата – это соответствие формата спецификации, а точнее – соответствие упаковки данных внутри формата тем ожиданиям, которые есть от указанных данных. 

Проверку валидности форматов CSV/DSV/TSV лучше всего осуществлять в программе OpenOffice Calc. Достаточно открыть файл, указав разделитель, ограничитель и кодировку, и увидеть результат парсинга этой программы - проверить таблицу, которая появится после открытия файла

При открытии файла CSV/DSV/TSV в OpenOffice Calc укажите 3 параметра: кодировку файла, разделитель, и ограничитель текста (на примере называется разделителем текста)
После открытия, убедитесь, что данные файла выведены в табличном виде, и не перемешаны

В модуле также можно проверить валидность данных. Если, в указанной в примере области данные выводятся без «кракозябров» - кодировка установлена верно. Также, если таблица соответствуют ожиданиям от упаковки, то есть все данные находятся в своих ячейках, в нужных колонках, то файл валидный. Если что-то не соответствует, то нужно открыть файл в NOTEPAD++ или OpenOffice Calc и исправить файл так, чтобы файл стал валидным

После открытия файла в модуле, на Шаге 2, появится кнопка "Результат проверки файла". Кнопка раскрывает область, в которой в табличной форме приведена первая и последняя строка файла с данными. Если таблица не "сломана", в файле нет критических ошибок в упаковке данных. Если данные читабельные, то кодировка установлена верно

1.2.6. Требования к файлу CSV/DSV при использовании модуля

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

Название колонок файла и последовательность может быть любой. Единственное требование состоит в том, что колонки должны иметь разные названия. То есть двух колонок с названием Цена, быть не должно, какая-то из колонок в этом случае должна быть названа Цена 2

В названиях колонок могут присутствовать любые символы, они могут быть на любом языке

Наличие названий колонок в файле обязательно

1.3. Формат XLS, XLSX, XML (YML) - базовые знания и валидация данных в этих форматах

Формат XLS - это формат записи файла, разработанный компанией Майкрософт. Проверка данного формата, осуществляется в программе Эксель или OpenOffice Calc. Если в этой программе файл не открывается, или открывается с ошибками, то парсинг такого файла, скорее всего, приведет к ошибкам. При использовании файла эксель, важно привести его к виду, при котором в шапке документа, а также по его сторонам будут отсутствовать лишние строки и колонки. 

Форматы XLSX, YML - это разновидности базового формата XML. Проверять валидность этих файлов можно, отрыв их в редакторах XML, или в программе Эксель. Файл в формате YML можно также проверить, открыв его в браузере. 

Формат XML, в т.ч. XLSX, YML вне зависимости от конкретного вида верстки имеет ряд требованиям к данным внутри тегов и атрибутов тегов. Базовые требования, приведены в таблице ниже

СимволДолжен присутствовать в данных в следующем виде
&&
<
&lt;
>
&gt;
'
&apos;
"
&quot;

Формат XML также, как и CSV, DSV имеет кодировку. Кодировка файла XML указывается в первой строке файла, как это показано ниже. Работать с кодировкой нужно также, как и при работе с кодировками в файлах CSV/DSV

Пример первой строки XML файла, в которой сообщается о кодировке данных этого файла
<?xml version="1.0" encoding="utf-8"?>

1.4. Вопросы производительности, достаточности ОЗУ, времени работы скрипта и дополнительные параметры хостинга, влияющие на производительность и её ограничение

1.4.1. Расчет ОЗУ (RAM) для работы с данными при импорте

Оперативная память, устанавливается на хостинге в каждом тарифном плане до определенного предела. Будьте внимательны, даже, если Вы покупаете хостинг с высокой ОЗУ, совсем не обязательно, что данный размер памяти уже включен. Очень часто память стоит по дефолту, и установка памяти, доступной для сайта по тарифу, должна производиться самостоятельно. Установка памяти, как правило, происходит добавлением в файл .htaccess директивы:

php_value memory_limit 1024М 

Будьте также внимательны, если на хостинге используется какой-либо обратный прокси-сервер (например, NGINX) и другие параметры, то они могут сужать память на определенных аппаратных участках. Например, общая память хотя и может составлять 256М, на каком-либо участке её размер может быть установлен в районе 64М. Устранять такие несоответствия нужно, в ходе работы на конкретном хостинге, путем обращения в службу технической поддержки. Как правило, такие ошибки отмечаются в работе кодом 500 или 502, или вообще никак не отмечаться в логе сервера. 

При расчете памяти нужно иметь ввиду следующее. Если физический размер файла 1Мб, то в ОЗУ такой файл будет присутствовать объектом, или массивом PHP. Размер файла может вырасти от 2 до 20 и даже 50 раз в зависимости от тех или иных настроек хостинга и характера данных в файле (кириллические символы занимают значительно больше ОЗУ, чем латиница). Таким образом, при работе с файлом размером 100Мб, Вам может понадобится ОЗУ, как минимум, 256Мб, но на практике, с учетом того, как настраивается большинство хостингов, и какого рода данные находятся в файлах, не менее 1024Мб, или даже 4-10Гб. 

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

1.4.2. Расчет времени выполнения скрипта

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

php_value max_execution_time 640

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

Если на хостинге используется какой-либо обратный прокси-сервер (например, NGINX) и другие некоторые параметры, то они могут сужать время работы скрипта на определенных аппаратных участках. Например, время хотя и может быть установлено в пределах 600 сек, на которых участках работы сайта остановка будет происходить через 30 сек, и даже менее. Приведение в соответствие времени в этих параметрах осуществляется через обращения к специалистам службы поддержки хостинга  

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


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

При этом, если ОЗУ много, то минимальная норма может быть 1000 строк, а максимальная 5000 строк, и вся работа будет происходить всего за 30 сек. Но если ОЗУ немного, то минимальная норма импорта должна быть установлена в районе 50, максимальная в районе 200, и время не менее 30 сек. 

1.4.3. Работа с большими файлами

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

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

1.4.4. Максимальные затраты времени нужны при работе с изображениями

Наиболее затратными по времени является работ с изображениями тогда, когда они закачиваются со сторонних серверов, обрезаются модулем при импорте, экспорте. При этом нужно учитывать, что время ответа сервера, с которого забирается изображение, может варьировать от десятых долей секунды на ответ, до десятков и более секунд на один ответ (на одно изображение). Влиять на это время невозможно. И длительные ответы могут быть связаны с частыми обращениями на эти сервера в короткий период времени, как происходит, когда за одну секунду может прийти запрос на 100 картинок. 

При работе с изображениями, время работы скрипта может составлять от 10 изображений в одну секунду до 0,10 изображений в секунду (1 изображение за 10 секунд) и более.  


2. Установка и обновления

2.1. Установка

Приобретая то или иной решение, у Вас на руках должен быть архив с файлом. Внутри архива, в корне папки присутствует файл readme.txt или install_gid.txt. Ознакомьтесь с инструкцией, которая находится в данном файле. Как правило, для установки нужно скопировать содержимое папки upload, расположенной в архиве, нужной Вам версии ОпенКарта в корень сайта. После чего, найти модуль в модулях, и активировать его. Для версий 5 и выше нужная регистрация продукта, как это описано в той же инструкции

2.2. Установка новой версии

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

Если какое-либо решение потребует своих специфических действий, то такие действия будут описаны в разделе "Обновление на новую версию" в файле readme.txt или install_gid.txt. Если такой раздел отсутствуют, то обновление происходит путем перезаписывания файлов предыдущей версии на файлы той, которая устанавливается. 

2.3. Регистрация продукта

Регистрация модуля происходит согласно условиям приобретения. Алгоритм регистрации описан в файле архива модуля readme.txt или install_gid.txt в разделе Регистрация продукта. Если у Вас возникли сложности с регистрацией, пожалуйста, свяжитесь с нами для их устранения

Вниманию пользователей, у которых установлена версия, которая не приобреталась или ранее приобреталась, но покупатель неизвестен. Для данного случая, существует процедура льготного приобретения новой версии. Скидка на модуль по этой процедуре составляет 50%


3. Импорт данных CSV, DSV, XLS, XLSX на OpenCart

3.1. Шаг 1. Настройки входящих данных

3.1.1. Подача файла или ссылки на файл CSV, DSV, XLS, XLSX в архиве zip или безархивации, выставление предварительных настроек

ДействиеСкриншетПримечание

1. Зайдите в модуль импорта anyCSV/XLS


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

3. Установите Разделитель, Ограничитель, Символ экранирования, Кодировку в соответствии с файлом (если Вы планируете загрузить файл в формате XLS, XLSX, то менять значения в этих настройках необязательно)

Как узнать Разделитель, Ограничитель, Кодировку файла, показано в соответствующих разделах этой инструкции


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

4. Загрузите файл или скопируйте ссылку на нужный файл в поле "URL ссылка на файл". При использовании ссылки нужно обязательно указать протокол: http или https

Файл может быть заархивирован в архив zip

Если файл не загружается, пожалуйста, проделайте действия, описанные в разделе "Ошибки при загрузке файла или подаче ссылки"

Если ссылка не загружается, проверьте ссылку, как это указано в разделе "Источники данных: файлы, ссылки на файлы на других сайтах, авторизация, файлы в архиве", или в разделе "Ошибки при загрузке файла или подаче ссылки"

Если Вы импортируете файл в формате XLS, XLSX, также смотрите следующий раздел



5. Выставите дополнительные настройки перед начало проверки файла:

  • Режим синхронизации данных - если Вы планируете делать импорт не только в стандартные поля ОпенКарт, но и поля, которые были добавлены в базу данных, или в поля, которые скрыты от просмотра, то нужно выбрать "Выводить все поля базы". В случае, если импорт будет в стандартные поля, то оставьте эту настройку без изменений: Выводить только основные поля базы
  • Язык контента - укажите для какого языка контента сайта будет производиться импорт данных. Профиль импорта можно привязать только к одному языку. Если Вам нужен аналогичный профиль для другого языка, то создайте новый на его основе, как это показано в разделе "Сохранение профиля настроек"
  • Конвертация валюты (если будут передаваться цены) - укажите нужна ли конвертация валюты, если какие-либо цены на входе будут поступать не в итоговой валюте. В этом случае, при работе с любой ценой (в т.ч. наценках в опциях), если таковая будет, цена будет автоматически конвертироваться
  • Для магазинов - укажите к каким магазинам будут привязываться данные



3.1.2. Дополнительные настройки при импорте файлов в формате XLS, XLSX

При импорте данных в формате XLS, XLSX (файлы эксель), дополнительно проделайте следующие действия

ДействиеСкриншетПримечание
1. Выберите "Включено"

2. Укажите количество колонок файла, и строк, которые следует обрабатывать
У некоторых версия модуля этот функционал отсутствует

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

ДействиеСкриншет
Нажмите на "Проверить файл и загрузить данные для сопоставления"

3.2. Шаг 2. Настройки, импортируемых данных

3.2.1. Валидация файла перед началом создания настроек

Если проверка файла, настроенного на Шаге 1 прошла, и принципиально данные получены. То перед Вам появится представление шага 2.

Наверху будет доступна функция: "Результат проверки файла"

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

Удостоверьтесь, что количество строк соответствует количеству строк входящих данных

Удостоверьтесь, что найдено правильное количество колонок


Проверьте таблицу: колонки таблицы должны совпадать с колонками, импортируемого файла, а данные ниже должны соответствовать данным в последней строке файла

Если какие-то данные не соответствуют данным файла, убедитесь, что все предыдущие шаги, а в особенности выставление кодировки, разделителей и ограничителей, проделаны верно

Если у Вас возникают ошибки, к данному шагу не удается выйти, подробнее об ошибках смотрите в разделе Ошибки


3.2.2. Общие принципы представления и создания настроек по колонкам в модуле

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

Справа на рисунке файл расположен в программе Эксель

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


Справа от каждой колонки находится выпадающий список "Что импортируется"

Выберите сущность данных, для которой предназначена та или иная колонка файла и данные в ней. Если в колонке содержатся какие-либо данные для товаров, то выберите "Импорт товаров"

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

Укажите настройки на каждую колонку файла

После появление настроек импорта сущности данных, сделайте настройку на каждую колонку

Подробнее о настройках, будет показано в следующих главах

3.2.5. Установка идентификатора товарам

Подробнее о базовых целях идентификации описано в разделе "Идентификация данных при обмене одних и тех же сущностей (продуктов, категорий, и пр.)"

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

ДействиеСкриншет
1. Откройте файл импорта в какой-либо программе, и выясните в какой колонке находится идентификатор товаров в файле. На примере справа, эта колонка называется "Артикул"
2. После действий, описанных в Шаге 1 и появления представления для настроек, на против колонки "Артикул" выберите Импорт товара, а в появившемся в колонке "Настройка колонки", выберите пункт "Идентификатор..."

3. Выберите, по какой колонке базы данных таблицы товара, проверять это значение

Если в колонке с идентификатором находится то, что у Вас на сайте находится в колонке Артикул, то выбирайте SKU, если Модель (Код товара) - то выбирайте MODEL, если Вы импортируете product_id, то выбирайте product_id и т.д. 

Если для идентификатора Вы используете кастомное поле, добавленное в таблицу товара, то оно также появится в списке, показанном справа

Также возможна идентификация по названию товара, или главной картинки товара


4. Выбирайте "добавить в базу", если при импорте (первом, например) нужно не только проверять, но и заводить это значение, если товар будет добавляться впервые
5. Если нужно пропускать строки файла, у которых отсутствует идентификатор, выберите пункт, показанный справа
6. Указание идентификатора закончено. В примере справа, выбрано, что идентификатор из файла находится в колонке Код товара (Модель), и при импорте, нужно заводить это у товара, если ранее такого товара не было
3.2.5.1. Составной идентификатор

Если необходимо при импорте добавлять префикс слева или справа, а также идентифицировать товары с учетом какого-либо префикса, то выставите эти настройки в области Шаг 1, как это показано на примере: установлен префикс слева: suppl_1_. В результате при импорте в данные Код товара будет добавляться:  suppl_1_X

Где X - это значение, которое будет поступать из файла, колонки Артикул, если рассматривать пример выше. А suppl_1_1 - это префикс, который будет поступать из данный настройки

Установка префикса идентификатору
В результате, при импорте для строки, где в колонке Артикул (если рассматривать пример выше) стоит значение: 1, будет найден товар или создан товар со следующим значением в поле Код товара
Важное дополнение

У каждой колонки в базе данных есть тип данных и длина. Например, в качестве product_id могут быть использованы только целочисленные значения до 2147683648. Для полей модель, SKU, EAN и пр. могут использоваться текстовые значения, но у каждого поля также есть ограничение по длине от 32 до 64 символов. Если Вы используете длинные текстовые артикула, увеличьте допустимую длину нужных Вам колонок в базе данных, например, изменив тип данных на text, или просто установив вместо заданной длины, длину: 255 символов. Изменить тип данных у колонок той или иной таблицы можно через phpMyAdmin Вашего хостинга. При работе с базой данной, пожалуйста, делайте бекап базы средствами того же phpMyAdmin

3.2.6. Настройка колонок файла при прямом импорте (прямой импорт данных из колонок в базу, без обработки, и переработки данных в ходе импорта)

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

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

Пример настройки приведен для файла, который можно посмотреть здесь

ДействиеСкриншет

1. Проделайте действия из Шага 1, установите идентификатор данным, если нужно, как это описано в разделе "Установка идентификатора". В данном примере, идентификатор не устанавливается для простоты понимания смысла прямого импорта. 

После появления представления Шага 2, у каждой колонки файла найдите нужное соответствие и укажите его в настройках колонки

Например, у артикула нужно найти и выбрать "SKU"


2. У цены по акции, нужно найти и выбрать Цену из группы настроек Специальные или Акционные цены
3. У колонки Количество, нужно найти и выбрать Количество

4. Чтобы приступить к импорту, в рубрике "Параметры профиля настроек" выберите нужный режим обмена данными (т.к. идентификации в данном примере не требуется, на примере, выбрано Добавлять все данные, как новые"). А также выберите настройки в шаге 3 и для старта импорта, нажмите "Начать импорт данных". Вы увидите счетчик импорта, значит импорт начался успешно

Подробнее о режимах обмена, и Шаге 3 смотрите в следующих разделах


5. По завершению импорта появится окно об успешном завершении


3.2.3. Предварительные действия с товаром(ами) перед импортом (обнуление остатков у определенных товаров, выключение и пр.)

Если перед импортом нужно произвести какое-то действие с какими-то товарами, которых нет в файле, но есть на сайте, используйте эту настройку

Например, можно выключить определенные товары, или обнулить остатки у товаров по условию

ЦельВариант настройкиСкриншет
Обнулить остатки у товаров, у которых в модели (коде товара) слева есть префикс OS-

1. Войдите в область настроек первого шага

2. Найдите настройку "Обработка перед импортом (обнуление остатков, цен, выключение определенных товаров)"

3. В колонке "Найти нужные товары, если поле товара..." укажите "Модель", в колонке "Оператор" - укажите "Содержит слева", в колонке "Значение" укажите: OS- (указывать нужно без пробелов и лишних символов, обратите внимание, что запрос будет регистронезависимый, то есть OS- тоже самое, что os-)

4. В настройку: "Установить все остатки, соответствующих товаров перед импортом" укажите тот остаток, который должен быть установлен всем товаром, с префиксом OS- слева в каждой модели (коде товара), например: 0

5. После данной настройки, в ходе импорта у всех товаров, у которых в модели (коде товара) будет присутствовать слева префикс OS- в поле количество товара будет добавлен нуль. 


Выключить товары, у которых в модели (коде товара) слева есть префикс OS2- и одновременно остаток больше нуля

1. Войдите в область настроек первого шага

2. Найдите настройку "Обработка перед импортом (обнуление остатков, цен, выключение определенных товаров)"

3. В колонке "Найти нужные товары, если поле товара..." укажите "Модель", в колонке "Оператор" - укажите "Содержит слева", в колонке "Значение" укажите: OS2- (указывать нужно без пробелов и лишних символов, обратите внимание, что запрос будет регистронезависимый, то есть OS2- тоже самое, что os2-)

3. В колонке "Найти нужные товары, если поле товара...", ниже укажите "Количество", в колонке "Оператор" - укажите ">", в колонке "Значение" укажите: 0

4. В настройку: "Отключить все соответствующие товары перед импортом" укажите "Включено"

5. После данной настройки, в ходе импорта у всех товаров, у которых в модели (коде товара) будет присутствовать слева префикс OS2-, и одновременно количество больше нуля, статус будет изменен на 0, то есть товар будет выключен и не будет показываться во фронтенде магазина 


3.2.4. Сопоставление (маппинг) категорий файла и сайта перед импортом

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

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

ДействиеСкриншет

1. Откройте файл импорта (или перейдите к Шагу 2 импорта), чтобы найти название колонки, в которой находятся категории, представленные вложенностью

2. Скопируйте это название в точности, и запомните какой разделитель используется: на примере разделить слеш: /, а название: Каталог_чистый


1. Перейдите в область настроек Шага 1, и в области "Сопоставление категорий файла и категорий сайта" в левой колонке "Название колонки в файле с категориями, заданными путем" вставьте, скопированное название колонки. В правой колонке "Разделитель категорий внутри пути" укажите разделитель вложенности.

2. Нажмите на кнопку "Проверить файл и загрузить данные для сопоставления"


1. Если всё сделано, а также в файле есть указанная колонка, разделитель соответствует тому, которым переложены названия категорий, то появится область: Сопоставление категорий файла XML и категорий сайта

2. Сопоставьте категории файла и категории сайта


1. Сохраните настройки, нажав на "Сохранить профиль настроек" внизу. Подробнее о вариантах сохранения профиля, и Шаге 3, смотрите в соответствующих разделах


Важное дополнение:  не сопоставленные категории, будут заведены на сайте при импорте, если не указана настройка, которая позволяет переносить товары таких категорий в какую-нибудь временную, например, "Неразобранные товары"

3.2.7. Настройка колонок файла при функциональном импорте (переработка данных в ходе импорта)

В данном разделе будут рассмотрены некоторые частые случаи оформления данных во входящих форматов, и показаны примеры настроек модуля

В данном примере будет рассматривать этот файл-пример в формате XLSX

3.2.7.1. Различные способы импорта изображений

При работе с изображениями, модуль позволяет:

  • Скачивать изображения по ссылкам на изображения, которые идут в одной ячейке через разделитель (например, через запятую или пробел, или любой другой)
  • Обрабатывать изображения: обрезать слева, справа, сверху, снизу или уменьшать до нужной высоты и/или ширины
  • Переносить изображения в нужные папки (папки задаются)
  • Переименовывать названия картинок, папок приводя их к стандарту
  • Работать с кириллическими и прочими случаями в названиях файлов или папок
  • Создавать главную картинку из первой картинки, если нет отдельной колонки для главной картинки
  • Функционал скачивания доступен для любых случаев, когда импортируются изображения (в опциях, категориях, производителях)
  • На основе (не)получения картинки можно также (не)импортировать тот или иной товар
3.2.7.1.1. Импорт изображений со скачиванием с удаленных сайтов, изображения размещены в ячейке через разделитель

Картинки в файле записаны, например: https://shop.ocext.com/image/catalog/ocext_logo.png https://shop.ocext.com/image/catalog/ocext_logo.png

Ссылки на картинки ведут на другой сайт, ссылки указаны с разделителем между собой, разделитель - пробел (разделитель может быть любой)

Необходимо:

  • скачать изображения по ссылкам,
  • переименовать и сложить в папку image/catalog,
  • из первой картинки сделать главную картинку товара

1. Выполните Шаг 1, после появления представления настроек Шага 2, на нужно колонке выберите: Импорт товара (или импорт производителя, опции, категории, если Вы планируете импортировать эти сущности данных), далее найдите настройку "Дополнительные изображения"


2. Установите следующие значения в настройки:

  • Разделитель между путями, например, запятая - укажите пробел (согласно примеру) или тот разделитель, который используете в Вашем файле импорта
  • Картинка в виде ссылки (если поле содержит ссылку на картинку вместе с сайтом) - это вариант работы с изображением, при котором изображение будет скачиваться
  • Путь относительно папки image - введите catalog (согласно примеру) или то название, которое Вам необходимо. Вы также можете указать несколько папок, например: catalog/postavcshik_1. Папки, добавленные в этот пункт будут созданы внутри папки image ОпенКарта
  • Первая картинка - главная картинка товара - выберите этот пункт, если нужно установить первую картинку из пути в ячейки в виде главной картинки товара
  • Режим обновления 1: При обновлении очищать все аналогичные данные - выберите этот пункт, чтобы удалить дополнительные картинки того или иного товара, если нужно сделать список дополнительных картинок строго по тем, которые будут у того или иного товара в ячейке файла

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

3.2.7.1.2. Импорт изображений, когда файлы уже есть на сайте, и нужно передать только пути с названием картинки, относительно папки image

Картинки в файле записаны, например: catalog/ocext_logo.png, catalog/ocext_logo2.png

Картинки уже скопированы на сайт, в папку image

Необходимо:

  • добавить товарам папки и названия картинок

1. Выполните Шаг 1, после появления представления настроек Шага 2, на нужно колонке выберите: Импорт товара (или импорт производителя, опции, категории, если Вы планируете импортировать эти сущности данных), далее найдите настройку "Дополнительные изображения"


2. Установите следующие значения в настройки:

  • Разделитель между путями, например, запятая - укажите пробел (согласно примеру) или тот разделитель, который используете в Вашем файле импорта
  • Внутренний путь относительно папки image (если поле содержит путь и название на картинку, относительно папки image сайта
  • Путь относительно папки image - оставьте пустым (согласно примеру) или то название, которое Вам необходимо. Вы также можете указать несколько папок, например: catalog/postavcshik_1. Папки, добавленные в этот пункт будут созданы внутри папки image ОпенКарта
  • Первая картинка - главная картинка товара - выберите этот пункт, если нужно установить первую картинку из пути в ячейки в виде главной картинки товара
  • Режим обновления 1: При обновлении очищать все аналогичные данные - выберите этот пункт, чтобы удалить дополнительные картинки того или иного товара, если нужно сделать список дополнительных картинок строго по тем, которые будут у того или иного товара в ячейке файла

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

3.2.7.1.3. Дополнительные настройки

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

3.2.7.2. Различные способы импорта категорий

Ознакомьтесь с данным разделом, если необходим не прямой поколоночный импорта данный о категориях, а:

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

В данном примере будет рассматривать этот файл-пример в формате XLSX

3.2.7.2.1. Импорт категорий вложенностью через любой разделитель

Категории в файле, например, идут вложнностью(ями) по колонкам, например: Каталог/Техника/Стиральные машины

Необходимо:

  • сделать импорт категорий, с учетом уже созданных ранее,
  • привязать категории к товарам,
  • установить главную категорию товара
  • разместить товар во всех (или наоборот не во всех) категориях
  • если необходимо также сделать сопоставление с имеющимся на сайте справочником, смотрите раздел Сопоставление категорий файла и сайта

1. Проделайте Шаг 1, установите идентитификатор товару, как это описано в соответствующей главе, найдите колонку(и), в которой располагаются категории, заданные вложенностью, через разделитель и выберите настройку: Импорт товара, Категории вместе с путем


1. В появившемся окне настроек, укажите:

  • Разделитель вложенности (на примере это слеш: /)
  • Главная категория товара - если необходимо делать главную именно из этой вложенности
  • Размещать во всех - если необходимо, чтобы товар размещался во всех уровнях вложннеости, а не только в данной
  • Режим обновление 1 - необязательно, но если необходимо удалить у того или иного товара уже имеющиеся привязки к категориям


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

Для импорта категорий, без привязки в товарам, используйте импорт сущности данных: "Импорт категорий"

3.2.7.2.2. Импорт категорий, если уровни категорий идут по разным колонкам

Категории в файле, например, идут по колонкам уровнями, например:

Категория 0
Категория 1
Категория 2
Каталог
Техника
Стиральные машины

Необходимо:

  • сделать импорт категорий, с учетом уже созданных ранее,
  • привязать категории к товарам,
  • установить главную категорию товара,
  • разместить товар во всех (или наоборот не во всех) категориях,
  • подвесить категорию внутри уже какой-то, например, в категорию "Поставщик такой-то"

1. Проделайте Шаг 1, установите идентитификатор товару, как это описано в соответствующей главе, найдите колонку(и), в которой располагаются категории, заданные по-колоночно, и у каждой такой колонки выберите настройку: Импорт товара, Названия категорий с глубиной размещения


1. В появившемся окне настроек, укажите:

  • Установите нуль на главной категории, 1 - на втором уровне, 2 - на третьем и т.д. - рутовый уровень категории должен присутствовать всегда, и его нужно отмечать, как нуль
  • Размещать во всех - если необходимо, чтобы товар размещался во всех уровнях вложннеости, а не только в данной
  • Режим обновление 1 - необязательно, но если необходимо удалить у того или иного товара уже имеющиеся привязки к категориям

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


3.2.7.2.3. Другие возможности

Помимо приведенных выше, есть и другие возможности импорта категорий, например:

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

Ознакомьтесь с данным разделом, если необходимо импортировать товару:

  • Группы атрибутов, атрибуты, и значения атрибутов товара, которые находятся в одной ячейке через внутренний и внешний разделители
  • Атрибуты и значения атрибутов товара, с привязкой атрибутов к уже имеющимся на сайте группам атрибутов или с образованием группы по названию колонки файла
  • Значения атрибутов товара, с привязкой к уже имеющимся на сайте атрибутам и группам, или с образованием названий атрибутов и групп атрибутов и названия колонок файла 

В данном примере будет рассматривать этот файл-пример в формате XLSX

Вариант импорта продуктовых атрибутовСкриншет

1. Проделайте Шаг 1, найдите колонку в представлении Шага 2, в которой будет находится одно из приведенных ниже оформление значений для импорта атрибутов

2. Выберите Импорт товара, и далее найдите область разных настроек импорта продуктовых атрибутов "Значение атрибутов товара"

1. Если в колонках идут только значения атрибутов, выбирайте настройку TEXT

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

На примере справа выбрано, чтобы атрибут был создан из названия колонки "Состояние", а группа атрибутов была из числа уже заведенных на сайте (Характеристики)


1. Если в колонках идут только атрибуты и значения атрибутов, выбирайте настройку "Значение атрибутов вместе с названием атрибутов"

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

На примере справа выбрано, чтобы группа атрибутов была из числа уже заведенных на сайте (Характеристики)

В ячейке может находиться, как одна пара: атрибут---значение, так и несколько пар через разделитель. Разделители могут быть любые


1. Если в колонках идут вместе и группы атрибутов, и атрибуты и значения атрибутов, то выбирайте настройку "Значение атрибутов вместе названием группы, названием атрибутов, и значениями"

В ячейке может находиться, как одна пара: атрибут---значение, так и несколько пар через разделитель. Разделители могут быть любые


3.2.7.4. Различные способы импорта опций товара

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

  • Импортировать 3 вида микроразметки и делать прямой импорт значений
  • Импортировать, как разницу цены, так считать разницу, делать дополнительное ценообразование, если нужно

В данном примере будет рассматривать этот файл-пример в формате XLSX

Вариант оформления продуктовых опций в файле и настройки для вариантаСкриншет

1. Проделайте Шаг 1, найдите колонку в представлении Шага 2, в которой будет находится одно из приведенных ниже оформлений товарных опций

2. Выберите Импорт товара, и найдите область различных способов импорта товарных опций "Опции товара"


1. Выбирайте микроразметку 1, если в ячейках или по колоночно находятся следующие способы представления опций:

checkbox|Размер|XXL|0|57|1|+|10|-|20|+|0|http://site.ru/img/sizexxl.jpg|sizecolor001299|SKU-112998---checkbox|Размер|XX|0|80|1|+|10|-|20|+|0|http://site.ru/img/sizexxl.jpg|sizecolor001299|SKU-112998

Где:

  • Тип будущей опции — select, radio, image, checkbox*
  • Название опции — текст, например: Размер*
  • Название значения опции — текст, например: XXL*
  • Обязательная или нет: 1 - да, 0 - нет
  • Количество — число
  • Вычитать со склада или нет — 1 - да, 0 - нет
  • Цена с префиксом — +10 или -20, или +0, если доплаты/уценки за опцию нет
  • Балы с префиксом — +10 или -20, или +0
  • Вес с префиксом — +10 или -20, или +0
  • Ссылка на картинку, относительно папки image — products/options/sizexxl.jpg
  • Значение кода опции - если необходима идентификация значения опции по справочнику опций в ОпенКарт (название колонки #_option_value ниже таже должно быть задано)
  • Значение кода продуктовой опции - если необходима идентификация значения продуктовой опции по опции у товара (название колонки #product_option_value ниже таже должно быть задано)
  • * - обязательно. Если какое-то необходимое значение следует дальше, то не заполняйте те значения, которые не трубуется устанавливать. Запись пустых значений может быть: Размер|||image.jpg


1. Выбирайте микроразметку 2, если в ячейках или по колоночно находятся следующие способы представления опций:

Размер|XL|+|10|51|http://site.ru/img/sizexxl.jpg|checkbox|sizecolor001299|SKU-112998---Размер|L|+|10|151|http://site.ru/img/sizexxl.jpg|checkbox|sizecolor001299|SKU-112998

Где:

  • Название опции* — текст, например: Размер
  • Название значения опции* — текст, например: XXL
  • Цена с префиксом* — +10 или -20, или +0, если доплаты/уценки за опцию нет
  • Количество — число
  • Ссылка на картинку, относительно папки image — products/options/sizexxl.jpg
  • Тип — select, radio, image, checkbox
  • Значение кода опции - если необходима идентификация значения опции по справочнику опций в ОпенКарт (название колонки #_option_value ниже таже должно быть задано)
  • Значение кода продуктовой опции - если необходима идентификация значения продуктовой опции по опции у товара (название колонки #product_option_value ниже таже должно быть задано)
  • * - обязательно. Если какое-то необходимое значение следует дальше, то не заполняйте те значения, которые не трубуется устанавливать. Запись пустых значений может быть: Размер|||image.jpg


1. Выбирайте микроразметку 3, если в ячейках или по колоночно находятся следующие способы представления опций:

Зеленый-100;Красный-0-150-1;Синий-64--1-0;Фиолетовый-12;

Где:

  • Название значения опции* — текст, например: зеленый, или 42
  • Количество* — текст, например: 0
  • Цена — текст (необязательно)
  • Вычитать со склада — 1 - да, если не задано или нуль - нет (необязательно)
  • Опция обязательная — 1 - да, если не задано или нуль - нет (необязательно)
  • Должен обязательно присутствовать внутренний разделитель значений, например: - и необязательно внешний разделитель, например: ;


1. Выбирайте "Название значение опции", если в ячейках или по колоночно находятся названия значений опции

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


3.2.7.4.1. Дополнительные настройки при импорте опций товара
НастройкиСкриншет
  • Выбрать опцию для этого значения - позволяет указать, к какой опции сайта нужно привязать значение опции
  • Вычесть цену или прямой импорт цены из файла. Первый вариант нужен, если в опциях идет полная цена, и т.к. в ОпенКарте в опциях хранится только разницы с ценой товара, то при импорте цена товара будет вычтена. Используйте второй вариант, если в опциях сразу импортируются только разницы с базовой ценой товара
  • Укажите нужно ли округлять, если выбрана конвертация или ценообразование, в результате чего цена может получиться в виде десятичной дроби
  • Укажите обязательность опции и необходимость вычитания её со склада - это два параметра, которые указываются в товарных опциях ОпенКарта в админке товара, во вкладке Опции, но могут быть переданы и при импорте
  • Ценообразование отдельно рассмотрено в разделе Варианты работы с ценой

3.2.8. Работа с ценой при импорте

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

  • Умножение на какой-либо коэффициент (как повышающий: 1.5, так и понижающий 0,5), при этом разделитель дроби не имеет значения - это может быть как точка, так и запятая
  • Умножение на какой-либо коэффициент и алгебраическое суммирование с абсолютным числом в зависимости от величины значения цены, и интервала. 
  • Конвертация цены (рассматривается в разделе Шаг 1)
  • Округление цены
Примеры работы с ценойСкриншет
Если на какую-либо колонку ставится настройка, которая предполагает наличие цены, то Вы увидите следующую настоечную область
На примере показано, что каждое значение цены в файле будет проверяться на его попадание в интервал, после чего, если значение попадает в интервал оно будет умножиться и к нему будет прибавляться абсолютное число

Для конвертации цен на базе внутренних курсов ОпенКарт, в соответствующем шаблоне импорта, в области настроек Шага 1 нужно выбрать:

  • В какой валюте воспринимать входящую цену
  • В какую валюту конвертировать


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

3.2.9. Работа с остатками при импорте

При передачи количества товара, количество (статус количества) может быть дополнительно обработан. В частности может производиться:

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

На примере справа показано, как настраивается интерпретация текстовых состояний склада в количество

Если какое-либо слово будет отсутствовать в настройке, то количество будет передано из числа того, которое указывается в настройке "установить количество"


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

3.2.10. Дополнительные настройки товаров

<
НастройкаСкриншет с областью дополнительных настроек импорта товаров

Установить количество всем товарам - Настройка позволяет установить то или иное число всем товарам, которые будут импортироваться по файлу. Количество у других товаров в ОпенКарте не изменится

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

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

Генерировать seo_url - включает генерацию сео урла по правилам транслитерации поисковиков, если в рамках импорта будут переноситься названия. Генерация делается один раз. Если у товара уже заведен какой-либо сео-урл, то он не будет изменен при следующих обновлениях

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

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

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