PrestaShop — это популярная платформа для создания интернет-магазинов, но ее стандартный инструмент импорта товаров имеет ряд существенных недостатков. В этой статье мы рассмотрим проблемы, с которыми сталкиваются пользователи при импорте товаров, и предложим решения для их устранения.
Основные проблемы при импорте товаров в PrestaShop
1. Непонимание процесса маппинга полей
Многие пользователи сталкиваются с трудностями на этапе маппинга (сопоставления полей). На втором шаге импорта PrestaShop предлагает указать, какие поля в файле загрузки соответствуют полям в базе данных PrestaShop. Например, колонка "reference" из файла — это артикул товара в PrestaShop.
Нередко пользователи пропускают этот шаг, что приводит к ошибкам. Маппинг важен, так как он указывает системе, куда записывать данные. Если этого не сделать, PrestaShop не сможет корректно обработать и импортировать информацию.
2. Пропуск ненужных колонок
Еще одна распространенная проблема — это загрузка ненужных колонок. В файлах импорта могут содержаться колонки, не используемые в PrestaShop. Если их не исключить, система будет пытаться обработать данные по этим колонкам, что может вызвать ошибки и сбить пользователя с толку.
Примером могут служить технические данные, которые не нужны в PrestaShop. Их необходимо пропускать на этапе маппинга.
3. Ограничения сервера и производительность при большом количестве товаров
При импорте большого количества товаров многие пользователи сталкиваются с проблемами на стороне сервера. На слабом хостинге, где установлены ограничения на выполнение скриптов и доступную оперативную память, процесс импорта может прерываться.
Возьмем пример: на слабом хостинге среднее время загрузки одного товара в PrestaShop может составлять около 5 секунд. Если вы импортируете 50 000 товаров, это займет примерно 69 часов:
5 секунд × 50 000 товаров = 250 000 секунд = 69 часов
Это колоссальное время ожидания, и если сервер не поддерживает такие объемы, процесс может регулярно прерываться, создавая дополнительные проблемы.
Как решить проблему:
- Увеличьте максимальное время выполнения скриптов (
max_execution_time
) и размер выделяемой памяти (memory_limit
) в настройках сервера. - Рассмотрите возможность переноса интернет-магазина на более мощный сервер или использования услуг специализированного хостинга для PrestaShop.
4. Специальные символы в названиях товаров
Одна из наиболее раздражающих проблем — это остановка импорта из-за наличия в названиях товаров специальных символов. Если в названии товара присутствуют символы, которые PrestaShop не поддерживает (например, #
, =
, {
, }
и другие), процесс импорта может полностью остановиться. Это особенно неприятно, когда уже загружено несколько десятков тысяч товаров, а на одном из них импорт прерывается.
Например, если вы успешно загрузили 30 000 товаров, но 31 000-й содержит недопустимый символ, процесс прервется, и вам придется вручную искать и исправлять ошибку, чтобы продолжить загрузку.
Решение проблемы с символами:
Чтобы предотвратить такие ситуации, можно очистить названия товаров от недопустимых символов перед импортом. Для этого необходимо внести изменения в файл /controllers/admin/AdminImportController.php на строке 1614.
Найдите метод productImportOne
и добавьте в него следующий код для очистки названий:
if (isset($info['name'])) {
$info['name'] = mb_strimwidth(
str_replace(['#','=',';','<','>','{','}'], ['', '-', '', '', '', '', ''], (string)$info['name']),
0, 128
);
}
Этот код заменяет проблемные символы и обрезает длину названия до 128 символов, что соответствует требованиям PrestaShop.
Важно: необходимо переопределить данный класс, чтобы ваши изменения не были потеряны при обновлении PrestaShop. Это можно сделать через механизм наследования классов в PrestaShop.
Импорт товаров в PrestaShop может быть улучшен, если правильно настроить маппинг полей, исключить ненужные колонки и учесть возможности вашего сервера. Очистка названий товаров от недопустимых символов решит проблему остановки импорта на полпути и сэкономит ваше время.
Мы надеемся, что команда PrestaShop в будущем улучшит процесс импорта, сделав его более гибким и надежным.
А пока поделитесь в комментариях своим опытом работы с импортом в PrestaShop: с какими проблемами вы сталкивались и как их решали?