CC раз в месяц меняет id типа характеристик товара CS-Cart

Помощь пользователям в работе с программой E-Trade Content Creator
Ответить
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Предыстория.

Есть магазин на CS-Cart 3.0.6 и CC, из которого в магазин экспортируются фотографии и ТХ товаров.
В один п̶р̶е̶к̶р̶а̶с̶н̶ы̶й̶ день наши сеошники поставили задачу поделить категории «Мобильные телефоны» и «Ноутбуки» на подкатегории (смартфоны, нетбуки, ультрабуки и т.д.), подробнее здесь.

В итоге мы сделали скрипт, который запускается сразу после экспорта PLI.
Этот скрипт смотрит на ID, который у CS-Cart сопоставлен с определенённым типом товара, и помещает такой товар в определённую категорию.
Изображение

Например, вот так выглядит кусок скрипта, который из категории «Мобильные телефоны» перемещает товар в «Смартфоны»:

Код: Выделить всё

$products_parsing_categories['20'] = array( // забиваем категорию Мобильные телефоны (id = 20), скрипт будет смотреть продукты этой категории 
	'9831' => array( // указываем id характеристики "Тип"
		'1184919' => 384, // продукты с типом "Смартфон/Коммуникатор" (id = 1184919) будут перемещенны в категорию "Смартфоны" (id = 384)
		'1285069' => 384, // продукты с типом "Смартфон" (id = 1285069) будут перемещенны в категорию "Смартфоны" (id = 384)
		'1200669' => 20, // Продукты с типом "Телефон" (id = 1200669) останутся в своей категории (id = 20)
			)
		);
Для чего я рассказываю всю эту длинную предысторию: примерно раз в месяц, после очередного экспорта новых описаний, в CS-Cart меняется ID типа товара. Например, типа товаров "смартфон", месяц назад был id 1285069, стал — 1359983; тип товара "телефон", был id 1200669, а стал — 1374817.

Проблема заключается в том, что все эти ID указаны в скрипте сортировки товаров, и когда ID меняются, скрипт перестаёт корректно отрабатывать.

А теперь 2 главных вопроса: из-за чего меняются эти ID, и можно ли как-то это пресечь?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

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

Пример получения ИД значения характеристики по названию характеристики с использованием SQL запроса:

Код: Выделить всё

SELECT variant_id FROM cscart_product_feature_variant_descriptions WHERE variant='Смартфон' AND variant_id IN (SELECT variant_id FROM cscart_product_feature_variants WHERE feature_id=(SELECT feature_id FROM cscart_product_features_descriptions WHERE description='Тип'))
т.е. в запросе указываете название характеристики, в данном примере это 'Тип' и значение для этой характеристики, в данном примере это 'Смартфон'. Все полученные ИД значений характеристик добавляйте в array.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Ок, попробуем.

А что за "синонимы характеристик"? Как можно проверить, используются они или нет?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

А что за "синонимы характеристик"?
В справке СС должна быть информация по этой теме.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Спасибо за ответ.

Посмотрел справку, проверил нашу базу, — синонимы (по крайней мере для указанных выше характеристик) у нас точно не используются.
Однако в списке характеристик есть две одинаковых — "Тип". В одной из них два значения — "смартфон/коммуникатор" и "телефон", а в другой — только "телефон" (и 1 товар с этим значением).

Подскажите, это могло быть причиной переназначения ID?
Если удалить второе поле "Тип", проблема не будет повторяться?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 4286
Зарегистрирован: 27 авг 2008 14:30

У вас получается есть 2 блока хар-тик в котором есть 2 хар-ки под одинаковым именем.
С уважением, поддержка ElbuzGroup.
vkapas
Сообщения: 209
Зарегистрирован: 03 авг 2012 00:53

Да, именно так.

Сейчас я удалил в дублирующейся характеристике "Тип" значение "телефон" и теперь в ней нет ни одного значения. Из описания товара, у которого была эта характеристика, я её также удалил. Стоит ли удалять саму дублирующуюся характеристику "Тип" (если мы её не используем)? Или её удаление никак не отразится на проблеме этого топика?
Ответить

Вернуться в «Техническая поддержка программы E-Trade Content Creator»