Налаштування імпорту/експорту товарів 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 днів.
Замовте аудит вашого імпорту — ми допоможемо налаштувати систему навіть для найскладнішого каталогу.







