Импорт 100K-1M товаров на Битрикс без падений и таймаутов
Загружаем гигантские каталоги на 1С-Битрикс без падений и таймаутов: пакетная обработка и шаговый импорт, прямые SQL-вставки, highload-блоки для характеристик, дельта-обновления и контроль памяти. Миллион товаров импортируется стабильно и быстро.
Где загрузка гигантского каталога ломается
Стандартный импорт рассчитан на тысячи позиций, а не на сотни тысяч и миллионы. На большом каталоге он упирается в таймауты, нехватку памяти и блокировки базы. Мы перестраиваем загрузку под объём.
Импорт 100K-1M товаров на Битрикс: что это и зачем
Высокопроизводительный импорт — это загрузка каталога на 1С-Битрикс, перестроенная под объём в сотни тысяч и миллионы товаров. Стандартный механизм импорта рассчитан на тысячи позиций: он пишет товары по одной записи, на каждой строке запускает пересчёт цен, переиндексацию поиска, обновление кэша и события модулей. На небольшом каталоге это незаметно, но на гигантском объёме умножается в колоссальную работу, упирается в таймаут сервера, съедает память и роняет загрузку на середине. Мы перестраиваем этот процесс так, чтобы миллион позиций загружался стабильно, быстро и без падений.
В основе подхода — несколько приёмов, которые вместе дают кратное ускорение. Каталог дробится на порции и грузится короткими шагами по таймеру: ни один шаг не длится дольше отведённого времени, поэтому таймаут невозможен в принципе. Запись идёт прямыми пакетными SQL-вставками, минуя тяжёлый поштучный механизм, — это ускоряет загрузку в десятки раз. Сотни характеристик товаров выносятся в highload-блоки, рассчитанные на большие объёмы, чтобы не раздувать инфоблок. А обновления каталога идут дельтой: грузятся только изменившиеся позиции, цены и остатки, а не весь каталог целиком.
Из чего складывается высокопроизводительный импорт
Под капотом загрузка объединяет несколько взаимосвязанных механизмов, каждый из которых снимает свой кусок нагрузки. Пакетная обработка и шаговый импорт убирают таймауты. Прямые SQL-вставки ускоряют запись в базу. Highload-блоки разгружают каталог от сотен свойств. Отключение лишних обработчиков и индексов на время загрузки избавляет от повторяющейся тяжёлой работы. Очереди и фоновые агенты уводят импорт в фон, не мешая покупателям. А дельта-обновления и контроль ресурсов делают регулярную загрузку лёгкой и предсказуемой.
Главные функциональные узлы импорта:
- пакетная обработка и шаговый импорт по таймеру — без таймаутов на любом объёме каталога;
- прямые пакетные SQL-вставки для записи в базу в десятки раз быстрее поштучной;
- highload-блоки для хранения сотен характеристик без раздувания инфоблока;
- отключение лишних обработчиков и индексов на время массовой загрузки;
- очереди и фоновые агенты, которые грузят каталог в фоне, не блокируя сайт;
- дельта-обновления цен и остатков с контролем памяти и времени выполнения.
Кому нужен высокопроизводительный импорт
Перестройка загрузки окупается там, где каталог перерос возможности стандартного импорта. Это интернет-магазины электроники и техники, автозапчастей, строительных материалов, маркетплейсы и агрегаторы — все, у кого десятки и сотни тысяч позиций, множество характеристик и частые обновления цен и остатков. Чем больше каталог и чем чаще он меняется, тем заметнее эффект: загрузка перестаёт падать, обновления укладываются в окно, а сервер не уходит в отказ в час пик.
Отдельная ценность — для проектов с поставкой из нескольких источников. Когда прайсы приходят от разных поставщиков, из учётной системы и с маркетплейсов, ручное сведение и медленная загрузка становятся узким местом. Высокопроизводительный импорт объединяет источники, грузит их дельтой и держит каталог свежим без ручной рутины и простоев. Если ваш каталог уже тормозит сайт, разумно параллельно заняться и его ускорением, и перестройкой загрузки.
Как устроена разработка и запуск
Работу мы начинаем с аудита текущей загрузки: замеряем объём, время, потребление памяти, смотрим, где импорт падает и что именно его тормозит. На основе замеров проектируем схему — пакетную обработку, highload-блоки под характеристики и правила дельта-обновлений. Затем пишем шаговый импорт с прямыми вставками, очередями, агентами и контролем ресурсов, прогоняем его на полном объёме каталога в нагрузочном тесте и только после этого переключаем на него рабочий сайт.
Важная часть подхода — безопасность данных и отсутствие правок ядра. Логику импорта мы выносим в собственные модули и агенты, поэтому обновления Битрикса проходят без конфликтов, а highload-блоки и прямые вставки используем штатными средствами платформы. Шаговый импорт сохраняет точку остановки, поэтому при сбое продолжает с прерванного места, а не начинает заново. Перед крупными изменениями делаем резервную точку, ведём подробные логи по строкам и настраиваем оповещения о результатах загрузки.
Результат перестройки импорта — это управляемая и предсказуемая загрузка каталога, которая держит миллион позиций без падений и таймаутов, обновляет цены и остатки дельтой за минуты и не роняет сайт под нагрузкой. Контент-менеджеры перестают бороться с зависшими импортами, сервер остаётся стабильным, а каталог всегда свежий и готов расти дальше без упора в производительность.
Что входит в высокопроизводительный импорт
Перестраиваем загрузку каталога под реальный объём: от пакетной обработки и прямых вставок до highload-блоков и дельта-обновлений. Миллион позиций грузится стабильно и быстро.
Путь данных при высокопроизводительном импорте
Большой прайс разбивается на пакеты, грузится короткими шагами прямыми вставками в базу, характеристики уходят в highload-блоки, а обновления идут дельтой — без таймаутов и падений.
Стандартный импорт против высокопроизводительного
| Критерий | Стандартный импорт Битрикса | Самописный скрипт на коленке | Импорт от студии B2Bsite |
|---|---|---|---|
| Объём и стабильность | Падает по таймауту на 100K+ строк | Иногда доходит до конца, но непредсказуемо | Шаговый импорт по таймеру — без таймаутов на 1M+ |
| Скорость записи в базу | Пишет по одной записи через API | Прямые вставки есть, но без обработки ошибок | Прямые пакетные SQL-вставки, ускорение до двадцати раз |
| Контроль ресурсов сервера | Память не контролируется, сервер уходит в отказ | Память течёт, нужен ручной перезапуск | Контроль памяти и времени держит сервер стабильным |
| Обновление цен и остатков | Только полная перезаливка каталога | Дельта если и есть, то хрупкая и без логов | Дельта-обновления грузят только изменения |
| Хранение характеристик | Характеристики в инфоблоке раздувают базу | Highload-блоки обычно не используются | Характеристики в highload-блоках, база остаётся лёгкой |
Что меняется в цифрах
Ориентиры по проектам нашей команды. Точные показатели оценим на бесплатном аудите вашей текущей загрузки каталога.
Ценность для каждой роли
Загрузка без сбоев
Большой каталог грузится до конца и не падает на середине из-за таймаута или памяти.
Быстрые обновления
Цены и остатки обновляются дельтой за минуты, а не за часы полной перезаливки.
Понятный статус
Видно прогресс импорта, число загруженных позиций и ошибки по конкретным строкам.
Меньше ручной правки
Характеристики раскладываются по highload-блокам автоматически, без ручного разбора.
Стабильный сервер
Контроль памяти и времени не даёт импорту положить сайт в час пик загрузки.
Прямые вставки
Запись пакетами в базу минует тяжёлые обработчики и работает в разы быстрее.
Очереди и агенты
Загрузка идёт фоном через очереди и агенты, не блокируя витрину покупателям.
Прозрачные логи
Логи по шагам и строкам помогают быстро находить и чинить проблемные позиции.
Каталог всегда свежий
Цены и наличие обновляются часто и быстро, а не раз в сутки тяжёлой перезаливкой.
Сайт не падает
Загрузка миллиона позиций перестаёт ронять сайт и терять заказы в пик.
Рост ассортимента
Можно наращивать каталог до миллиона позиций, не упираясь в производительность.
Предсказуемые сроки
Импорт идёт по расписанию и укладывается в окно, а не зависает на полночи.
Как мы перестраиваем импорт каталога
Сколько занимает перестройка импорта
Сколько стоит высокопроизводительный импорт
Стоимость зависит от объёма каталога, числа характеристик и сложности источника данных. Ниже — ориентиры; точную смету присылаем после короткого брифа, бесплатно.
Пакетная обработка и шаговый импорт для каталога до 200K товаров.
- Аудит текущей загрузки
- Шаговый импорт по таймеру
- Контроль памяти и времени
- Базовые прямые вставки
Загрузка 100K-1M товаров с highload-блоками и дельтой.
- Прямые пакетные SQL-вставки
- Highload-блоки для характеристик
- Дельта-обновления цен и остатков
- Отключение обработчиков на время загрузки
- Логи и оповещения об ошибках
Каталог более миллиона позиций с очередями и фоновыми агентами.
- Все возможности «Импорт под объём»
- Очереди и фоновые агенты
- Несколько источников данных
- Нагрузочное тестирование
- Сопровождение и развитие
Ускорение импорта от 90 000 ₽
Пакетная обработка и шаговый импорт для каталога до 200K товаров.
- Аудит текущей загрузки
- Шаговый импорт по таймеру
- Контроль памяти и времени
- Базовые прямые вставки
Популярный Импорт под объём от 180 000 ₽
Загрузка 100K-1M товаров с highload-блоками и дельтой.
- Прямые пакетные SQL-вставки
- Highload-блоки для характеристик
- Дельта-обновления цен и остатков
- Отключение обработчиков на время загрузки
- Логи и оповещения об ошибках
Импорт под нагрузку от 350 000 ₽
Каталог более миллиона позиций с очередями и фоновыми агентами.
- Все возможности «Импорт под объём»
- Очереди и фоновые агенты
- Несколько источников данных
- Нагрузочное тестирование
- Сопровождение и развитие
Дополнительные опции
| Дополнительный источник импорта (прайс, маркетплейс) | от 40 000 ₽ |
| Экспорт каталога в YML или маркетплейс | от 50 000 ₽ |
| Мониторинг импорта и оповещения в мессенджер | от 30 000 ₽ |
Сколько времени экономит быстрый импорт
Прикиньте, сколько часов в месяц уходит на загрузку и обновление каталога сейчас и сколько вернёт высокопроизводительный импорт. Быстрая загрузка освобождает людей и сервер.
Оценка по формуле: часы в месяц × доля экономии в процентах × стоимость часа. Это ориентир экономии на ручной работе и простоях, а не гарантия.
Подберём схему импорта под ваш каталог
Ответьте на несколько вопросов об объёме каталога, источнике данных и частоте обновлений — предложим оптимальную схему импорта и пришлём смету.
Кейсы высокопроизводительного импорта
Что говорят о перестройке импорта
На что можно рассчитывать по договору
Как меняется загрузка каталога после перестройки
Без решения
С решением от B2Bsite
Что именно мы делаем по импорту
Частые проблемы импорта — и наш ответ
Это не общие советы из интернета, а закономерности из реальных проектов с гигантскими каталогами. Каждый ответ — позиция нашей команды.
Перестроить импорт или мириться с падениями
Когда каталог переваливает за сотню тысяч позиций, у владельца магазина появляется неприятная привычка: следить за импортом по ночам. Загрузка то падает по таймауту, то роняет сервер нехваткой памяти, то занимает столько времени, что цены и остатки устаревают раньше, чем обновятся. Соблазн понятен — оставить всё как есть и просто перезапускать упавший импорт вручную. Но на большом каталоге это путь к постоянным простоям, устаревшим ценам и потерянным заказам. Ниже разбираем, почему стандартная загрузка не тянет объём, что именно меняет высокопроизводительный импорт и как мы строим его так, чтобы он работал годами.
Почему стандартный импорт не справляется с объёмом
Механизм импорта в Битриксе спроектирован под универсальность, а не под скорость на больших объёмах. Каждая позиция при загрузке проходит полный цикл: создаётся элемент инфоблока, пересчитываются цены, обновляется поисковый индекс, срабатывают события модулей, чистится кэш. На каталоге в несколько тысяч товаров эта работа незаметна. Но умножьте её на сотни тысяч строк — и получите колоссальный объём операций, который сервер физически не успевает выполнить за отведённое время. Процесс упирается в таймаут и обрывается, не дойдя до конца.
Вторая беда — память. Стандартная загрузка накапливает объекты и данные по ходу работы, и на больших объёмах потребление растёт неконтролируемо, пока процесс не упрётся в лимит и не рухнет. Третья — блокировки: пока идёт тяжёлая загрузка, база занята, и сайт начинает тормозить или отдавать ошибки покупателям. В итоге владелец каталога оказывается перед выбором: грузить по ночам и молиться, чтобы не упало, или дробить каталог на куски руками. И то, и другое — не решение, а костыль.
Что меняет высокопроизводительный импорт
Высокопроизводительный импорт переписывает саму схему загрузки. Вместо поштучной записи через тяжёлый механизм мы дробим каталог на порции и грузим их короткими шагами по таймеру. Каждый шаг укладывается в безопасное время и сохраняет точку остановки, поэтому таймаут становится невозможным, а при сбое процесс продолжает с прерванного места. Запись идёт прямыми пакетными 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 и фиксированная смета