Импорт заказов сложнее импорта клиентов: у заказа есть товарные позиции, статусы, оплаты и привязка к покупателю. Разберём, как перенести историю продаж в RetailCRM так, чтобы сохранить суммы, состав и связи с клиентами.
Структура файла заказов
Заказ в CSV — это «плоская» таблица, где одна строка описывает один заказ или одну товарную позицию заказа. RetailCRM поддерживает вариант, когда несколько строк с одним number (номером заказа) объединяются в один заказ с несколькими товарами.
| Поле | Что содержит |
|---|---|
| number / externalId | Номер заказа и внешний ID из старой системы |
| createdAt | Дата оформления — критична для аналитики |
| customer.phone / email | Ключ привязки к клиенту |
| status | Статус в системе RetailCRM |
| item.name / item.quantity / item.price | Товар, количество, цена |
Привязка заказов к клиентам
Правильный порядок — сначала клиенты, потом заказы. Если импортировать заказы первыми, RetailCRM создаст покупателей автоматически из данных заказа, но карточки получатся неполными.
- Загружаем базу клиентов с заполненным
externalId. - В файле заказов ссылаемся на клиента по телефону, email или
customer.externalId. - Проверяем, что заказы «легли» в существующие карточки, а не создали новых клиентов.
Если один клиент делал заказы в разных каналах, единый ключ (телефон в формате +7) соберёт всю историю в одну карточку — это основа для RFM-анализа и программы лояльности.
Маппинг статусов
В RetailCRM статусы объединены в группы: новый, согласование, комплектация, доставка, выполнен, отменён. При импорте каждый статус из старой системы нужно сопоставить со статусом RetailCRM — иначе воронка и отчёты будут перекошены.
| Было в старой системе | Стало в RetailCRM |
|---|---|
| Новый / Не обработан | new (Новый) |
| Подтверждён | approved (Согласование) |
| Отправлен | delivery (Доставка) |
| Доставлен / Завершён | complete (Выполнен) |
| Отказ / Возврат | cancel-other (Отменён) |
Суммы, оплаты и доставка
Сумма заказа в RetailCRM обычно считается из товарных позиций. Если в файле есть и позиции, и итоговая сумма, они не должны противоречить друг другу. Для скидок используйте отдельные поля скидки на позицию или на заказ.
- Оплаты — тип (нал/безнал/онлайн) и статус (оплачен/не оплачен) переносятся отдельными полями.
- Доставка — тип доставки, адрес и стоимость; для исторических заказов достаточно типа и адреса.
- Валюта — если продавали в нескольких валютах, укажите её явно.
Для завершённых заказов детальную интеграцию с доставкой восстанавливать не нужно — трек-номера и расчёты актуальны только для активных отгрузок.
Отдельного внимания требует источник заказа (сайт, маркетплейс, звонок, соцсеть). Если перенести его в поле источника RetailCRM, аналитика по каналам сразу заработает на исторических данных, а не только на новых заказах. То же касается ответственного менеджера: сохраните его, чтобы отчёты по сотрудникам охватывали и перенесённый период.
Загрузка через API
Большой объём истории удобнее грузить через REST API. Метод POST /api/v5/orders/upload принимает до 50 заказов за запрос вместе с товарными позициями внутри каждого заказа.
POST /api/v5/orders/upload
X-API-KEY: ваш_ключ
orders=[{"externalId":"5567","status":"complete","customer":{"externalId":"1024"},
"items":[{"initialPrice":1990,"quantity":2,"offer":{"article":"ART-15"}}]}]Товар в позиции лучше указывать через offer с артикулом или внешним ID — тогда позиция свяжется с каталогом. Если каталог ещё не загружен, товары создадутся как «свободные» и не привяжутся к номенклатуре.
Большие объёмы истории грузят пачками с паузами между запросами и логированием ответов. RetailCRM вернёт по каждому заказу его id и externalId — сверьте, что число успешно созданных заказов совпадает с ожидаемым. Сбойные заказы из ответа складывайте в отдельный файл и разбирайте адресно, а не перезапускайте всю выгрузку целиком.
Проверка перенесённых заказов
После импорта сверьте ключевые метрики со старой системой — это быстрый способ поймать ошибки маппинга.
- Совпадает ли количество заказов и суммарная выручка за период.
- Верно ли распределились заказы по статусам и по датам.
- Привязались ли заказы к клиентам, а не создали дубли покупателей.
- Собрались ли товарные позиции в корректные суммы заказов.
Расхождение выручки на 1–2% обычно объясняется округлением и скидками; расхождение в разы — это ошибка сопоставления полей, которую надо чинить до боевого запуска.
Итог
Импорт заказов — это перенос не только строк, но и связей: заказ ↔ клиент, позиция ↔ товар, статус ↔ группа статусов. Соблюдайте порядок «клиенты → каталог → заказы», сохраняйте номера в externalId и сверяйте выручку по периодам.
Перенос истории продаж с сохранением сумм, статусов и связей — типовая задача нашей миграции в RetailCRM. Поможем свести выгрузку, согласовать маппинг статусов и провести тестовый импорт до боевого.
Частые вопросы
Можно ли загрузить заказ с несколькими товарами?
Да. Несколько строк с одним номером заказа объединяются в один заказ с несколькими позициями, либо позиции передаются массивом items через API.
Что импортировать первым — клиентов или заказы?
Сначала клиентов, затем заказы. Так заказы привяжутся к готовым карточкам, а не создадут неполных покупателей автоматически.
Как перенести статусы из старой системы?
Составьте таблицу соответствия и сверните пёструю схему в стандартные группы RetailCRM: новый, согласование, комплектация, доставка, выполнен, отменён.
Откуда берётся сумма заказа?
Обычно она считается из товарных позиций. Если передаёте и позиции, и итог, они не должны противоречить друг другу; скидки задавайте отдельными полями.
Привяжутся ли товары к каталогу?
Да, если сначала загрузить каталог и указывать в позициях артикул или внешний ID товара. Иначе позиции создадутся свободными, без связи с номенклатурой.
Как проверить корректность импорта заказов?
Сверьте количество заказов и суммарную выручку за период со старой системой, а также распределение по статусам и датам.
Нужно ли восстанавливать данные доставки по старым заказам?
Для завершённых заказов достаточно типа доставки и адреса. Трек-номера и расчёты нужны только для активных отгрузок.
Поможем с настройкой и поддержкой RetailCRM
Поможем с настройкой, доработкой и поддержкой RetailCRM.