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

Оглавление

     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. Если длина будет превышать, то картинки загрузятся, но в базе данных будет сохранен не весь путь и картинки не отобразится


Обрабатывать изображение - используйте любое из данных полей, чтобы обработать изображения при импорте: сделать пропорциональное уменьшение и/или обрезать часть изображения


3.2.11. Сохранение профиля настроек, и режимы обмена данными

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

Перед сохранением настроек, придумайте название этому профилю и разместите его в "Название профиля настроек"

Выберите нужный режим сохранения

Режимы сохранения профилей настроекСкриншет

Доступно 3 режима сохранения:

  • Сохранить, как новый - этот режим позволяет сохранить профиль, как новый профиль настроек. При этом тот, который был вызван первоначально не изменится
  • Сохранить изменения - этот режим сохраняет изменения в вызванный профиль настроек
  • Удалить профиль - этот режим удаляет вызванный профиль настроек. Удалить профиль можно также нажав на иконку корзинки рядом с названием профиля настроек, в области настроек Шага 1, в рубрике: Загрузить профиль настроек


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

Режимы обмена даннымиСкриншет

Доступно 4 режима обмена данными:

  • Добавить все данные, как новые - этот режим позволяет добавлять данные, как новые без идентификации. Будьте осторожны, каждый импорт в этом режиме будет заводить данные. Это может привести к их дублированию. Чтобы избежать дублирования, используйте следующие ниже режимы
  • Обновить все данные, и вставить новые если есть - этот режим нужен, если в файле есть товары, часть которых уже заведена, а часть не заведена. При работе с файлом, модуль будет находить имеющиеся товары и если таковые есть, то обновлять в них данные, которые будут требовать обновления по данным настроек профиля. Если модуль не найдет данные по идентификатору сущности данных, то данные по файлу, в соответствии с настройками по колонкам, будут добавляться, как новые. Для этого профиля обязательна настройка идентификатора (смотрите раздел "Установка идентификатора")
  • Обновить только имеющиеся - этот режим отличается от предыдущего тем, что новые данные вставляться не будут, а обновление будет происходить только если будет найден тот или иной товар, категория и т.п. сущность данных. Для этого профиля обязательна настройка идентификатора (смотрите раздел "Установка идентификатора")
  • Добавить только новые - этот режим отличается тем, что позволяет добавлять сущности данных (например, товары), только если таковые отсутствуют на сайте. Для этого профиля обязательна настройка идентификатора (смотрите раздел "Установка идентификатора")


3.3. Шаг 3. Импорт данных

Описание возможностейСкриншет

1. Перед началом импорта установите нужные параметры:

  • С какой строки файла начать? - этот параметр позволяет начать (продолжить) импорт с любой строки файла, без учета первой строки, в котором находятся колонки файла
  • Делать строк за один проход (рекомендуется 50-100) - установите оптимальный режим обработки - размер порции, которая будет обрабатываться за один круг. Чем больше данных в строке, тем затратней для памяти и времени импорт одной строки. Чем меньше данных в строке, тем менее затратней по времени и памяти операция импорта. Для обычных хостингов, и длине колонок 10-20, установите 50-200. Для хостингов с большим объемом ОЗУ, нелимитируемым временем работы скрипта - этот параметр может быть равен тысячам и десяткам тысяч


4. Экспорт данных из ОпенКарт в CSV, DSV, XLS, XLSX

4.1. Шаг 1. Настройка файла экспорта (конструктор выгрузки) CSV, DSV

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

1. Войдите в модуль, во вкладку "Экспорт (конструктор выгрузки)". Загрузите, ранее сохраненный профиль настроек или создайте новый

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


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

Настройка первого шага завершена

4.2. Шаг 2. Конструктор выгрузки - создание колонок и настройка выходных данных

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

1. Нажмите на знак "+" (1), чтобы добавить колонку будущего файла

2. Присвойте название каждой колонке (2)

3. Выберите каждой колонке, какие данные должны передаваться (3, 4)


Функционал и возможности экспорта могут варьировать в зависимости от версии

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

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

  • Выбирая режим сохранения связанных данных "Связанные данные записывать в одной ячейке через разделитель: _____", запись таких данных будет производиться в одной ячейке, например: КАТАЛОГ_____КАТАЛОГ/САНТЕХНИКА_____КАТАЛОГ/САНТЕХНИКА/СМЕСИТЕЛИ
  • Выбирая режим сохранения связанных данных "Связанные данные записывать в новой колонке строки с данными", запись таких данных будет производиться по колонкам, например, если выгружаются категории вложенностью через разделитель, то будет создано столько дополнительных колонок, сколько уровней вложенности есть у выгружаемых данных. И все данных будут размещены по колонкам:

    КатегорииКатегории
    Категории
    КАТАЛОГКАТАЛОГ/САНТЕХНИКАКАТАЛОГ/САНТЕХНИКА/СМЕСИТЕЛИ

