БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»
Интеграции

Импорт 100K-1M товаров на Битрикс без падений и таймаутов

Загружаем гигантские каталоги на 1С-Битрикс без падений и таймаутов: пакетная обработка и шаговый импорт, прямые SQL-вставки, highload-блоки для характеристик, дельта-обновления и контроль памяти. Миллион товаров импортируется стабильно и быстро.

1 000 000+товаров за загрузку
до ×20ускорение импорта
без паденийшаговый импорт по таймеру
дельтаобновляем только изменения
1M строк пакет пакет пакет SQL Highload-блок характеристики товаров без таймаутов
Зачем нужен производительный импорт

Где загрузка гигантского каталога ломается

Стандартный импорт рассчитан на тысячи позиций, а не на сотни тысяч и миллионы. На большом каталоге он упирается в таймауты, нехватку памяти и блокировки базы. Мы перестраиваем загрузку под объём.

Импорт падает по таймауту: на 100K-1M строк процесс не успевает завершиться за отведённое время.
Шаговый импорт по таймеру и фоновые агенты дробят загрузку на короткие шаги и продолжают с того места, где остановились.
Загрузка съедает всю память и сервер уходит в отказ на середине каталога.
Пакетная обработка фиксированными порциями и контроль памяти не дают процессу выйти за лимит.
Каждый товар пишется в базу по одной записи через API — миллион позиций грузится сутками.
Прямые пакетные SQL-вставки и отключение лишних обработчиков ускоряют запись в десятки раз.
Сотни характеристик у каждого товара раздувают инфоблок и тормозят и импорт, и сайт.
Характеристики выносим в highload-блоки — лёгкое хранилище свойств, рассчитанное на большие объёмы.
Полная перезаливка каталога каждую ночь нагружает базу и блокирует сайт.
Дельта-обновления грузят только изменённые позиции, цены и остатки — нагрузка падает в разы.
Подробно об услуге

Импорт 100K-1M товаров на Битрикс: что это и зачем

Высокопроизводительный импорт — это загрузка каталога на 1С-Битрикс, перестроенная под объём в сотни тысяч и миллионы товаров. Стандартный механизм импорта рассчитан на тысячи позиций: он пишет товары по одной записи, на каждой строке запускает пересчёт цен, переиндексацию поиска, обновление кэша и события модулей. На небольшом каталоге это незаметно, но на гигантском объёме умножается в колоссальную работу, упирается в таймаут сервера, съедает память и роняет загрузку на середине. Мы перестраиваем этот процесс так, чтобы миллион позиций загружался стабильно, быстро и без падений.

В основе подхода — несколько приёмов, которые вместе дают кратное ускорение. Каталог дробится на порции и грузится короткими шагами по таймеру: ни один шаг не длится дольше отведённого времени, поэтому таймаут невозможен в принципе. Запись идёт прямыми пакетными SQL-вставками, минуя тяжёлый поштучный механизм, — это ускоряет загрузку в десятки раз. Сотни характеристик товаров выносятся в highload-блоки, рассчитанные на большие объёмы, чтобы не раздувать инфоблок. А обновления каталога идут дельтой: грузятся только изменившиеся позиции, цены и остатки, а не весь каталог целиком.

Из чего складывается высокопроизводительный импорт

Под капотом загрузка объединяет несколько взаимосвязанных механизмов, каждый из которых снимает свой кусок нагрузки. Пакетная обработка и шаговый импорт убирают таймауты. Прямые SQL-вставки ускоряют запись в базу. Highload-блоки разгружают каталог от сотен свойств. Отключение лишних обработчиков и индексов на время загрузки избавляет от повторяющейся тяжёлой работы. Очереди и фоновые агенты уводят импорт в фон, не мешая покупателям. А дельта-обновления и контроль ресурсов делают регулярную загрузку лёгкой и предсказуемой.

Главные функциональные узлы импорта:

  • пакетная обработка и шаговый импорт по таймеру — без таймаутов на любом объёме каталога;
  • прямые пакетные SQL-вставки для записи в базу в десятки раз быстрее поштучной;
  • highload-блоки для хранения сотен характеристик без раздувания инфоблока;
  • отключение лишних обработчиков и индексов на время массовой загрузки;
  • очереди и фоновые агенты, которые грузят каталог в фоне, не блокируя сайт;
  • дельта-обновления цен и остатков с контролем памяти и времени выполнения.

Кому нужен высокопроизводительный импорт

