Наполнение сайта вручную или программой - вопрос, который клиент задаёт мне сразу после сдачи макета, когда дизайн готов, а каталог пустой. За несколько лет работы с Tilda и WordPress я собирал карточки товаров всеми тремя способами: вбивал руками, настраивал импорт из CSV и YML, писал парсеры на Python под каталоги поставщиков. Ниже разберу, чем эти подходы отличаются на практике и как не потратить бюджет впустую.
По теме статьи
Готовое решение
AI-чатбот для сайта на Claude - отвечает как ваш менеджер, работает 24/7
Подключу к вашему сайту чат-бота на Claude API. Бот отвечает на вопросы клиентов голосом вашего бренда, знает каталог и условия доставки, забирает лиды в CRM или Telegram.
от25 000 ₽
Консультация
Разобраться перед стартом
Созвон 30-60 минут: разбор задачи, аудит текущего решения, рекомендации по стеку. В финале — документ с планом.
от3 000 ₽
Наполнение сайта вручную: когда такой подход оправдан
Ручной ввод карточек через админку Tilda или WooCommerce имеет смысл при каталоге до 50-80 позиций. На одну карточку с обработкой фото, уникальным описанием и заполнением характеристик уходит от 7 до 15 минут в зависимости от сложности товара. Для 50 позиций это 6-12 часов работы, для 100 уже сутки-полторы. При таком объёме ручной ввод даёт то, что не даст ни один импорт: уникальные тексты под SEO без риска дублей с сайтом поставщика, точный подбор категорий и фильтров под структуру конкретного магазина.
Я рекомендую ручное наполнение handmade-магазинам, нишевым бутикам и любым проектам, где ассортимент меняется редко и каждая карточка требует индивидуального описания. На Tilda для этого хватает стандартного блока интернет-магазина, в WooCommerce - редактора товаров с полями атрибутов и вариаций. Как только каталог переваливает за 150-200 позиций или обновляется чаще раза в месяц, ручной ввод превращается в постоянную статью расходов на администратора, и тут уже выгоднее считать импорт или парсинг.
Импорт товаров из файла: CSV, Excel и YML-фиды
Если поставщик или бухгалтерия уже готовят прайс в 1С, экспорт в Excel или CSV решает задачу за несколько часов вместо нескольких дней ручного ввода. В WooCommerce встроенный импортёр (Товары -> Импорт) принимает CSV с сопоставлением колонок: название, артикул, цена, остаток, категория, ссылки на изображения. Формат YML, который придумали для Яндекс.Маркета, стал фактическим стандартом обмена между CMS и поставщиками: его отдают 1С-Битрикс, InSales и большинство B2B-каталогов оптовиков.
Пример минимального набора колонок для импорта в WooCommerce:
sku,name,regular_price,stock,categories,images
A-1024,Кроссовки беговые,4990,15,Обувь > Кроссовки,https://example.com/img/1024.jpg
На практике основное время уходит не на сам импорт, а на подготовку файла: приведение цен к нужной валюте и наценке, склейку дублирующихся артикулов, проверку категорий и загрузку изображений вместо битых ссылок. На каталоге в 500‑1000 товаров чистка данных перед первым импортом обычно занимает день-два работы, дальше повторный импорт при обновлении прайса делается за 20-30 минут.
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Парсинг каталога поставщика: как автоматизировать сбор данных
Парсинг нужен, когда поставщик не даёт ни YML, ни CSV, а только публичный каталог на своём сайте. Для статичных страниц хватает связки Python, requests и BeautifulSoup, для каталогов с подгрузкой через JavaScript использую Playwright, который рендерит страницу как настоящий браузер. Собранные данные складываю в CSV или сразу в базу, откуда они уже уходят в WooCommerce или Tilda через тот же импорт.
При разработке парсера закладываю соблюдение robots.txt и разумный rate-limit между запросами, чтобы не создавать нагрузку на чужой сервер и не попадать под блокировку по IP. Если сайт поставщика чувствителен к частоте запросов, добавляю ротацию IP через прокси-пул и рандомизацию отпечатка браузера - это снижает число ложных блокировок при долгой ежедневной синхронизации. Важный момент, который часто упускают: у парсера должна быть обработка ошибок и логирование, иначе при изменении верстки на сайте поставщика скрипт молча начнёт собирать пустые карточки.
Срок разработки такого скрипта под конкретный каталог - от 3 до 7 дней в зависимости от структуры сайта и количества категорий, которые нужно обойти. Если задача разовая - выгрузить каталог один раз и дальше вести его вручную - смысла городить сложную автоматизацию нет, достаточно точечного скрипта. Если нужен парсер, который переживёт смену вёрстки у поставщика и обновление структуры каталога, такую разработку под конкретный каталог поставщика обычно оформляю отдельным проектом с закладкой на поддержку.
Наполнение сайта вручную или программой: как выбрать метод
Собрал сравнение по трём способам на примере каталога в 500 товаров:
| Способ | Время на 500 товаров | Когда выбирать | Основной риск |
|---|---|---|---|
| Вручную | 40-80 часов | Уникальный ассортимент, редкие обновления | Растущие расходы на администратора |
| Импорт из файла | 1-2 дня на подготовку + 30 минут на повтор | Поставщик отдаёт CSV/YML/Excel | Грязные данные без чистки перед загрузкой |
| Парсинг сайта | 3-7 дней на разработку, дальше автоматически | Нет фида, только публичный каталог | Поломка при смене вёрстки у источника |
На практике редко использую один способ в чистом виде. Типичная связка для интернет-магазина на 300‑1000 SKU: базовую загрузку делаю парсером или импортом, а карточки топовых товаров, на которые идёт основной трафик, дорабатываю вручную - переписываю описание, добавляю свои фото. Это и объясняет, почему выбор между наполнением сайта вручную или программой чаще звучит как вопрос пропорции, а не категоричного «или».
Автоматическое обновление цен и остатков после запуска
Одноразовая загрузка каталога решает только половину задачи, вторая половина - держать цены и остатки актуальными. Для этого настраиваю сценарий в n8n: по расписанию скрипт забирает свежий YML-фид или прогоняет парсер повторно, сравнивает с текущими данными в магазине и обновляет только изменившиеся позиции через API WooCommerce или через Tilda API для блока интернет-магазина. При такой схеме менеджеру не нужно вручную перезаливать прайс каждый раз, когда у поставщика меняются цены.
Частота синхронизации зависит от ниши: для одежды с редкими прайс-листами хватает раза в сутки, для электроники или скоропортящихся товаров с плавающими остатками ставлю обновление раз в 1-2 часа. Отдельно слежу за товарами, которые закончились у поставщика: без автоматической синхронизации остатков магазин продолжает принимать заказы на то, чего физически нет на складе, а это прямой путь к возвратам и негативным отзывам.
Ошибки при наполнении каталога, которые дорого исправлять
Самая частая ошибка - копирование описаний с сайта поставщика один в один. Поисковик видит дублирующийся контент по всей нише и не ранжирует такие карточки, а переписывать 500 описаний постфактум дороже, чем сделать это на старте. Вторая по частоте проблема - отсутствие маппинга категорий: импортированные товары падают в одну общую категорию вместо структуры каталога, и покупатель не может ничего найти через фильтры.
Ещё разработчики без опыта запускают импорт сразу на весь каталог, а не на тестовую партию в 10-20 товаров. Ошибка в сопоставлении колонок на 500 позициях означает 500 карточек с перепутанными ценами и характеристиками, которые потом приходится вычищать вручную. И последнее: если парсер работает без логирования и уведомлений об ошибках, о поломке узнают не разработчики, а покупатели - когда видят на сайте нулевые остатки или устаревшие цены.
Частые вопросы
Сколько стоит наполнить интернет-магазин на 500 товаров?
Зависит от способа и состояния исходных данных. Разработка парсера под конкретный каталог поставщика начинается от 20 000 ₽, настройка регулярной автоматизации через n8n - от 25 000 ₽, а интернет-магазин под ключ с загрузкой каталога и настройкой всех интеграций - от 80 000 ₽.
Можно ли совмещать ручное наполнение и импорт из файла?
Да, и на практике это самый частый сценарий. Основной массив загружаю импортом или парсером, а карточки приоритетных товаров дорабатываю вручную: уникальные описания, свои фото, расширенные характеристики.
Что делать, если поставщик не даёт YML-фид?
Остаётся два варианта: попросить выгрузку в Excel или CSV вручную у менеджера поставщика, либо заказать парсер, который соберёт данные с публичного каталога на сайте поставщика. Второй вариант дороже на старте, зато не зависит от готовности менеджера присылать файлы каждый раз.
Как часто нужно обновлять каталог после парсинга?
Для товаров с нестабильными остатками - раз в 1-2 часа, для ассортимента с редкими изменениями прайса хватает суточной синхронизации. Периодичность настраивается через cron-задачу или сценарий в n8n и не требует ручного запуска.