Миграция сайта с InSales на 1С-Битрикс
InSales — облачная платформа для интернет-магазинов. Её преимущество — быстрый старт без хостинга и разработки. Ограничение — закрытая экосистема: нет прямого доступа к базе данных, нет возможности установить произвольный код, нет глубоких интеграций. Когда бизнес дорастает до потребности в тонкой настройке, интеграции с корпоративными системами или смене технологии — начинают переходить на Битрикс.
Специфика источника
InSales — SaaS-платформа. Прямого доступа к базе данных нет. Данные выгружаются тремя способами:
- REST API InSales — основной метод. Документированное API с авторизацией по ключу приложения. Возвращает JSON.
- YML/CSV-выгрузки — из административной панели InSales можно экспортировать товары в YML (Яндекс.Маркет), CSV, и заказы в CSV.
- Экспорт через приложения — некоторые данные (клиенты, полный архив заказов) доступны только через API или специальные приложения InSales.
Что доступно через API
Товары: 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 — заказы с позициями, адресами, статусами. Лимит — последние N заказов или диапазон дат.
Покупатели: GET /admin/clients.json — клиенты с адресами.
Скрипт сбора данных
Пишем PHP-скрипт, который постранично запрашивает данные из InSales API и сохраняет в промежуточный формат (JSON-файлы или промежуточная БД). API InSales имеет rate limiting: не более 2 запросов в секунду. При каталоге в 10 000 товаров (100 страниц × 100 товаров) — минимум 50 секунд только на товары.
GET https://{shop}.myinsales.ru/admin/products.json
Authorization: Basic base64(api_key:api_password)
Товары и варианты → Битрикс
После сбора данных из API строим импорт в Битрикс:
-
products[].title→NAMEэлемента инфоблока. -
products[].body_html→DETAIL_TEXT(HTML). -
products[].fields_values[]→ свойства инфоблока (создаём заранее по уникальным именам полей). -
products[].collections[]→ разделы инфоблока (поcollection_id).
Для вариантов: если у товара один вариант — это простой товар, цену и остаток ставим на сам элемент. Если вариантов несколько — создаём торговые предложения в инфоблоке ТП, опции вариантов становятся свойствами ТП.
Изображения
API возвращает URL изображений на CDN InSales. Скачиваем через file_get_contents() или curl, сохраняем на сервер, регистрируем через CFile::SaveFile(). Важно: после переезда CDN InSales остаётся доступным какое-то время, но рассчитывать на постоянный доступ к чужим URL нельзя — все изображения нужно физически скопировать.
Заказы и клиенты
Заказы из InSales API переносим в b_sale_order. Статусы из InSales (new, confirmed, delivering, delivered, cancelled) маппируем на статусы Битрикс. Клиентов создаём через CUser::Add().
Особенность: в InSales покупатель может оформить заказ без регистрации (guest checkout). В Битрикс тоже возможен заказ без регистрации, но если нужна история заказов в ЛК — придётся создать пользователей для всех клиентов с email.
SEO-данные
InSales хранит SEO-поля в каждом ресурсе: seo_title, seo_description — их вытягиваем через API (поля fields_values или отдельные атрибуты объекта). URL в InSales строятся по шаблону /products/{handle} и /categories/{handle}. Строим 301-редиректы со старых URL на новые.
Что остаётся за рамками
InSales API не выдаёт историю изменений заказов (только текущий статус), историю просмотров товаров, данные аналитики. Если нужна детальная история — просим клиента экспортировать через административный интерфейс InSales перед отключением магазина.
Сроки
| Этап | Типовые сроки |
|---|---|
| Анализ 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.