Перестройка загрузки окупается там, где каталог перерос возможности стандартного импорта. Это интернет-магазины электроники и техники, автозапчастей, строительных материалов, маркетплейсы и агрегаторы — все, у кого десятки и сотни тысяч позиций, множество характеристик и частые обновления цен и остатков. Чем больше каталог и чем чаще он меняется, тем заметнее эффект: загрузка перестаёт падать, обновления укладываются в окно, а сервер не уходит в отказ в час пик.

Отдельная ценность — для проектов с поставкой из нескольких источников. Когда прайсы приходят от разных поставщиков, из учётной системы и с маркетплейсов, ручное сведение и медленная загрузка становятся узким местом. Высокопроизводительный импорт объединяет источники, грузит их дельтой и держит каталог свежим без ручной рутины и простоев. Если ваш каталог уже тормозит сайт, разумно параллельно заняться и его ускорением, и перестройкой загрузки.

Как устроена разработка и запуск

Работу мы начинаем с аудита текущей загрузки: замеряем объём, время, потребление памяти, смотрим, где импорт падает и что именно его тормозит. На основе замеров проектируем схему — пакетную обработку, highload-блоки под характеристики и правила дельта-обновлений. Затем пишем шаговый импорт с прямыми вставками, очередями, агентами и контролем ресурсов, прогоняем его на полном объёме каталога в нагрузочном тесте и только после этого переключаем на него рабочий сайт.

Важная часть подхода — безопасность данных и отсутствие правок ядра. Логику импорта мы выносим в собственные модули и агенты, поэтому обновления Битрикса проходят без конфликтов, а highload-блоки и прямые вставки используем штатными средствами платформы. Шаговый импорт сохраняет точку остановки, поэтому при сбое продолжает с прерванного места, а не начинает заново. Перед крупными изменениями делаем резервную точку, ведём подробные логи по строкам и настраиваем оповещения о результатах загрузки.

Результат перестройки импорта — это управляемая и предсказуемая загрузка каталога, которая держит миллион позиций без падений и таймаутов, обновляет цены и остатки дельтой за минуты и не роняет сайт под нагрузкой. Контент-менеджеры перестают бороться с зависшими импортами, сервер остаётся стабильным, а каталог всегда свежий и готов расти дальше без упора в производительность.

Состав

Что входит в высокопроизводительный импорт

Перестраиваем загрузку каталога под реальный объём: от пакетной обработки и прямых вставок до highload-блоков и дельта-обновлений. Миллион позиций грузится стабильно и быстро.

Пакетная обработка и шаговый импорт

Каталог дробится на порции и грузится короткими шагами по таймеру — без таймаутов на любом объёме.

Прямые SQL-вставки

Запись пакетами напрямую в базу минует тяжёлый API и ускоряет загрузку в десятки раз.

Highload-блоки для характеристик

Сотни свойств товаров хранятся в лёгких highload-блоках, рассчитанных на большие объёмы.

Отключение обработчиков и индексов

На время загрузки гасим лишние обработчики, переиндексацию и пересчёт — а потом включаем обратно.

Очереди и фоновые агенты

Импорт идёт фоном через очереди и агенты, не блокируя витрину и заказы покупателей.

Дельта-обновления и контроль ресурсов

Грузим только изменённые позиции, цены и остатки, держа память и время в безопасных рамках.

Как это работает

Путь данных при высокопроизводительном импорте

Большой прайс разбивается на пакеты, грузится короткими шагами прямыми вставками в базу, характеристики уходят в highload-блоки, а обновления идут дельтой — без таймаутов и падений.

Прайс1M строк Пакетышаги по таймеру SQL-вставкипрямо в базу Highloadхарактеристики Дельтатолько изменения Память и время под контролем, обработчики и индексы отключены на время загрузки
Прайс → пакеты → прямые вставки → highload-блоки → дельта-обновления.
Сравнение

Стандартный импорт против высокопроизводительного

Критерий Стандартный импорт БитриксаСамописный скрипт на коленкеИмпорт от студии B2Bsite
Объём и стабильность Падает по таймауту на 100K+ строкИногда доходит до конца, но непредсказуемоШаговый импорт по таймеру — без таймаутов на 1M+
Скорость записи в базу Пишет по одной записи через APIПрямые вставки есть, но без обработки ошибокПрямые пакетные SQL-вставки, ускорение до двадцати раз
Контроль ресурсов сервера Память не контролируется, сервер уходит в отказПамять течёт, нужен ручной перезапускКонтроль памяти и времени держит сервер стабильным
Обновление цен и остатков Только полная перезаливка каталогаДельта если и есть, то хрупкая и без логовДельта-обновления грузят только изменения
Хранение характеристик Характеристики в инфоблоке раздувают базуHighload-блоки обычно не используютсяХарактеристики в highload-блоках, база остаётся лёгкой
Эффект после перестройки импорта

