Настройка импорта/экспорта товаров Magento 2
Импорт/экспорт — наиболее нагруженная операция в Magento 2. Встроенный механизм через CSV с жёсткой схемой колонок часто даёт сбои на каталогах от 10 000 SKU: memory/timeout ошибки, зависания на часах. Например, для клиента с каталогом 150 000 товаров мы сократили время импорта с 8 часов до 40 минут с помощью кастомного адаптера и асинхронной обработки через очереди RabbitMQ. Правильная конфигурация batch-размеров (bunch_size), индексации и управления памятью устраняет большинство проблем. Мы интеграторы Magento с опытом 7+ лет, решали такие кейсы регулярно. Эта статья — практическое руководство: разберём форматы CSV, настройку сервера, типичные ошибки и способы их решения. Свяжитесь с нами для аудита вашего импорта — мы предложим оптимальное решение. После настройки мы гарантируем стабильную работу — все изменения проходят регресс. Особое внимание уделяем MSI, конфигурируемым товарам и мультиязычности.
Форматы и структура CSV
Magento 2 поддерживает импорт сущностей: catalog_product, catalog_category, customer, customer_address, customer_finance, stock_sources (MSI).
Обязательные колонки для продуктов:
| Колонка | Описание | Пример |
|---|---|---|
sku |
Уникальный идентификатор | prod-001 |
store_view_code |
Пусто = admin scope | ru, en |
attribute_set_code |
Набор атрибутов | Default |
product_type |
Тип товара | simple, configurable |
name |
Название | Куртка зимняя |
price |
Цена | 1299.00 |
qty |
Количество (legacy, без MSI) | 100 |
visibility |
Видимость | Catalog, Search |
status |
Статус | 1 |
Для конфигурируемых товаров необходимы дополнительные колонки: configurable_variations и configurable_variation_labels.
Как ускорить импорт 100 000 товаров?
Дефолтные настройки Magento не рассчитаны на большие объёмы. Ключевые параметры в app/etc/env.php и конфигурации сервера:
// Увеличение batch-размера для импорта // app/code/Vendor/Import/etc/di.xml <type name="Magento\ImportExport\Model\Import"> <arguments> <argument name="data" xsi:type="array"> <item name="bunch_size" xsi:type="number">500</item> </argument> </arguments> </type> # php.ini для процессов импорта memory_limit = 2G max_execution_time = 3600 max_input_time = 3600 # Отключение ненужных индексеров во время импорта bin/magento indexer:set-mode schedule cataloginventory_stock catalog_product_price catalogsearch_fulltext Мы также используем асинхронную обработку через очереди RabbitMQ — это снижает нагрузку на сервер в 3 раза быстрее стандартного подхода.
Сравнение дефолтных и оптимизированных параметров:
| Параметр | По умолчанию | Оптимизированный |
|---|---|---|
| bunch_size | 200 | 500 |
| memory_limit | 512M | 2G |
| max_execution_time | 1800 | 3600 |
Пошаговая настройка импорта под ваш каталог
- Аудит текущей схемы импорта — проверяем форматы, атрибуты, структуру.
- Настройка параметров сервера — memory_limit, execution_time, batch_size.
- Конфигурация профиля импорта — сущность, поведение, маппинг колонок.
- Разработка кастомного адаптера — если требуется интеграция с ERP/1С.
- Тестирование на выборочных данных — до 1000 SKU с контролем ошибок.
- Полный прогон и реиндексация — после успешного теста.
Почему импорт Magento 2 требует кастомной настройки?
Стандартный импорт не обрабатывает изображения, мультиязычные атрибуты, URL-ключи, связи с категориями. Для регулярной синхронизации с ERP/1С мы разрабатываем кастомный источник данных на базе AbstractSource, который преобразует данные в Magento-совместимый формат. Это гарантирует стабильность и сокращает время обработки на 60%. Наши инженеры выполнили более 50 проектов по интеграции Magento с различными ERP. Получите консультацию — мы расскажем, как это работает на вашем проекте.
Согласно документации Magento по импорту, для сложных сценариев рекомендуется использовать кастомный адаптер.
MSI (Multi-Source Inventory) импорт
Начиная с Magento 2.3, для управления складами используется MSI. Импорт остатков по источникам:
source_code,sku,quantity,status warehouse-moscow,jacket-red-s,50,1 warehouse-spb,jacket-red-s,30,1 warehouse-moscow,jacket-red-m,0,0 bin/magento import:run \ --entity=stock_sources \ --behavior=append \ --input-file=var/import/stock_msi.csv После импорта обязательно запустите реиндексацию: bin/magento indexer:reindex catalog_product_attribute catalog_product_price catalogsearch_fulltext catalog_product_category.
Полный пример конфигурации для оптимизации импорта
# app/etc/env.php настройки для импорта 'import' => [ 'bunch_size' => 500, 'product_import_image_dirs' => ['/pub/media/import'], 'retrieve_image_with_url' => false ] # php.ini memory_limit = 4G max_execution_time = 7200 Как автоматизировать импорт с помощью cron?
Для регулярной синхронизации с ERP настраиваем cron-задачу, запускающую bin/magento import:run с параметрами сущности, поведения и файла. Логи выполнения пишутся в var/log/import.log. При ошибках система отправляет уведомление в Telegram. Мы также настраиваем мониторинг индексации после импорта. Это позволяет обновлять каталог ежедневно в фоновом режиме без ручного участия.
Что входит в работу
- Аудит текущей схемы импорта и кастомных атрибутов.
- Настройка batch-размеров, индексации и профилей импорта.
- Разработка адаптера для синхронизации с вашей ERP/1С.
- Тестирование на каталоге объёмом до 100 000 SKU.
- Документация по форматам и процедурам.
- Обучение ваших менеджеров работе с импортом.
- Гарантия стабильной работы в течение 30 дней.
Типичные проблемы и их решение
- Memory exhausted: увеличьте
memory_limitдо 2–4G, уменьшитеbunch_sizeдо 200–300. - URL key already exists: используйте поведение
add_updateили очистите таблицуurl_rewrite. - Invalid value for Attribute Set: проверьте точное совпадение
attribute_set_codeс именем набора в базе. - Медленная индексация: переключите индексеры на
schedule, выполните импорт, затем ручная реиндексация.
Сроки выполнения
- Настройка и тест импорта до 1 000 SKU: 1 день.
- Разработка кастомного адаптера для ERP-синхронизации: 3–5 дней.
- Настройка scheduled import с мониторингом ошибок: 2–3 дня.
- Миграция каталога 50 000+ SKU из другой платформы: 5–10 дней.
Закажите аудит вашего импорта — мы поможем настроить систему даже для самого сложного каталога.







