Пересказать с ИИ:

Перенос каталога с одного сайта на другой кажется простой задачей только до первого повторного обновления. Однократно получить товары, создать карточки и загрузить изображения недостаточно. Если импорт нужно запускать повторно, система должна корректно определять уже существующие товары, обновлять их, обрабатывать изображения и пересчитывать цены.

В рамках разработки интернет-магазина мы реализовали модуль, который получает товары с сайта-источника через API и создаёт их в каталоге CS-Cart как обычные товары. При повторном запуске уже импортированные позиции обновляются, а новые создаются как отдельные карточки.

Главная задача заключалась не в разовом копировании каталога, а в создании механизма, который можно использовать повторно.

Как устроен импорт товаров

Модуль получает каталог с сайта-источника через API. Товары загружаются последовательно, а при необходимости для отдельных позиций дополнительно запрашивается подробная информация.

В импортируемые данные входят название, код, цены, статус, краткое и полное описание, SEO-имя и изображения. После получения данных система проверяет, существует ли соответствующий товар в локальном магазине.

Если товар импортируется впервые, создаётся новая карточка. Если он уже был перенесён — обновляется существующая запись.

Такой подход позволяет разделить получение данных и их обработку и безопасно повторять импорт.

Схема процесса получения и обработки товара через API

Как система определяет, что товар уже импортирован

При повторном импорте важно не создавать лишние карточки. Если сегодня перенести 500 товаров, а через неделю запустить импорт ещё раз, система должна обновить эти 500 позиций, а не создать ещё 500.

Для каждого импортированного товара создаётся служебный ключ: mp:{product_id}. Он сохраняется в поле source_import_key. При следующем запуске модуль формирует такой же ключ и ищет его в локальном каталоге. Если запись найдена — товар обновляется. Если нет — создаётся новый.

Например, товар с идентификатором 4688 получает ключ mp:4688. При следующем импорте он позволяет определить уже существующую карточку.

Такой механизм является основой повторной синхронизации: система понимает, какую запись нужно обновить, а какую создать впервые.

Алгоритм поиска существующего товара по ключу source_import_key

Список импортированных товаров в административной панели

Как переносить цены, если у сайтов разные валюты

Отдельная задача — Ð