Что меняется в цифрах

1M+
товаров за одну загрузку без падений
до ×20
ускорение записи через прямые вставки
−90%
нагрузки на базу при дельта-обновлениях
0
таймаутов на шаговом импорте по таймеру

Ориентиры по проектам нашей команды. Точные показатели оценим на бесплатном аудите вашей текущей загрузки каталога.

Кому и что даёт

Ценность для каждой роли

Загрузка без сбоев

Большой каталог грузится до конца и не падает на середине из-за таймаута или памяти.

Быстрые обновления

Цены и остатки обновляются дельтой за минуты, а не за часы полной перезаливки.

Понятный статус

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

Меньше ручной правки

Характеристики раскладываются по highload-блокам автоматически, без ручного разбора.

Стабильный сервер

Контроль памяти и времени не даёт импорту положить сайт в час пик загрузки.

Прямые вставки

Запись пакетами в базу минует тяжёлые обработчики и работает в разы быстрее.

Очереди и агенты

Загрузка идёт фоном через очереди и агенты, не блокируя витрину покупателям.

Прозрачные логи

Логи по шагам и строкам помогают быстро находить и чинить проблемные позиции.

Каталог всегда свежий

Цены и наличие обновляются часто и быстро, а не раз в сутки тяжёлой перезаливкой.

Сайт не падает

Загрузка миллиона позиций перестаёт ронять сайт и терять заказы в пик.

Рост ассортимента

Можно наращивать каталог до миллиона позиций, не упираясь в производительность.

Предсказуемые сроки

Импорт идёт по расписанию и укладывается в окно, а не зависает на полночи.

Этапы работы

Как мы перестраиваем импорт каталога

01

Аудит загрузки

Замеряем текущий импорт: объём, время, потребление памяти, где падает и что тормозит.

02

Проектирование схемы

Проектируем пакетную обработку, highload-блоки под характеристики и схему дельта-обновлений.

03

Разработка импорта

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

04

Нагрузочный тест

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

05

Запуск и расписание

Ставим импорт на расписание, настраиваем дельту, логи и оповещения об ошибках.

06

Передача и поддержка

Передаём исходники и документацию, при необходимости сопровождаем и развиваем импорт.

Сроки

Сколько занимает перестройка импорта

1–2 дня Аудит текущей загрузки и замеры производительности
1
2–4 дня Проектирование схемы импорта и highload-блоков
2
1–2 недели Разработка шагового импорта и прямых вставок
3
3–5 дней Нагрузочный тест на полном объёме каталога
4
2–3 дня Запуск по расписанию, дельта и оповещения
5
Тарифы

Сколько стоит высокопроизводительный импорт

Стоимость зависит от объёма каталога, числа характеристик и сложности источника данных. Ниже — ориентиры; точную смету присылаем после короткого брифа, бесплатно.

Ускорение импорта
от 90 000 ₽
Срок: от 1 недели

Пакетная обработка и шаговый импорт для каталога до 200K товаров.

  • Аудит текущей загрузки
  • Шаговый импорт по таймеру
  • Контроль памяти и времени
  • Базовые прямые вставки
Популярный выбор
Импорт под объём
от 180 000 ₽
Срок: от 2–3 недель

Загрузка 100K-1M товаров с highload-блоками и дельтой.

  • Прямые пакетные SQL-вставки
  • Highload-блоки для характеристик
  • Дельта-обновления цен и остатков
  • Отключение обработчиков на время загрузки
  • Логи и оповещения об ошибках
Импорт под нагрузку
от 350 000 ₽
Срок: от 4 недель

Каталог более миллиона позиций с очередями и фоновыми агентами.

  • Все возможности «Импорт под объём»
  • Очереди и фоновые агенты
  • Несколько источников данных
  • Нагрузочное тестирование
  • Сопровождение и развитие
Ускорение импорта от 90 000 ₽
Срок: от 1 недели

Пакетная обработка и шаговый импорт для каталога до 200K товаров.

  • Аудит текущей загрузки
  • Шаговый импорт по таймеру
  • Контроль памяти и времени
  • Базовые прямые вставки
Популярный Импорт под объём от 180 000 ₽
Срок: от 2–3 недель

