Налаштування імпорту/експорту товарів Magento 2

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування імпорту/експорту товарів Magento 2
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування імпорту/експорту товарів Magento 2

Імпорт/експорт — одна з найбільш навантажених операцій в Magento 2. Вбудований механізм працює через CSV з жорсткою схемою колонок. При неправильній конфігурації імпорт 10 000 SKU може займати кілька годин та падати з memory/timeout помилками. Правильне налаштування batch-розмірів, індексації та управління пам'яттю вирішує більшість проблем.

Формати та структура CSV

Magento 2 підтримує імпорт: catalog_product, catalog_category, customer, customer_address, customer_finance, stock_sources (MSI).

Обов'язкові колонки для товарів:

Колонка Опис Приклад
sku Унікальний ідентифікатор prod-001
store_view_code Пусто = admin scope en, de
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.

sku,attribute_set_code,product_type,name,price,configurable_variations,configurable_variation_labels
jacket-base,Default,configurable,Зимова куртка,1299.00,"sku=jacket-red-s,color=Red,size=S|sku=jacket-red-m,color=Red,size=M","Color=Колір,Size=Розмір"
jacket-red-s,Default,simple,Зимова куртка Червона S,1299.00,,,
jacket-red-m,Default,simple,Зимова куртка Червона M,1299.00,,,

Оптимізація продуктивності

Дефолтні налаштування 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

Імпорт через CLI та API

Для автоматизації використовуйте CLI-команду або REST API:

# Стандартний імпорт через CLI
bin/magento import:run \
  --entity=catalog_product \
  --behavior=append \
  --validation-strategy=validation-skip-errors \
  --allowed-error-count=100 \
  --input-file=var/import/products.csv

# З указанням розділювача та кодування
bin/magento import:run \
  --entity=catalog_product \
  --behavior=add_update \
  --field-separator=";" \
  --multiple-value-separator="|" \
  --input-file=var/import/products_semicolon.csv

REST API для імпорту (Magento 2.3+):

# Створення job через API
curl -X POST "https://example.com/rest/V1/import/csv" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "source": {
      "entity": "catalog_product",
      "behavior": "append",
      "validationStrategy": "validation-stop-on-errors",
      "allowedErrorCount": "0",
      "csvData": "c2t1LG5hbWUscHJpY2U..."
    }
  }'

Налаштування експорту

Експорт в Magento 2 працює через такі ж фільтри, що й імпорт. Для великих каталогів потрібен асинхронний експорт через scheduled export:

// Програмний експорт через ExportFactory
use Magento\ImportExport\Model\ExportFactory;

class ProductExporter
{
    public function __construct(private ExportFactory $exportFactory) {}

    public function export(array $filters = []): string
    {
        $export = $this->exportFactory->create();
        $export->setData([
            'entity'        => 'catalog_product',
            'file_format'   => 'csv',
            'fields_enclosure' => 1,
        ]);

        $export->filterAttributeCollection(
            $export->getEntityAttributeCollection()
        );

        return $export->export();
    }
}

Імпорт 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

Типові проблеми та їх рішення

Memory exhausted: збільшіть memory_limit до 2–4G, зменшіть bunch_size до 200–300 записів.

URL key already exists: при поведінці append Magento перевіряє унікальність URL. Використовуйте add_update або очистіть таблицю url_rewrite перед імпортом.

Invalid value for Attribute Set: значення в attribute_set_code повинне точно совпадати з іменем в базі — регістр важливий.

Повільна індексація після імпорту: при режимі індексаторів realtime кожен bunch запускає індексацію. Переключіть на schedule, виконайте імпорт, потім запустіть індексацію вручну:

bin/magento indexer:reindex catalog_product_attribute catalog_product_price catalogsearch_fulltext catalog_product_category

Термін виконання

  • Налаштування та тест імпорту до 1 000 SKU: 1 день
  • Розробка кастомного адаптера для ERP-синхронізації: 3–5 днів
  • Налаштування scheduled import з моніторингом помилок: 2–3 дні
  • Міграція каталогу 50 000+ SKU з іншої платформи: 5–10 днів