Функционал и возможности экспорта могут варьировать в зависимости от версии

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

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

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



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

Файл экспорта Вы можете проверить еще до окончания процесса по ссылке, которую Вы задали на шаге 1, т.к. файл пишется порциями и это не помешает процессу в целом, но позволит увидеть результат еще до окончания



5. Автоматизация обмена при импорте и экспорте

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

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

5.1. Создание ссылки для автоматизации

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

1. Войдите в таб "Настройки автоимпорта, автоэкспорта"

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

3. В позицию "Защита ссылки - любое число или латинские символы. Без пробелов. Желательно от 6 до 12 символов" укажите защитный код, который защитит пуск процесс от несанкционированного запуска

4. В позиции статус выберите "Включить" 

5. Нажмите "Сохранить"Сохранить профиль настроек"


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

5.2. Запуск ссылки в планировщике CRON

Ссылку, созданную, как это описано в предыдущем разделе, можно запускать в браузере, но также автоматизировать процесс, путем постановки задания на запуск ссылки в определенное время. На хостингах за такого рода автоматизацию отвечают т.н. планировщики. Наиболее популярным планировщиком является CRON. Узнайте, как автоматизировать работу с его помощью из данной справки. Однако точные параметры создания заданий на CRONe Вашего хостинга могут быть выяснены только в службе поддержки Вашего хостинга

Вариант задачи на CRON для ссылкиСредство запуска

* * * * * curl  --request GET 'ССЫЛКА_СКОПИРОВАННАЯ_ИЗ_МОДУЛЯ'

* - задайте время запуска: первая звездочка минуты - от 0 до 60, вторая - часы от 0 до 23, далее: 1-31 (дни недели), 1-12 (месяцы), 0-6 (дни недели). Например, если необходимо запускать ссылку каждое утро понедельника в 10 часов, то вместо звездочек нужно указать: * 10 * * 1

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

'' - одинарные кавычки, в которых нужно указать ссылку

ССЫЛКА_СКОПИРОВАННАЯ_ИЗ_МОДУЛЯ - ссылка, которую нужно скопировать из модуля (об этом рассказывается в разделе "Создание ссылки для автоматизации")

CURL

* * * * * wget -O - -q -t 1 'ССЫЛКА_СКОПИРОВАННАЯ_ИЗ_МОДУЛЯ'

* - задайте время запуска: первая звездочка минуты - от 0 до 60, вторая - часы от 0 до 23, далее: 1-31 (дни недели), 1-12 (месяцы), 0-6 (дни недели). Например, если необходимо запускать ссылку каждое утро понедельника в 10 часов, то вместо звездочек нужно указать: * 10 * * 1

wget -O - -q -t 1 - команда. На хостингах команды могут различаться, и список доступных команд может быть ограничен. Оставьте приведенную в примере команду без изменений, и если она "не пойдет", то обратитесь на хостинг за уточнением синтаксиса для ссылки в целом. 

'' - одинарные кавычки, в которых нужно указать ссылку

ССЫЛКА_СКОПИРОВАННАЯ_ИЗ_МОДУЛЯ - ссылка, которую нужно скопировать из модуля (об этом рассказывается в разделе "Создание ссылки для автоматизации")

WGET

5.3. Общие рекомендации

Если количество данных много, то рекомендуется добавлять в ссылку параметр --max-redirect=1000, итоговая ссылка в этом случае будет выглядеть: * * * * * --max-redirect=10000 curl  --request GET 'ССЫЛКА_СКОПИРОВАННАЯ_ИЗ_МОДУЛЯ'

Данный параметр разрешает пускать ссылку до 1000 раз. Это может понадобится, если, например, нужно обработать 1000 строк, а в позиции количество данных за один проход установлено 100. То есть нужно будет пустить ссылку 10000/100 = 100 раз

Не запускайте ссылку слишком часто. Данные должны успеть обработаться до следующего запуска полного запуска.

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

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

Для автоматизации используйте жесткие режим обмена: обновлять только имеющиеся данные. Это позволит более уверенно контролировать обмен.  

Желательно делать бекап базы, как можно чаще, чтобы не потерять данные из-за различных непредвиденных отклонений во входящих данных

6. Ошибки