Загрузка 100K-1M товаров с highload-блоками и дельтой.

  • Прямые пакетные SQL-вставки
  • Highload-блоки для характеристик
  • Дельта-обновления цен и остатков
  • Отключение обработчиков на время загрузки
  • Логи и оповещения об ошибках
Импорт под нагрузку от 350 000 ₽
Срок: от 4 недель

Каталог более миллиона позиций с очередями и фоновыми агентами.

  • Все возможности «Импорт под объём»
  • Очереди и фоновые агенты
  • Несколько источников данных
  • Нагрузочное тестирование
  • Сопровождение и развитие

Дополнительные опции

Дополнительный источник импорта (прайс, маркетплейс) от 40 000 ₽
Экспорт каталога в YML или маркетплейс от 50 000 ₽
Мониторинг импорта и оповещения в мессенджер от 30 000 ₽
Расчёт выгоды

Сколько времени экономит быстрый импорт

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

Экономия в месяц, ₽ 0 ₽

Оценка по формуле: часы в месяц × доля экономии в процентах × стоимость часа. Это ориентир экономии на ручной работе и простоях, а не гарантия.

Умный расчёт

Подберём схему импорта под ваш каталог

Ответьте на несколько вопросов об объёме каталога, источнике данных и частоте обновлений — предложим оптимальную схему импорта и пришлём смету.

Вопрос 1
Загрузка вопроса…

Примеры работ

Кейсы высокопроизводительного импорта

Электроника и техника

Импорт 1,2 млн товаров без падений

Перевели загрузку на шаговый импорт и прямые SQL-вставки, миллион позиций грузится за окно вместо суток.

1,2 млнОбъём
×18Ускорение
0Падений
Автозапчасти

Highload-блоки под 400 характеристик

Вынесли сотни свойств в highload-блоки и подключили дельту, обновление цен и остатков ускорилось в разы.

400+Характеристик
−92%Обновление
600KКаталог
Маркетплейс

Дельта-импорт каждые 15 минут

Настроили очереди и фоновые агенты — цены и наличие обновляются дельтой, не блокируя витрину и заказы.

15 минЧастота
−90%Нагрузка базы
нетПростоев
Отзывы клиентов

Что говорят о перестройке импорта

«Каталог на 1,2 миллиона позиций раньше грузился сутками и постоянно падал по ночам. После перестройки на шаговый импорт и прямые вставки загрузка укладывается в окно и идёт без сбоев. Перестали дежурить у админки.»

Дмитрий К. Руководитель интернет-магазина электроники

«Вынесли сотни характеристик в highload-блоки и подключили дельту. Цены и остатки теперь обновляются за минуты, а не за часы, и сайт при этом не тормозит. Логи и оповещения сделали процесс полностью прозрачным.»

Елена С. Руководитель отдела контента, автозапчасти

«Нам нужна была частая загрузка цен с нескольких прайсов. Настроили очереди и фоновые агенты, дельта-обновления идут каждые пятнадцать минут и не блокируют витрину. Каталог всегда свежий, заказы не теряются.»

Артём В. Технический директор маркетплейса
Почему мы

На что можно рассчитывать по договору

Опыт на гигантских каталогах

Грузим каталоги от сотен тысяч до миллиона позиций и знаем, где такая загрузка ломается.

Без правки ядра Битрикса

Логику импорта выносим в свои модули и агенты, поэтому обновления платформы проходят без конфликтов.

Фиксированная смета

Состав и стоимость закрепляем до старта, доработки сверх ТЗ согласуем отдельно.

Код и доступы — ваши

Передаём исходники импорта, настройки и документацию, без привязки к подрядчику.

Было / Стало

Как меняется загрузка каталога после перестройки

Без решения

Импорт падает по таймауту на сотнях тысяч строк
Загрузка съедает память и роняет сервер
Каждый товар пишется по одной записи через API
Полная перезаливка каталога каждую ночь
Сотни характеристик раздувают инфоблок

С решением от B2Bsite

Шаговый импорт по таймеру грузит миллион без падений
Контроль памяти держит процесс в безопасных рамках
Прямые пакетные SQL-вставки ускоряют запись до двадцати раз
Дельта-обновления грузят только изменения за минуты
Характеристики вынесены в лёгкие highload-блоки
Состав работ

Что именно мы делаем по импорту

Аудит текущей загрузки и замеры производительности
Пакетная обработка и шаговый импорт по таймеру
Прямые пакетные SQL-вставки в базу
Highload-блоки для сотен характеристик товаров
Отключение лишних обработчиков и индексов на время загрузки
Очереди и фоновые агенты для загрузки в фоне
Дельта-обновления цен, остатков и новых позиций
Контроль памяти и времени выполнения импорта
Логи по строкам, оповещения и передача исходников
База знаний

