Импорт прайсов поставщиков в интернет-магазин: каталог, который наполняется сам
Импорт прайсов поставщиков в интернет-магазин держится не на кнопке «скачать файл», а на единственном ключе – значении, по которому позиция узнается и между источниками, и между обновлениями. Есть ключ – каталог живет по расписанию сам: новые позиции появляются, сняты прячутся, цены и остатки подтягиваются. Нет ключа — начинается сопоставление руками, и именно он съедает большую часть бюджета. Поэтому начинаем с ваших реальных файлов, а не с перечня форматов.
из ваших реальных прайсов, а не по описанию словами
после бесплатного аудита
Стоимость
30
Гарантия
дней после подписания акта
из ваших реальных прайсов, а не по описанию словами
С чего начинаем
единственный ключ: артикул, штрихкод или код производителя
На чем держится импорт
5 830
Измеренный объем каталога
товаров, подтверждено двумя методами, 31.07.2026
прячем, а не удаляем — адрес остается живым
Снятые позиции
10–30
Срок работ
рабочих дней от утверждения правил
бесплатный аудит прайсов, 3–5 рабочих дней
Перед сметой
Этапы работы
Прозрачные этапы с согласованием на каждом шагу
Общий срок:10–30 дней
1
Правила и схема сопоставления
1–3 рабочих дня
Фиксируем в письменном виде: ключ, приоритет источников, наценку, поля под защитой, судьбу снятых позиций. Это самый дешевый этап и самый дорогой, если его пропустить.
2
Обработчик прайсов: прием и маппинг полей
3–10 рабочих дней
Чтение ваших форматов, нормализация ключа, раскладка параметров по атрибутам, промежуточная таблица соответствий. Здесь же решаем, что делать со строчками без ключа.
3
Цены, наценка и защита ручных полей
1–4 рабочих дня
Правило наценки с округлением, сведение цен и остатков между источниками, список полей, которые прайс не трогает. Проверяем на позициях, которые вы правили руками.
4
Тестовый прогон на копии каталога
2–4 рабочих дня
Полный прогон на копии с разбором отчета: сколько сопоставилось, что создалось лишнего, какие строчки выпали. Правки после этого прогона – норма, а не признак ошибки.
5
Боевой запуск и расписание
1–3 рабочих дня
Первый прогон на живом каталоге с выключенным созданием новых товаров, затем расписание, порции, паузы и блокировка параллельных запусков.
6
Две недели на живых данных и передача
2–6 рабочих дней
Смотрим отчеты реальных прогонов, доказываем правила под то, что поставщики присылают на самом деле, отдаем инструкцию менеджеру.
Технологии и интеграции
На чём строим и с чем это соединяется
Стек
OpenCart 3.x и 4.x – обработчик пишем под ядро. Ограничения: после обновления ядра его проверяют
PHP и MySQL – несколько тысяч строк проходят порциями. Ограничение: тяжелый XLSX съедает память
Разбор XML, CSV, XLSX. Ограничение: PDF и скан не читает никто
Промежуточная таблица сопоставления. Ограничения: после смены поставщика ее чистят руками
cron с отделкой по частям. Ограничение: расписание молчит, если за ним не присматривать
Очередь задач под большой прайс. Ограничение: параллельные прогоны нужно блокировать
Журнал импорта. Ограничение: показывает, что прогон отработал, а не что правильны данные
Интеграции
прайсы поставщиков
выгрузка по ссылке
файлы из почты
FTP-каталог поставщика
1С/BAS
XML-фид на маркетплейсы
Google Merchant Center
Telegram — отчет после прогона
Что входит
Полный перечень работ и того, что вы получаете на выходе
Прием прайсов в ваших форматах: таблица, XML, CSV, ссылки, вложения из почты, файл на FTP — конвертировать руками больше ничего не нужно.
Нормализация ключа перед сопоставлением: регистр, пробелы и дефисы сводятся к одному виду, поэтому AB-1200 и ab 1200 остаются одним товаром.
Промежуточная таблица соответствий: раз сопоставленная позиция дальше узнается сама, ручная работа остается только на новых строчках.
Правило пересечения ассортимента: чья цена главная, чей остаток главный, что делать при несовпадении — каталог перестает прыгать между поставщиками.
Правило наценки — общее, по категориям или поставщикам, с округлением до обычного вида ценника.
Раскладка характеристик по отдельным полям вместо сваливания в описание: после импорта фильтр в категории действительно что-то фильтрует.
Защита ручных правок: явный перечень полей, которые прайс не трогает никогда – ваше заглавие, ваше описание, ваше фото.
Обработка отснятых позиций: товар исчезает с витрины, остается в базе и возвращается одним движением, когда появится у поставщика.
Импорт по расписанию порциями с паузами и пропуском неизмененных строк по хэшу: обновление идет ночью и трогает только то, что действительно изменилось.
Отчет после каждого прогона: добавлен, обновлен, скрыт, не сопоставлен и по какой причине в почту или мессенджер.
Тестовый прогон на копии каталога к боевому запуску, письменная инструкция менеджеру, оплата по этапам, гарантия 30 календарных дней.
Когда эта услуга не подходит
Что не входит в работу — чтобы не было сюрпризов на сдаче
Договоренности с поставщиками о формате выгрузки – это ваша зона переговоров.
Написание описаний и съемка продуктов, которых в прайсе нет.
Ручная доказательство несопоставимых позиций: контентная работа, считается отдельно.
Ответственность за ошибки в данных поставщика.
Хостинг, домен, эквайринг.
Кому подходит
Ситуации, в которых эта услуга даёт результат
Сценарий 1 из 5
Прайсы лежат в почте, а каталог обновляет менеджер
Файлы приходят в понедельник, менеджер открывает их попеременно и переносит цены в админку. На двух сотнях позиций это пол дня, на двух тысячах — неделя, которой ни у кого нет. Импорт забирает именно эту работу, оставляя человеку только не сопоставившиеся строки.
Разберём вашу ситуацию на бесплатном аудите
Сценарий 2 из 5
Поставщиков несколько, и та же позиция есть в трех файлах
Здесь задача уже не техническая, а о правилах: чья цена главная, чей остаток считать настоящим, что делать, когда один снял товар, а другой нет. Эти решения принимаете вы, мы переносим их в код и показываем, как они ведут себя на реальных разногласиях.
Сценарий 3 из 5
Вы торгуете чужим складом
Остатки не ваши и меняются без вашего участия, поэтому частота обновления важнее всего остального. Честно о границе: между двумя прогонами всегда есть окно, в которое товар успевают купить после того, как он закончился у поставщика. Окно сокращается, к нулю не сводится.
Сценарий 4 из 5
Каталог вырос, и ручное ведение просто не успевает
Измеренный нами оптовый каталог – 5 830 товаров; соседний, косметический – 3 947 позиций, 166 брендов и 47 категорий. На таких объемах вопрос не в том, автоматизировать ли, а в том, с какой периодичностью и какими порциями гонять обновление.
Сценарий 5 из 5
Описания уже переписаны под поиск, и терять их нельзя
Самый частый страх перед первым импортом — и легче всего решаемая вещь. Поля разделяются на две группы еще до разработки: то, что приходит из прайса, и принадлежащее сайту навсегда. Вторая группа прайсом не перезаписывается вообще.
Обработчик под ваши прайсы против коробочного модуля импорта
Чем этот вариант отличается от альтернативы
Коробочный модуль импортаНаш подход
Несколько источников одновременнов основном профиль на файл, пересечение ассортимента не предусмотреносводятся в одну таблицу соответствий по единому ключу
Защита ручных полейчасто перезаписывает все, что нашел в файлесписок полей, которые прайс не трогает, задается явно
Снятые позицииудаление или ничего — по усмотрению автора модуляпрячем, адрес остается живым
Строки, которые не сопоставилисьтихо пропускаютсяостаются в отчете с причиной
Формат прайса изменилсяждете автора, если он еще поддерживает сборник под ваше ядроправим мы, по своей же документации
Расход на стартениже: лицензия и вечер настроек — на одном опрятном прайсе этого действительно достаточновысшее: это разработка под ваши файлы
Бесплатный аудит ваших прайсов
Мы берём ваши реальные файлы и смотрим, что из них можно собрать автоматически, а что придется доказывать руками. Это не теоретическая оценка – это работа с теми же таблицами, которые вам присылают еженедельно.
Что мы измеряем
Форматы и регулярностьВ чем приходят прайсы, как часто обновляются, стабильна ли структура файла. Прайс, в котором еженедельно меняется порядок столбцов, требует отдельной обработки.
Единственный ключ товараЕсть ли артикул, штрихкод или код производителя, по которому позиция узнается между источниками и между обновлениями. Без ключа автоматическое сопоставление невозможно, и это главная развилка.
Полнота атрибутовЕсть ли в прайсе характеристики отдельными столбцами или все лежит в названии. От этого зависит, заработает ли фильтр после импорта.
Сечение ассортиментаСколько позиций присутствует в нескольких прайсах одновременно и по какой цене их брать. Это правило следует принять к разработке.
Объем и скоростьСколько позиций обрабатывается за один прогон и выдержит ли это сервер? Для ориентира: в измеренном нами оптовом каталоге 5830 товаров подтверждены двумя независимыми методами — и именно такой объем удобно обновлять частями, а не одним прогоном.
Что произойдет со снятыми позициямиТовар исчез из прайса – его удалить, скрыть или пометить как отсутствующий. Удаление ломает адреса, которые уже в поиске, поэтому по умолчанию мы скрываем.
Что вы получаете
Разбор ваших файлов: какие из них берутся автоматически, что требует доведения руками.
Схема сопоставления: по какому ключу позиции сводятся между источниками.
Правила обновления: перезаписываемый прайсом, а остающийся вашим навсегда.
Разговор на 30-40 минут по документу.
Срок: 3–5 рабочих дней
Почему это бесплатно
Потому что оценить импорт без ваших файлов невозможно: разница между аккуратным прайсом и таблицей с объединенными ячейками – это разница в несколько раз по трудоемкости.
Что дальше
После аудита – сумма и срок, договор, счет, акт. Первый импорт производим на тестовой площадке и показываем результат до того, как что-нибудь попадет в боевой каталог.
Короткая форма: контакт и адрес сайта
Не нашли свой случай?
Опишите, как это устроено у вас, — ответим, подходит ли «Импорт прайсов поставщиков в каталог» и что это значит в вашей ситуации. Без брифа и без звонка: один вопрос, один ответ.
Договор, акт и гарантия 30 дней
На каждый проект письменный договор: объём, сроки, сумма, порядок приёмки. После сдачи — акт и счёт, затем 30 календарных дней гарантии.
ФОП и безналичный расчёт
Исполнитель — зарегистрированный ФОП. Оплата на счёт с закрывающими документами.
Права и доступы — ваши
Код, дизайн и материалы переходят к вам после полной оплаты. Домен, хостинг, репозиторий оформляем на вас.
Портал клиента вместо переписки
Во время работы вы получаете доступ к порталу: договоры, счета, акты и статус проекта в одном месте.
Заказчики из Европы
Среди работ — проекты для Норвегии, Болгарии, Молдовы и Испании.
Цифры, которые можно проверить
Каждый кейс в портфолио — со ссылкой на живой сайт и техническим замером.
Сначала аудит, потом сумма
Прайса на сайте нет намеренно: объём одной и той же работы у двух клиентов отличается кратно.
Говорим «нет», когда не уверены
Если задача не наша или срок нереальный — скажем сразу.
Что влияет на стоимость
Почему две одинаковые на вид задачи считаются по-разному
Количество источниковОдин прайс – один разбор. Пять прайсов — пять разных наборов названий одних и тех же характеристик и пять представлений о том, как пишется артикул. Работа растет отсюда, а не количество позиций.
Качество ключаЗаполненный уникальный артикул во всех источниках – сопоставление настраивается за день. Пустые артикулы означают нечеткое сравнение под названием и производителем плюс ручной довод первой партии.
Состояние файлаРавная машинная таблица читается сразу. Excel с объединенными ячейками, подзаголовками внутри таблицы и изменяющимся порядком столбцов разбирается отдельным кодом и проверяется на каждом прогоне.
Сечение ассортиментаИсточники не пересекаются – каждое живет отдельно. Та же позиция в трех прайсах добавляет слой правил по цене, остатку и приоритету, и каждое правило нужно протестовать на реальных разногласиях.
Где лежат характеристикиОтдельные столбцы становятся атрибутами почти дословно. Когда все слито в название типа Дрель 650 Вт синий, разбор пишется под каждого поставщика отдельно и никогда не работает безупречно.
Объем и частотаНесколько тысяч позиций раз в сутки – обычное расписание. Десятки тысяч несколько раз в день требуют передачи только измененных строк, очереди и разведения с пиковыми часами.
Кейсы
Задачи и результат в цифрах — все показатели сняты нашим замером
оптовый поставщик товаров из Китая, B2B-каталог почти 6 тыс. позиций
Задача
Держать на сайте оптовый ассортимент, который бизнес-клиент берет сам: большой каталог, понятные условия доставки и краткий путь от поиска позиции до заявки.
Решение
Магазин на OpenCart 3 с двумя языковыми версиями и отдельной картой сайта на каждую. Разметка поиска по сайту, хлебные крошки и блок вопросов и ответов в микроразметке. Оплата наложенным платежом и наличными при получении, четыре способа доставки, чат и виджет обратного звонка.
Результат
Измерение 31.07.2026. В каталоге 5 830 товаров, и цифра подтверждена двумя независимыми способами: штатный поиск платформы дал 58 страниц по 100 позиций и еще 30, карта сайта — по 6 234 адреса на каждый из двух языков, итого 12 468. Первый ответ сервера 506,3 мс, 5 м2 КБ HTML. Границу называем прямо: мы мерили каталог и скорость, а не работу импорта. Цифра полезна другим – она показывает, какой масштаб уже нет смысла обновлять одним пролетом.
оптовый магазин косметики для бьюти-индустрии, каталог почти 4 тыс. позиций
Задача
Собрать каталог под профессиональных покупателей: навигация по брендам и категориям, оптовые цены, быстрое оформление на большом ассортименте.
Решение
Магазин на OpenCart с канонической картой сайта, объявленной в robots.txt. Оплата через платежный сервис, наложенным платежом и на банковский счет, две службы доставки. Структурированы данные магазина с контактами и графиком, две версии языка с переключателем.
Результат
Измерение 31.07.2026. 3 947 товаров, 166 брендов и 47 категорий - 4 167 адресов в канонической карте сайта, два последовательных замера дали одинаковое число. TTFB 576,8 мс при 192,4 КБ HTML. И найден дефект, ровно из того класса, что рождается при нескольких параллельных источниках данных: рядом живет устаревшая карта на 7 782 записи, в которой только 2 755 уникальных адресов (2 454 повторены по три раза) и примерно 2 706 товарных против 3 947 в канонической. Одновременно дублированная и неполная.
Что нужно от вас
Без этого не начнём — лучше подготовить заранее
1Реальные прайсы всех поставщиков в том виде, как вы их получаете, с почтой, странными названиями файлов и всем остальным.
2Правило наценки и округления цен, включая исключения по категориям, если они есть.
3Решения по пересечению ассортимента: чья цена главная, чей остаток главный, или суммируются остатки разных поставщиков.
4Список полей, которые вы правите руками и которые прайса трогать нельзя.
5Доступ к сайту, базе и хостингу, а также место под копию каталога для тестового прогона.
6Один человек, который будет отвечать за каталог после запуска: несопоставимые строки кто-то должен разбирать еженедельно.
Если чего-то из этого нет — скажите, подскажем, как собрать или сделаем сами отдельной задачей.
Частые вопросы
Что спрашивают чаще всего — с конкретными ответами
В прайсе нет артикулов – что делать?
Это основная неувязка, и решается она ужаснее, чем хотелось бы. Без единого ключа позиции сопоставляются под названием и производителем нечетким сравнением, а часть руками через промежуточную таблицу соответствий. Раз сопоставленная позиция дальше узнается сама, поэтому основная нагрузка приходится на первый запуск. Но честно: попросить артикулы у поставщика дешевле любой разработки, и начать стоит именно с этого письма.
Импорт перезапишет мои описания и фотографии?
Не должен, и эта настройка, а не побочный эффект. Поля разделяем на две группы до начала работ: то, что приходит из прайса (цена, остаток, наличие), и то, что принадлежит сайту навсегда (ваше название, ваше описание, ваше фото). Вторая группа не перезаписывается ни одним пролетом. Если список не задать явно, по умолчанию поведение у большинства готовых модулей противоположное — они затирают все, что нашли в файле.
Тот же товар в трех прайсах — по какой цене брать?
По правилу, которое вы задаете: самая низкая цена, конкретный приоритетный поставщик или тот, у кого сейчас есть остаток. Принять его следует к разработке, потому что от него зависит структура сопоставления. Отдельно договариваемся об остатках: скучать по источникам или брать максимальный. И еще один вопрос, который обычно вспоминают поздно: что делать, когда один поставщик снял товар, а другой нет.
Что будет с товарами, пропавшими из прайса?
По умолчанию прячем, а не удаляем. Удаленная позиция забирает с собой адрес, который уже мог быть в индексе, и вместо приносившей переходы страницы вы получаете 404. Скрытая остается в базе и возвращается одним движением, когда товар снова появится. Удаление имеет смысл как плановую чистку раз в год, когда понятно, что поставщик эту линейку больше не возит.
Большой прайс не положит сайт?
Не положит, если не пытаться проглотить файл целиком. Импорт идет порциями с паузами по расписанию, а не изменившиеся с прошлого раза строки вообще не трогаются — разница между «обновили 5 000 товаров» и «обновили 120» именно здесь. Измеренный нами оптовый каталог на 5 830 товаров – примерно та граница, после которой полный прогон за раз на среднем хостинге ощущается в скорости сайта.
Как я увижу, что прогон прошел верно?
Из отчета после каждого прогона: добавлено, обновлено, скрыто, не сопоставлено и по какой причине. Последняя строка самая важная — именно она показывает, где прайс изменился и где нужно ваше внимание. Отчет присылаем в почту или мессенджер, потому что в админку за ним не ходит никто. Предел тоже честен: журнал подтверждает, что прогон отработал, а не что данные поставщика правильны.
Остатки после импорта станут точными?
Точными настолько, насколько точен прайс. Импорт не исправляет чужой учет: если поставщик отдает устаревший остаток, сайт быстро и аккуратно покажет устаревший остаток. Плюс периодичность между двумя прогонами остается окно, в которое позицию успевают заказать после того, как она закончилась. Сокращается это частотой обновления, а не архитектурой и полностью не исчезает никогда.
Новые товары сразу появятся в поиске?
Появятся в каталоге и в карте сайта – это не то же, что в поиске. Google прямо пишет, что карта сайта помогает найти страницы, но не гарантирует ни сканирование, ни индексацию. Карточка, собранная из строки прайса, в которой только название и цена, конкурирует с десятком таких же карточек в соседних магазинах. Импорт дает страницам существовать, спрос на них дает контент.
А фильтр в категории после импорта заработает?
Заработает, если характеристики приезжают по отдельным столбцам. Когда параметры слиты в название, мы разбираем название – и этот разбор никогда не бывает безупречным, часть приходится доказывать руками. Второе, о чем следует знать заранее: фильтры плодят комбинации адресов, поэтому канонические адреса и правила для robots закладываются одновременно с импортом, иначе в индекс поедут тысячи почти одинаковых страниц.
Отправьте прайсы поставщиков в том виде, как вы их получаете.
В ответ разбор файлов, схема сопоставления, правила обновления и оценка работ по этапам. Если из файлов видно, что сначала нужно просить у поставщика статьи, скажем это первым же письмом.
Прайса на сайте нет намеренно: объём той же работы у двух клиентов отличается в разы, и цифра «от» в этом случае ничего не объясняет. Сначала бесплатный аудит — считаем ваши страницы, дубли и скорость, — потом называем сумму и срок и фиксируем их в договоре.