6.1. Ошибки сервера (500-ые) и php (Fatal, вызванные со стороны сервера)

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

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

ОшибкаВариант решения
500 internal server error (внутренняя ошибка сервера)

В логе сервера найти информацию о том, что является причиной появления данной ошибки

Некоторые частые причины описаны ниже

500 internal server error: allowed memory size 134217728...

Выделенной памяти ОЗУ, размером 128М недостаточно (цифра 128М, а точнее конкретное значение Вашего хостинга, можно получить, путем деления указанной в ошибке цифры на 1024 2 раза: 134217728/1024/1024 = 128

1. Увеличить ОЗУ по тарифу

2. Снизить размер количество строк при обмене (импорте, экспорте)

3. Уменьшить размеры файлов импорта до размеров, чтобы работа с ними не выходила за лимиты по тарифу хостинга

500 internal server error: Fatal error
По данному типу ошибок, если из текста ошибки нет ясности, что её вызывает, Вам необходимо обратиться в нашу службу поддержки
Остановка сервера и упоминание max_queries_per_hour, или max_connections_per_hour и т.п.

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

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

Если в файле 100 строк, и нужно завести дополнительно 200 тыс. связанных данных в таблицы базы этих данных, то в данном параметре должна стоять цифра, которая может рассчитываться так: 100 тыс. на проверку каждой сущности данных + 100 тыс. на импорт основных данных + 200 тыс. на импорт связанных данных, итого: не менее 400 тыс. в час.

Остановка сервера и упоминание max_redirects

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

Расчет необходимого значения может быть произведен следующим образом: например, у файла 10000 строк, количество строк для одного прохода установлено 500. Соответственно в параметре: max_redirects должно быть установлено число, равное: 10000/500 = 20

Как правило, по умолчанию этот параметр на сервере равен 100

504 gateway time-out - сервер остановил работу из-за превышения допустимого времени работы скрипта по тарифу или из-за ограничения в параметре

Как правило, устраняется в файле .htaccess директивой: php_value max_execution_time 640

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

Если изменение этого параметра вызывает 500-ую ошибку, или не влияет на время, его всё так же недостаточно и меньше, чем Вы указываете, то на хостинге есть более приоритетные параметры, которые не позволяют самостоятельно устанавливать эти значения. Обратитесь в службу поддержки хостинга, чтобы узнать, как увеличить время работы скрипта в max_execution_time

504 gateway time-out nginx/1.10
По данному типу ошибок, если из текста ошибки нет ясности, что её вызывает, Вам необходимо обратиться в нашу службу поддержки
503 service unavailable
Данная ошибка, в контексте функционала актуальных версий модуля, не должна появляться. Для её устранения, во-первых, нужно перейти на версию модуля от 5-ой и выше. Если ошибка всё еще есть, то данная ошибка может быть связана с отсутствие поддержки со стороны хостинга, асинхронной работы сайта. А именно требование со стороны хостинга, чтобы данные поступали на сайт сразу без возможности подгружать AJAX'ом нужные функциональные контейнеры по мере работы с настройками
502 bad gateway
Данная ошибка может возникать в связи с очень широким спектром превышений по лимитам хостинга. Как правило, такой ошибкой накрывается какое-либо превышение, о котором хостинг не может сделать уточнение. Узнать конкретную причину этой ошибки можно через специалистов службы поддержки хостинга

6.2. Ошибки при импорте данных из источников в OpenCart

6.2.1. Ошибки при загрузке файла или подаче ссылки

ОшибкаВариант решения

При загрузке файла, появляется окно: Неправильный тип файла



1. Войдите на страницу настройки магазина, вкладку Сервер
2. В закладке Сервер
3. В позицию: Разрешенные типы файлов добавьте строчку: csv
4. В позицию: Разрешенные типы файлов добавьте строчку: xls
5. В позицию: Разрешенные типы файлов добавьте строчку: xlsx
6. В позицию: Разрешенные типы файлов добавьте строчку: xml
7. В позицию: Разрешенные типы файлов добавьте строчку: yml
8. В позицию Разрешенные MIME типы добавьте новую строку: application/vnd.ms-excel
9. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: csv/text
10. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: text/csv
11. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/vnd.ms-excel
12. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/x-msexcel
13. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/x-excel
14. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/vnd.ms-excel
15. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/excel
16. В ту же позицию - Разрешенные MIME типы, добавьте еще одну строку: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
17. В позицию Разрешенные MIME типы добавьте новую строку: text/xml
18. В позицию Разрешенные MIME типы добавьте новую строку: text/yml
19. Нажмите Сохранить
При загрузке файла, файл не появляется

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

2. Возможно на папках сайта, как правило (если в config.php не была установлена другая папка), на папке system/storage/download/ выставлены права, которые не позволяют загружать файлы в эту папку

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



1. Неправильно выставлены разделители, или ограничители текстовых данных. Уточните какой разделитель и ограничитель, как это описано в соответствующих главах. Установите эти значения в настройке на Шаге 1, как это описано в соответствующих разделах

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

При загрузки файла или ссылки XLS, XLSX я не вижу табличного представления, а вижу примерно следующее:


1. Вы не включили опцию "Загружается файл ЭКСЕЛЬ"


2. Не смотря на расширение файла XLS, XLSX, файл не представляет собой файл эксель. Чтобы убедиться, что файл действительно является эксель-файлом, откройте его в программе Эксель. Если при открытии Вы не получите окно, о том, что файл содержит проблемы, то обратитесь в нашу службу поддержки, чтобы помочь загрузить этот файл. Если же при открытии файла в экселе Вы получаете такое сообщение - что файл содержит какие-либо проблемы, то тем не менее откройте его в Эксель и пересохраните его из программы Эксель. После чего подайте этот файл в модуль

6.2.2. Ошибки при загрузке изображений

ОшибкаВариант решения
Изображения не загружаются, но настройка "Картинка в виде ссылки (если поле содержит ссылку на картинку вместе с сайтом)" включена

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

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

3. Откройте лог ОпенКарта, если в нем идут ошибки: file_get_contents timeout, file_get_contents 403 forbidden и т.п., то удаленный сервер перестал отдавать картинки Вашему сайту. В дополнительных настройках импорта, включите загрузку изображений с помощью CURL, если это не поможет, то нужно изменить ссылки на изображения, т.к. удаленный сервер "отказывается" передавать картинки в любом случае

Изображения не появляются

1. Если импорт изображений идет путями на сайте, убедитесь, что в файле находятся пути и картинки, которые уже есть на сайте. Для этого нужно вызвать страницу сайта и добавить к ней: мойсайт.ком/image/тут_путь_и_картинка_из_файла

2. Если выбран режим изменения названий папок и картинок, например, чтобы устранить названия папок и картинок, созданные не по стандарту (кириллические со спецсимволами), то возможно итоговый путь и файл стали длиннее 255 символов. Именно такое количество символом установлено по умолчанию в базе данных ОпенКарта на поле image в таблицах product_image, product. Измените тип этого поля на text или или уменьшите длину итоговых картинок и путей

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

6.3. Данные дублируются

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

1. Неправильно указан идентификатор, или не указан вовсе, или у каждого товара, категории, или производителя свой идентификатор в строках. Ознакомьтесь с разделами в Общей информации, и в инструкции по тому, как выставлять идентификатор. Важно, чтобы у всех тех строк файла, которые должны быть объединены в одну сущность данных, должно присутствовать одно и то же значение, которое выбрано в качестве идентификатора. Так называемый один и тот же group_id

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

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

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


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

6.4. Ошибки при автоматическом импорте или экспорте

ОшибкаВариант решения
При запуске ссылки автоимпорта или автоэкспорта через CRON возникает сообщение: exited with return code 3

1. Возьмите ссылку, которую ставите на CRON в одиночные кавычки, например: wget --max-redirect=100000 'мой_сайт/index.php?route=extension/feed/odmpro_update_csv_link&token=1111'

2. Если п. 1 не привел к результату, уточните у специалистов хостинга синтаксис передачи урла с GET параметрами на CRON, как это возможно на Вашем хостинге





7. Программы для работы с CSV/DSV/XLS, если нужно скорректировать данные в файлах импорта

Для создания файлов CSV,DSV или файлов в формате XLS, XML, для предварительной проверки или дополнения файлов данными, Вам могут понадобиться программы, приведенные в этом разделе

ПрограммаВозможностиГде скачать
 OpenOffice Calc (распространяется бесплатно)

Бесплатный аналог программы Excel  с расширенными возможностями по работе с файлами CSV/DSV/TSV

Позволяет создавать CSV/DSV/XLS/XLSX  в табличной форме и делать экспорт, импорт файла в любой кодировке, с любыми разделителями, и любыми ограничителями полей

Скачать
 NotePad++ (распространяется бесплатно)

Текстовый редактор, с синтаксической подсветкой

Просмотр файлов XML, CSV, DSV и их редактирование этих файлов, как текстовых документов

Перекодирование файлов в любых кодировки

Скачать

Связаться с нами