Частые проблемы импорта — и наш ответ

Это не общие советы из интернета, а закономерности из реальных проектов с гигантскими каталогами. Каждый ответ — позиция нашей команды.

Таймауты

Импорт падает по таймауту на сотнях тысяч строк

Наш ответ

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

Память

Загрузка съедает память и роняет сервер на середине каталога

Наш ответ

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

Скорость

Миллион товаров грузится сутками через поштучную запись

Наш ответ

Заменяем поштучную запись через API на прямые пакетные SQL-вставки и отключаем лишние обработчики на время загрузки. Это ускоряет запись в десять-двадцать раз, и каталог укладывается в окно загрузки вместо суток.

Характеристики

Сотни свойств у каждого товара раздувают инфоблок и тормозят сайт

Наш ответ

Выносим характеристики в highload-блоки — лёгкое хранилище, рассчитанное на большие объёмы. Инфоблок остаётся компактным, импорт и витрина работают быстрее, а каталог свободно растёт по числу свойств.

Экспертный взгляд

Перестроить импорт или мириться с падениями

Когда каталог переваливает за сотню тысяч позиций, у владельца магазина появляется неприятная привычка: следить за импортом по ночам. Загрузка то падает по таймауту, то роняет сервер нехваткой памяти, то занимает столько времени, что цены и остатки устаревают раньше, чем обновятся. Соблазн понятен — оставить всё как есть и просто перезапускать упавший импорт вручную. Но на большом каталоге это путь к постоянным простоям, устаревшим ценам и потерянным заказам. Ниже разбираем, почему стандартная загрузка не тянет объём, что именно меняет высокопроизводительный импорт и как мы строим его так, чтобы он работал годами.

Почему стандартный импорт не справляется с объёмом

Механизм импорта в Битриксе спроектирован под универсальность, а не под скорость на больших объёмах. Каждая позиция при загрузке проходит полный цикл: создаётся элемент инфоблока, пересчитываются цены, обновляется поисковый индекс, срабатывают события модулей, чистится кэш. На каталоге в несколько тысяч товаров эта работа незаметна. Но умножьте её на сотни тысяч строк — и получите колоссальный объём операций, который сервер физически не успевает выполнить за отведённое время. Процесс упирается в таймаут и обрывается, не дойдя до конца.

Вторая беда — память. Стандартная загрузка накапливает объекты и данные по ходу работы, и на больших объёмах потребление растёт неконтролируемо, пока процесс не упрётся в лимит и не рухнет. Третья — блокировки: пока идёт тяжёлая загрузка, база занята, и сайт начинает тормозить или отдавать ошибки покупателям. В итоге владелец каталога оказывается перед выбором: грузить по ночам и молиться, чтобы не упало, или дробить каталог на куски руками. И то, и другое — не решение, а костыль.

Что меняет высокопроизводительный импорт

Высокопроизводительный импорт переписывает саму схему загрузки. Вместо поштучной записи через тяжёлый механизм мы дробим каталог на порции и грузим их короткими шагами по таймеру. Каждый шаг укладывается в безопасное время и сохраняет точку остановки, поэтому таймаут становится невозможным, а при сбое процесс продолжает с прерванного места. Запись идёт прямыми пакетными SQL-вставками — данные пишутся сразу порциями, минуя поштучный цикл, и это ускоряет загрузку в десятки раз. На время массовой вставки мы временно гасим лишние обработчики и переиндексацию, а затем запускаем их один раз для всего объёма.

Сотни характеристик товаров мы выносим в highload-блоки — специальное хранилище Битрикса, рассчитанное на большие объёмы записей. Инфоблок при этом остаётся лёгким, и от этого выигрывают и импорт, и сам сайт. А регулярные обновления идут дельтой: система сравнивает новый прайс с базой и грузит только изменившиеся позиции, цены и остатки. Вместо ночной перезаливки миллиона строк база получает несколько тысяч изменений за минуты. Если каталог уже подтормаживает витрину, имеет смысл параллельно заняться его ускорением — об этом ниже.

Когда перестройка окупается, а когда хватит малого

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

Как мы ведём работу

