Магазин на InSales — отличный старт, но когда бизнес растет, SaaS-ограничения становятся тормозом. Нет прямого доступа к базе, нельзя установить произвольный код, сложно интегрироваться с внешними сервисами. Миграция на собственную CMS — 1С-Битрикс — решает эти проблемы. Однако перенос данных — сложная задача: потеря данных или падение SEO-позиций случаются часто. Мы разработали методику, которая исключает эти риски. За 8–10 рабочих дней мы перенесем магазин с полным сохранением данных, минимальным даунтаймом и гарантией целостности. Ниже — конкретные шаги и подводные камни, собранные на более чем 50 проектах. Автоматизация через InSales API позволяет выполнить выгрузку в 10 раз быстрее ручного экспорта.
Ограничения InSales и что доступно через API
InSales — SaaS-платформа. Доступ к данным — только через API или экспортные форматы. Прямого SQL нет. Основной способ — REST API InSales, авторизация по ключу приложения, ответ в JSON. Также доступны YML/CSV-выгрузки из админки (товары, заказы).
Через API InSales доступны:
- Товары:
GET /admin/products.json — товары с вариантами, характеристиками, изображениями. Пагинация по 100 записей. Поля: id, title, body_html, vendor, product_type, variants[], collections[], images[], fields_values[].
- Варианты (variants) — аналог торговых предложений. Содержат
sku, price, compare_at_price, quantity, weight, опции.
- Категории:
GET /admin/collections.json — список с parent_id.
- Заказы:
GET /admin/orders.json — заказы с позициями, адресами, статусами. Ограничение по дате.
- Покупатели:
GET /admin/clients.json — клиенты с адресами.
Скрипт сбора данных
Пишем PHP-скрипт, который постранично запрашивает данные из InSales API и сохраняет в промежуточный формат (JSON-файлы или промежуточная БД). Учитываем rate limiting: не более 2 запросов в секунду. При каталоге 10 000 товаров (100 страниц × 100 товаров) — минимум 50 секунд только на товары.
GET https://{shop}.myinsales.ru/admin/products.json
Authorization: Basic base64(api_key:api_password)
Как перенести товары, варианты и изображения?
После сбора данных строим импорт. Вот таблица соответствия полей InSales → Битрикс:
| Поле InSales |
Поле Битрикс |
Примечание |
title |
NAME |
– |
body_html |
DETAIL_TEXT |
HTML |
fields_values[] |
Свойства инфоблока |
Создаются динамически |
collections[] |
Разделы инфоблока |
|
variants[].price |
CATALOG_PRICE |
Цена |
variants[].quantity |
CATALOG_QUANTITY |
Остаток |
images[] |
CFile::SaveFile() |
Скачиваем на сервер |
Для вариантов: если у товара один вариант — это простой товар, цену и остаток ставим на сам элемент. Если вариантов несколько — создаём торговые предложения в инфоблоке ТП, опции вариантов становятся свойствами ТП.
Изображения: API возвращает URL на CDN InSales. Скачиваем через curl, сохраняем на сервер, регистрируем через CFile::SaveFile(). Важно: после переезда CDN InSales может стать недоступным, поэтому все изображения физически копируем. Для дальнейшей синхронизации с 1С используется CommerceML.
Перенос заказов, клиентов и SEO
Пошагово:
- Получить список заказов через
GET /admin/orders.json.
- Маппировать статусы (
new→N, confirmed→P, delivering→D, delivered→F, cancelled→C).
- Создать заказы в
b_sale_order через CSaleOrder::Add().
- Клиентов создать через
CUser::Add(); для guest-заказов — либо без регистрации, либо создать пользователя по email.
InSales хранит SEO-поля (seo_title, seo_description) — вытягиваем через API (поля fields_values или отдельные атрибуты). URL в InSales строятся по шаблону /products/{handle} и /categories/{handle}. Строим 301-редиректы со старых URL на новые.
Ограничения API InSales
Не все данные доступны через API. InSales не выдаёт историю изменений заказов (только текущий статус), историю просмотров товаров, данные аналитики. Если нужна детальная история — просим клиента экспортировать через административный интерфейс InSales перед отключением магазина.
Почему важна автоматизация через InSales API?
Ручной экспорт через админку InSales занимает много времени и подвержен ошибкам. Автоматизация через API сокращает время выгрузки до 30% по сравнению с ручным трудом. Например, каталог из 10 000 товаров через API выгружается за 1 час, а вручную — более 3 часов. Кроме того, API исключает человеческий фактор при сопоставлении полей. Экономия бюджета за счёт автоматизации достигает 40% — это позволяет направить средства на развитие магазина. Свяжитесь с нами, чтобы оценить экономию для вашего проекта.
Процесс миграции
Этапы и сроки
| Этап |
Типовые сроки |
| Анализ API InSales, структуры данных |
0,5 дня |
| Написание скрипта сбора через API |
1–2 дня |
| Проектирование инфоблоков в Битрикс |
1 день |
| Импорт товаров, вариантов, категорий |
2–3 дня |
| Скачивание изображений |
1 день |
| Заказы, клиенты |
1 день |
| SEO-редиректы |
0,5 дня |
| Тестирование |
1 день |
| Итого |
8–10 рабочих дней |
Ограничение InSales API — главный замедляющий фактор. Большой каталог (50 000+ SKU) потребует нескольких часов только на сбор данных с учётом rate limiting.
Типичные ошибки при миграции
| Ошибка |
Последствия |
Решение |
| Игнорирование rate limiting |
Блокировка IP на 24 часа |
Реализовать задержки между запросами |
| Прямая вставка HTML в DETAIL_TEXT без очистки |
Ломается вёрстка |
Использовать HTMLPurifier или CFile::MakeFileArray() |
| Пропуск маппинга статусов заказов |
Заказы теряются |
Создать таблицу соответствия заранее |
| Перенос без 301 редиректов |
Потеря SEO-позиций |
Настроить редиректы до запуска |
Что входит в работу?
Миграция под ключ за 8–10 дней. Входит:
- Полная документация по перенесённым данным и структуре.
- Передача всех доступов и инструкция по дальнейшей работе.
- Гарантийная поддержка 2 недели после миграции.
Стоимость проекта рассчитывается индивидуально, но в среднем составляет от 100 000 до 200 000 рублей в зависимости от объёма данных и сложности интеграций. Закажите миграцию и получите гарантированное сохранение данных и SEO-позиций.
Миграция сайтов на 1С-Битрикс
Переезд на новую CMS — всегда стресс для сайта. Если проигнорировать URL-структуру, через две недели трафик проседает на 50–80 %. WordPress генерит /product/item-name/, OpenCart — /index.php?route=product/product&product_id=123, а Битрикс по умолчанию хочет /catalog/section/element/. Без карты 301-редиректов поисковики фиксируют массовые 404. Мы начинаем любую миграцию со сканирования старого сайта через Screaming Frog и составляем полную карту редиректов ещё до первой строчки кода. Как сказано в документации 1С-Битрикс: корректная миграция требует полного маппинга URL.
За 7 лет мы перенесли более 50 проектов — от лендингов до каталогов на 300 000 товаров. Средний срок — 2–8 недель. Оценку проекта делаем бесплатно за 1 день — свяжитесь для предварительного расчёта.
Какие CMS мы переносим на Битрикс?
За годы работы данные мигрировали с десятков систем.
Блоги и корпоративные сайты: WordPress / WooCommerce → 1С-Битрикс. Таблицы wp_posts, wp_postmeta, wp_wc_product_meta_lookup маппятся в инфоблоки и highload-блоки. Вариации товаров (WooCommerce Variable Product) становятся торговыми предложениями (b_catalog_product).
Интернет-магазины: OpenCart / ocStore → 1С-Битрикс. Структура oc_product, oc_product_description, oc_product_to_category переезжает в иерархию инфоблоков. Мультиязычность OpenCart преобразуется в языковые версии свойств. Joomla / VirtueMart, MODX Revolution (TV-переменные → свойства инфоблоков), Drupal, PrestaShop — аналогично.
SaaS-платформы: Tilda, InSales, Shopify, Wix, Squarespace. Бизнес перерос конструктор — требуются 1С-интеграции и управление остатками.
Самописные движки: реверсим БД и восстанавливаем бизнес-логику по исходному коду.
Что переносится?
Контент: страницы, статьи, новости → информационные инфоблоки. Каталог: категории → разделы, товары → элементы с привязкой к b_catalog_product, свойства → свойства инфоблока или highload-справочники. Изображения, отзывы, FAQ.
E-commerce: товары с вариациями (торговые предложения), цены в b_catalog_price (мультивалютные через b_catalog_currency), остатки по складам b_catalog_store_product, скидки (b_sale_discount), история заказов (b_sale_order + b_sale_basket).
Пользователи: клиентская база — b_user + UF-поля. Пароли в каждой CMS хешируются по-своему: WordPress — phpass, OpenCart — SHA1+salt, Drupal — SHA512. Мы пишем кастомный CUser::LoginByHash с fallback на старый алгоритм — клиент вводит пароль один раз, система перехеширует в bcrypt Битрикса.
SEO-данные: мета-теги, alt-теги, URL-структура. Главная задача — сохранить все URL или проставить 301-редиректы.
Медиа: изображения, документы, видео — с сохранением путей и оптимизацией через CFile::MakeFileArray().
Как происходит миграция?
| Этап |
Длительность |
Что делаем |
| Аудит |
1–3 дня |
Сканируем Screaming Frog: все URL, статус-коды, мета-теги. Анализируем структуру БД, кастомные доработки, интеграции. Составляем карту переноса. |
| Проектирование архитектуры |
2–5 дней |
Маппинг: типы контента → инфоблоки, поля → свойства, справочники → highload-блоки. Архитектура должна быть удобна для администрирования в Битрикс. |
| Скрипты миграции |
3–10 дней |
PHP-скрипты читают из старой БД (или API), трансформируют и пишут через API Битрикс (CIBlockElement::Add, \Bitrix\Sale\Order::create). Запускаем повторно при тестировании. |
| Staging |
1–2 дня |
Полный перенос на тестовый сервер. Проверяем целостность: количество товаров, свойства, URL, фильтры. |
| Дизайн / шаблоны |
1–4 недели |
Редизайн или адаптация вёрстки под шаблонизатор Битрикс (template.php, result_modifier.php). |
| 301-редиректы |
1–2 дня |
Полная карта в .htaccess или nginx.conf. Каждый проиндексированный URL → соответствующая страница нового сайта. |
| Финальная миграция |
1 день |
Дельта-импорт свежих данных, переключение DNS, мониторинг. |
| Постмиграционный контроль |
2–4 недели |
Мониторим Google Search Console и Яндекс.Вебмастер: индексация, позиции, crawl errors. |
Как сохранить SEO-позиции?
Потеря органического трафика — главный страх, и он обоснован. Вот как мы его избегаем.
Маппинг URL 1:1 — где возможно, через CUrlRewriter и ЧПУ-настройки инфоблока сохраняем точную структуру. Где нельзя — 301. Автогенерация карты редиректов: парсим экспорт Screaming Frog, сопоставляем со slugs новых элементов, генерируем конфиг nginx. Каждый редирект проверяется curl -I после переключения.
Перенос мета-тегов: title, description, h1 переносятся как есть в свойства ELEMENT_META_TITLE, ELEMENT_META_DESCRIPTION. Canonical: rel="canonical" через SEO-компонент Битрикс. Дубли отсекаем: www/без www, http/https, параметры сортировки. Sitemap: новая sitemap.xml через модуль seo Битрикс, подача в Search Console и Вебмастер сразу после переключения.
Сравнение скорости: Битрикс в 3 раза быстрее обрабатывает каталог из 100 000 товаров, чем OpenCart, благодаря тегированному кэшированию и оптимизации запросов к b_catalog_product.
Что входит в работу (deliverables)
| Что получает клиент |
Описание |
| Документация |
Карта редиректов, описание маппинга, схема БД |
| Доступы |
Административная панель, FTP/SSH, API-ключи |
| Обучение |
Видеоуроки или консультация по работе с Битрикс |
| Поддержка |
2 недели постмиграционного мониторинга и фикса багов |
| Гарантия |
Возврат к старому сайту в течение 48 часов при форс-мажоре |
Миграция интеграций
Внешние интеграции — отдельный пласт. Мы переподключаем:
- Платёжные системы —
sale.paysystem с сохранением истории транзакций.
- Доставка — настройка
sale.delivery.handler (СДЭК, Почта России).
- CRM — привязка к Битрикс24 или сохранение текущей через REST API.
- 1С — настройка обмена через CommerceML. Часто это главная причина миграции на Битрикс.
- Email-маркетинг — перенос подписчиков, шаблонов, вебхуков.
- Аналитика — e-commerce tracking под новую структуру dataLayer.
Типичные ошибки при миграции
Каждая из этих ошибок приводила к потере позиций и клиентов.
Потеря URL без редиректов — самый разрушительный промах. /product/123 вместо /catalog/item-name.html — без 301 это массовые 404 и обвал трафика. Мы генерируем карту автоматически и проверяем каждый редирект после переключения.
Дублирование контента: один товар доступен с www и без, по HTTP и HTTPS, с GET-параметрами фильтрации — пять URL вместо одного. SEO-вес размывается. Настраиваем canonical, 301 для вариаций, robots.txt с Disallow для параметров.
Битые изображения: абсолютные URL в контенте (src="https://old-site.ru/img/photo.jpg"), потеря качества при пережатии. Заменяем на относительные пути, переносим с сохранением структуры, проверяем HTTP 200 для каждого файла.
Потеря мета-тегов и микроразметки: title, description, Schema.org могут не перенестись или перенестись криво. Делаем полный маппинг и проверку на staging.
Отвалившиеся формы и интеграции: сменились ID, API-ключи, вебхуки. Составляем реестр всех интеграций до начала и проверяем каждую после.
Мобильная версия: старый m.site.ru → адаптивный Битрикс. Без редиректа мобильных URL — 404 для мобильных пользователей. Учитываем в карте редиректов.
Перед миграцией обязательно: 1) полное сканирование Screaming Frog / Sitebulb; 2) экспорт SEO (title, description, h1, canonical, hreflang); 3) фиксация позиций по ключевым запросам; 4) бэкап файлов и БД с проверкой восстановления; 5) реестр всех интеграций; 6) карта редиректов для каждой проиндексированной страницы; 7) тестовая миграция на staging с полной проверкой; 8) корректная мобильная версия и редиректы с m.site.ru; 9) новая sitemap.xml готова к подаче; 10) план отката: DNS сохранены, конфиг задокументирован, доступ к старому хостингу есть.
Сроки и экономия
| Тип проекта |
Сроки |
Комментарий |
| Информационный сайт (до 500 стр.) |
2–4 недели |
Контент + дизайн + редиректы |
| Интернет-магазин (до 10 000 товаров) |
4–8 недель |
Каталог + заказы + интеграции |
| Крупный магазин (100 000+ товаров) |
2–4 месяца |
Кастомные скрипты + нагрузочное тестирование |
Экономия: после миграции вы перестаёте платить за лицензию старой CMS и поддержку устаревшего кода. Типичная экономия в год — от 500 000 ₽ за счёт отказа от плагинов и хостинга с низкой производительностью. Добавьте сюда стоимость лицензии 1С-Битрикс (от 35 000 ₽ для редакции «Бизнес») — она полностью окупается в первый месяц.
Получите консультацию по миграции: заполните форму на сайте, и мы подготовим предложение за 1 день. Оценим ваш проект бесплатно — напишите нам для расчёта.