ahmed Опубликовано 30 мая, 2017 Жалоба Поделиться Опубликовано 30 мая, 2017 На форуме можно найти множество сообщений про то, что в процессе работы CMS без видимых причин пропадают свойства у товаров, напримерhttp://forum.simplacms.ru/topic/2916-%D0%B8%D1%81%D1%87%D0%B5%D0%B7%D0%B0%D1%8E%D1%82-%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2/В этой теме описаны некоторые такие ситуации, и если их знать и по них помнить, то можно контролировать ситуацию.Но бывают сообщения и о том, что в процессе работы CMS пропадают свойства у товаров БЕЗ ВИДИМЫХ ПРИЧИН.Оказалось, что это не выдумки неопытных админов, а такое действительно может происходить.Пример 1.1.1. Делаю импорт такого CSV-файла (предполагается, что перед импортом в базе указанных в файле товаров и категорий нет, то есть импорт запишет новые товары и категории):Категория;Товар;Цена;Адрес;Видим;Рекомендуемый;Бренд;Вариант;Старая цена;Артикул;Склад;test_propkat1, kat2;prod1;0.00;p1;1;;;;;;;v1kat2, kat1;prod2;0.00;p2;1;;;;;;;v21.2. Создадутся новые товары prod1, prod2, новые категории kat1, kat2 и новое свойство test_prop.1.3. если открыть в админке страницы новых товаров, то у них основной категорией являеся kat1.А должны быть РАЗНЫЕ основные категории. Это происходит потому, что, импорт записывает в таблице s_products_categories в новых записях в поле position исключительно нули.1.4. Имеем первую ошибку - импорт не учитывает порядок категорий, и записывает каждую категорию как основную (position=0).1.5. Если товар пересохранить, то порядок зафиксируется правильный (position приобретет корректные значения).Ошибка досадная, но в большинстве случаев не сильно критичная. Но она порождает другую ошибку, весьма и весьма серьезную.Пример 2.2.1. Выполняем действие 1.12.2. Заметим что новые товары prod1, prod2 имееют свойство test_prop с разными значениями.2.3. Откроем в админке страницу нового свойства test_prop. Можно видеть, что оно подключено к новым категориям kat1, kat2.Отключим категорию kat2 от свойства, отменив у нее выделение, и сохраним изменения.В результате новое свойство удалится у всех новых товаров, что совершенно неправильно.2.4 Получается пропажа свойств при простеньких безобидных действиях. Причина в функции function update_feature_categories($id, $categories) в запросе, который имет вид $query = $this->db->placehold("DELETE o FROM __options o LEFT JOIN __products_categories pc ON pc.product_id=o.product_id WHERE o.feature_id=? AND pc.position=(SELECT MIN(pc2.position) FROM __products_categories pc2 WHERE pc.product_id=pc2.product_id) AND pc.category_id not in(?@)", $id, $categories);В нем производится лишнее удаление по причине вышеописанной первой ошибки.Запрос в таком виде появился в версии 2.3.7, ранее вместо него был другой запрос, который кажется, работал лучше.Реальная типовая ситуация: админ импортом залил много товаров. Все прекрасно работает, админ радуется.Через некоторое время он провел мелкое редактирование свойства, например, добавив к свойству новую категорию. И готово - массовая пропажа свойств произошла. Причем админ это обнаружит не сразу, а через некоторое время. Причем админу практически нереально обычными средствами обнаружить какую-то систему в пропавших свойствах, тем более определить причину.Таким образом, выясняется, что жалобы на пропажу свойств - не капризы неумелых админов, а серьезная ошибка создателя CMS.Пожелаем ему исправлять ошибки оперативно... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 30 мая, 2017 Жалоба Поделиться Опубликовано 30 мая, 2017 Молодец Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 30 мая, 2017 Жалоба Поделиться Опубликовано 30 мая, 2017 (изменено) Сценарии появления этой ошибки могут быть другими... Изменено 30 мая, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
makki Опубликовано 30 мая, 2017 Жалоба Поделиться Опубликовано 30 мая, 2017 Есть решение этой ошибки? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 30 мая, 2017 Жалоба Поделиться Опубликовано 30 мая, 2017 Есть решение этой ошибки? я пока как дурак захожу в каждое свойство и проставляю все категории каждому Цитата Ссылка на сообщение Поделиться на другие сайты
LSDance Опубликовано 31 мая, 2017 Жалоба Поделиться Опубликовано 31 мая, 2017 Есть решение этой ошибки?Посмотрел вышеописанный метод, в голову пришла одна идея, но надо тестить, если есть у кого желание попробовать посмотреть в сторону update, а не delete - insert. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 2 июня, 2017 Автор Жалоба Поделиться Опубликовано 2 июня, 2017 Есть решение этой ошибки? Есть:https://forum.okay-cms.com/viewtopic.php?f=7&t=432 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.