Старт — это аудит текущей загрузки. Мы замеряем объём каталога, время импорта, потребление памяти, смотрим, на каком этапе процесс падает и что именно его тормозит. На основе замеров проектируем схему: пакетную обработку, структуру highload-блоков под характеристики и правила дельта-обновлений. Дальше пишем шаговый импорт с прямыми вставками, очередями, агентами и контролем ресурсов, прогоняем его на полном объёме каталога в нагрузочном тесте и только после этого переключаем рабочий сайт. Подробнее общий процесс импорта и экспорта данных мы описали на странице импорта и экспорта данных.

Особое внимание — источнику данных. Прайсы приходят в разных форматах — Excel, CSV, XML, JSON, YML, CommerceML — и от качества разбора зависит надёжность всей загрузки. Под каждый источник мы подбираем устойчивый парсер, настраиваем сопоставление товаров по артикулу или внешнему коду и правила для пропавших позиций. Если форматов несколько, объединяем их в единый поток. Когда задача — именно настроить разбор разных форматов прайсов, мы выделяем её в отдельную работу по импорту товаров из Excel, CSV, XML, JSON, YML и CommerceML.

Импорт и скорость самого каталога

Быстрый импорт решает половину задачи — загрузить миллион позиций. Вторая половина в том, чтобы такой каталог быстро работал на витрине: открывались разделы, фильтры, карточки товаров. Гигантский каталог без оптимизации тормозит независимо от того, как он загружен, поэтому импорт и ускорение каталога часто идут в связке. Highload-блоки, которые мы используем при импорте, как раз и разгружают каталог, но для полноценной скорости витрины нужна отдельная работа — кэширование, оптимизация фильтров и запросов. Этим занимается услуга оптимизации каталога 100K-1M товаров, и мы рекомендуем смотреть на импорт и скорость как на две стороны одной задачи.

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

Надёжность и контроль

Большой каталог — это ежедневная работа, поэтому к надёжности импорта мы относимся серьёзно. Шаговый импорт сохраняет точку остановки и при сбое продолжает с прерванного места, а не теряет весь прогресс. Проблемные строки не роняют загрузку, а откладываются в отдельный отчёт, чтобы их можно было разобрать, — миллион позиций грузится дальше, даже если несколько десятков оказались битыми. Импорт ведёт подробные логи по строкам и шлёт оповещения о результатах на почту или в мессенджер, превращаясь из чёрного ящика в прозрачный процесс. Перед крупными изменениями делаем резервную точку, чтобы неудачную загрузку можно было откатить.

Возражения, которые мы слышим чаще всего

«У нас и так грузится, просто медленно и иногда падает — может, оставить как есть». Медленная загрузка с периодическими падениями — это скрытые потери: устаревшие цены, недоступный товар, ночные дежурства у админки и риск уронить сайт в пик. Высокопроизводительный импорт убирает эти потери, и на большом каталоге он окупается быстрее, чем кажется. Точную картину даёт аудит загрузки — мы замеряем, сколько времени и нервов уходит сейчас.

«Боимся, что новый импорт сломает данные или сам сайт». Поэтому мы и разрабатываем его параллельно с работающим сайтом, тестируем на полном объёме каталога и переключаемся только после нагрузочного теста. Перед изменениями делаем резервную точку, ведём логи и предусматриваем откат. Ядро Битрикса не правим — логику выносим в свои модули и агенты, поэтому обновления платформы проходят без конфликтов.

«Это слишком сложно и дорого для нашего магазина». Поэтому мы и разбиваем работу на уровни: можно начать с ускорения текущей загрузки, а highload-блоки, дельту и очереди добавить позже, по мере роста каталога. Умный расчёт на этой странице помогает заранее прикинуть, сколько часов и денег вернёт быстрый импорт именно в вашем случае.

Сценарии, под которые мы строим импорт

Каталоги бывают очень разными, и схему загрузки мы подстраиваем под вашу модель. Для магазина электроники с миллионом позиций и сотнями характеристик ядром становятся highload-блоки и прямые вставки — иначе ни импорт, ни витрина не справятся с объёмом свойств. Для автозапчастей на первый план выходит сопоставление по артикулам из нескольких прайсов и аккуратная обработка совместимостей. Для маркетплейса критична частота: цены и остатки нужно обновлять дельтой каждые несколько минут, не блокируя витрину, поэтому в центре схемы — очереди и фоновые агенты.

Отдельный сценарий — поставка из множества источников. Когда прайсы приходят от десятков поставщиков, из учётной системы и с площадок, важно не просто быстро грузить, а свести всё в единый каталог без дублей и потерь. Мы настраиваем правила сопоставления, приоритеты источников и обработку пропавших позиций, а дельта-обновления держат такой сводный каталог свежим без ручной рутины. Все эти сценарии живут на одной архитектуре импорта, которую мы проектируем с запасом по объёму, чтобы переход с двухсот тысяч на миллион позиций не требовал переписывать загрузку заново.

