Добрый день!
В официальной документации CS-Cart не всегда подробно описано, как полностью сбросить интеграцию с 1С, особенно если обмен «зашёл в тупик», появились дубли или товары перестали обновляться.
Хочу поделиться проверенным способом полного сброса синхронизации между CS-Cart (у меня версия 4.18.3) и 1С:Предприятие.
Какие таблицы отвечают за связь с 1С?
Все данные о синхронизации хранятся в следующих таблицах (префикс cscart_ может отличаться):
cscart_commerceml_imports— журнал сессий импортаcscart_commerceml_import_entities— старый формат хранения сущностей (в некоторых версиях)cscart_commerceml_import_entity_map— основная таблица соответствий (в современных версиях, включая 4.18.x)cscart_commerceml_import_removed_entities— список удалённых объектов (у меня оказалась пустой)
Именно через
cscart_commerceml_import_entity_mapCS-Cart «помнит», какой GUID из 1С соответствует какому объекту в магазине.
Пошаговый сброс
- Обязательно сделайте резервную копию базы данных!
(через phpMyAdmin, mysqldump или панель хостинга) - Очистите таблицы синхронизации — лучше по одной, чтобы убедиться, что всё прошло успешно:
sql
TRUNCATE TABLE cscart_commerceml_imports;
TRUNCATE TABLE cscart_commerceml_import_entities;
TRUNCATE TABLE cscart_commerceml_import_entity_map;
– (опционально)
TRUNCATE TABLE cscart_commerceml_import_removed_entities;
Не используйте DELETE FROM — TRUNCATE быстрее и корректнее сбрасывает.
- Очистите кеш CS-Cart:
- Удалите всё содержимое папки
var/cache/ - Или через админку: Веб-сайт → Темы → Очистить кеш
Всё!!!
Если есть другой способ обнулить синхронизацию буду рад применить.
Если кому интересно как идёт синхронизация
В Таблице cscart_commerceml_import_entity_map колонка local_id
Так закрутили
Если entity_type = ‘product’, то
→ local_id = product_id из таблицы cscart_products.
Если entity_type = ‘category’, то
→ local_id = category_id из cscart_categories.
Если entity_type = ‘product_feature’, то
→ local_id = feature_id из cscart_product_features.
По самой сути обмена с 1с — предложенный способ отлично подходит для небольших каталогов (до 100–200 товаров). Однако при масштабировании до 10 000+ позиций, особенно с богатой структурой характеристик и вариантами, синхронизация, к сожалению, не радует — но, скорее всего, это следствие объёма данных и особенностей реализации модуля CommerceML в CS-Cart, а не проблема хостинга. Для крупных каталогов такой подход может оказаться неудобным, и было бы здорово увидеть более производительное решение.