Этапы работы по шагам

Чтобы проект был предсказуемым, мы разбиваем его на понятные этапы с результатом на каждом. Первый этап — аудит загрузки: замеряем объём, время и память, фиксируем, где падает и что тормозит. Второй — проектирование: описываем пакетную обработку, структуру highload-блоков и схему дельты, согласуем правила сопоставления и обработки пропавших позиций. Третий — разработка: пишем шаговый импорт с прямыми вставками, очередями, агентами и контролем ресурсов. Четвёртый — нагрузочный тест на полном объёме каталога, чтобы убедиться в отсутствии падений и таймаутов.

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

С чего начать

Начните с разговора. Расскажите об объёме вашего каталога, источниках данных и частоте обновлений — мы замерим текущую загрузку, покажем, где она теряет время, предложим схему высокопроизводительного импорта под вашу задачу и пришлём смету в течение рабочего дня. Аудит загрузки бесплатный, и по его итогам вы получите честную картину: что перестраивать в первую очередь, какой эффект это даст и за какой срок окупится. Мы не навязываем максимальный вариант: если по замерам достаточно точечного ускорения, так и скажем, а полную перестройку с highload-блоками, очередями и дельтой предложим только там, где она реально окупается объёмом и частотой обновлений. Обсудим ваш проект — и превратим импорт миллиона товаров из ночной головной боли в управляемый процесс, который грузит каталог стабильно и быстро без падений, таймаутов и ночных дежурств у админки.

Вопросы и ответы

Частые вопросы о высокопроизводительном импорте

Что такое высокопроизводительный импорт простыми словами? +

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

Что такое highload-блок и зачем он для характеристик? +

Highload-блок — это специальное хранилище данных в Битриксе, рассчитанное на большие объёмы записей. В отличие от свойств инфоблока, оно не раздувает основную структуру каталога и быстро работает на сотнях тысяч строк. Сотни характеристик товаров — цвет, размер, совместимость, параметры — удобно хранить именно в highload-блоках, чтобы и импорт, и сам сайт оставались лёгкими.

Что значит «шаговый импорт» и «пакетная обработка»? +

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

Что такое дельта-обновление каталога? +

Дельта-обновление — это загрузка только изменившихся данных, а не всего каталога целиком. Система сравнивает новый прайс с тем, что уже в базе, и грузит лишь новые позиции, изменённые цены и остатки. Это снимает основную нагрузку: вместо тяжёлой ночной перезаливки миллиона строк база получает несколько тысяч изменений за минуты.

Чем ваш импорт отличается от стандартного импорта Битрикса? +

Стандартный импорт рассчитан на тысячи позиций и пишет товары по одной записи через полный набор обработчиков. На каталоге в сотни тысяч строк он упирается в таймауты, нехватку памяти и блокировки. Наш импорт перестраивает этот процесс: пакетная обработка, прямые SQL-вставки, highload-блоки, отключение лишних обработчиков на время загрузки и дельта-обновления. За счёт этого он держит миллион позиций без падений.

Почему стандартный импорт падает на больших каталогах? +

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

Насколько быстрее работают прямые SQL-вставки? +

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

Как вы контролируете память во время импорта? +

Мы грузим каталог фиксированными порциями и после каждой освобождаем память, очищаем кэши и сбрасываем накопленные объекты. Процесс отслеживает потребление и не выходит за безопасный лимит, поэтому сервер не уходит в отказ. Именно неконтролируемый рост памяти чаще всего роняет самописные скрипты на больших объёмах — у нас это закрыто на уровне архитектуры импорта.

Зачем отключать обработчики и индексы на время загрузки? +

Переиндексация поиска, пересчёт цен и срабатывание событий на каждой строке многократно замедляют массовую загрузку. На время импорта мы их временно гасим, грузим данные, а затем запускаем переиндексацию и пересчёт один раз для всего объёма. Это безопасно и даёт кратное ускорение, потому что тяжёлая работа делается один раз, а не миллион раз подряд.

Что такое очереди и фоновые агенты в импорте? +

Очередь — это список задач на загрузку, которые обрабатываются по порядку в фоне. Фоновый агент — встроенный в Битрикс механизм, который запускает эти задачи по расписанию, не мешая работе сайта. Вместе они позволяют грузить каталог незаметно для покупателей: витрина и заказы работают как обычно, а импорт идёт своим темпом в фоне.

Может ли импорт идти, пока сайт работает под нагрузкой? +

Да. За счёт шаговой загрузки в фоне, контроля ресурсов и прямых вставок импорт не блокирует витрину и не конкурирует с покупателями за базу. Тяжёлые операции мы выносим в спокойные часы или растягиваем мелкими шагами, а дельта-обновления вообще касаются лишь небольшого числа изменившихся строк, поэтому сайт остаётся отзывчивым.

Из каких источников вы умеете грузить каталог? +

Грузим из прайсов в форматах Excel, CSV, XML, JSON и YML, из выгрузок CommerceML, из учётных систем и из API поставщиков и маркетплейсов. Источник анализируем на аудите и подбираем под него надёжный парсер. При необходимости настраиваем загрузку сразу из нескольких источников с объединением данных по артикулам.

Как часто можно обновлять цены и остатки? +

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

Что происходит с товарами, которых больше нет в прайсе? +

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

Как сопоставляются товары при обновлении? +

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

Можно ли грузить изображения и большие описания? +

Да. Изображения подгружаются по ссылкам или из выгрузки, и мы делаем это аккуратно, чтобы скачивание картинок не тормозило основную загрузку данных. Большие описания и характеристики грузятся вместе с товаром, причём объёмные наборы свойств выносим в highload-блоки, чтобы не раздувать инфоблок и не замедлять сайт.

Что будет, если импорт прервётся на середине? +

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

Как вы находите ошибки в конкретных строках? +

Импорт пишет подробные логи: какая строка не загрузилась и почему — неверный формат, отсутствующий артикул, дубль, проблема с ценой. Проблемные позиции не роняют всю загрузку, а откладываются в отдельный отчёт, чтобы их можно было разобрать и поправить. Так миллион строк грузится дальше, даже если несколько десятков оказались битыми.

Будут ли оповещения о результатах загрузки? +

Да. Настраиваем оповещения о завершении импорта, числе загруженных и пропущенных позиций и об ошибках — на почту или в мессенджер. Так контент-менеджер сразу видит, что каталог обновился успешно, и узнаёт о проблемах, не заходя в админку. Это превращает импорт из чёрного ящика в управляемый и прозрачный процесс.

Не сломается ли импорт при обновлении Битрикса? +

Нет. Логику импорта мы выносим в собственные модули и агенты и не правим ядро платформы напрямую, поэтому обновления Битрикса проходят без конфликтов. Highload-блоки и прямые вставки используем штатными средствами платформы. Это закладывается в архитектуру с первого дня и снижает стоимость поддержки в будущем.

Можно ли откатить неудачную загрузку? +

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

Сколько стоит перестроить импорт каталога? +

Ускорение импорта для каталога до 200K позиций обычно начинается от 90 000 рублей, полноценный импорт 100K-1M товаров с highload-блоками и дельтой — от 180 000. Цена зависит от объёма каталога, числа характеристик и сложности источника данных. Точную смету присылаем после короткого брифа.

За какой срок реально запустить новый импорт? +

Ускорение текущей загрузки делаем от одной недели, полноценный высокопроизводительный импорт с highload-блоками и дельтой — от двух-трёх недель. Точный срок зависит от объёма каталога и числа источников, и мы фиксируем его в смете до старта работ.

Нужно ли останавливать сайт на время работ? +

Нет. Новый импорт разрабатываем и тестируем параллельно с работающим сайтом, а переключаемся на него после нагрузочного теста на полном объёме каталога. Сама загрузка идёт фоном через очереди и агенты, поэтому ни разработка, ни последующая работа импорта не требуют остановки магазина.

Подойдёт ли решение, если каталог будет расти? +

Да, мы и проектируем импорт с запасом по объёму. Пакетная обработка и highload-блоки рассчитаны на большие и растущие каталоги, поэтому переход с 200 тысяч на миллион позиций не потребует переписывать загрузку заново. Архитектуру согласуем с учётом ваших планов по росту ассортимента.

Что мы получаем по итогу проекта? +

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

Демо-доступ

Покажем импорт на вашем каталоге

Разберём, как ускорить загрузку именно вашего каталога: пакетная обработка, прямые вставки, highload-блоки и дельта-обновления. Покажем результат на близких по объёму задачах.

Начать проект

Обсудим импорт вашего каталога?

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

  • Ответим в течение рабочего дня
  • Бесплатный аудит процессов и расчёт
  • NDA и фиксированная смета