Таблица cscart_order_data заполняется ненужной информацией

Вынес всё обсуждение, не связанное с проблемой, в отдельную тему. А в этой теме ответим, как только доберёмся до этой проблемы.

1 лайк

Плюсую к теме и тоже жду решения от разработчиков! Уже второй год вынужден отключать бэкап при каждом обновлении, потому что сайт виснет на проклятой таблице cscart_order_data.
Однажды почистил ее запросом, который посоветовали тут на форуме. В итоге менеджер магазина материл меня еще полгода за то, что побилась куча заказов, появились в наличии старые товары и тд и тп. Больше таких хирургических вмешательств в базу делать не хочется

1 лайк

Было такое с новой почтой, в какой то момент отпустило. Это на уровне модуля доставки, там BLOB файл в который пишуться все отделения по городу(зачем-то) по идее достаточно писать туда только выбранный или не знаю зачем они там вообще нужны. Если большой город, то сразу запись о заказе раздувается. Я думаю нормальный разработчик смог бы быстро вам это поправить.

Прошло 23 дня. Разработчики смогли воспроизвести проблему?
Могу предоставить доступ к своей базе если это потребуется

Здравствуйте.
Приношу извинения за долгий ответ.

Я обратилась к разработчику по данному вопросу, и мы выяснили, что эта проблема не может быть исправлена без рефакторинга модулей доставки с автоматическим расчетом стоимости доставки.

Что касается проблемы с записью всех ПВЗ - есть шанс, что у модуля Магазины и пункты самовывоза это поведение возможно может быть исправлено относительно безболезненно.
Я создала задачу для изучения и сообщу, когда появятся какие-либо новости.
Спасибо

Здравствуйте.

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

Для исправления проблемы собственными силами можно использовать патч: order_data.zip (1,4 КБ) Патч подходит для версий от 4.15.1 и выше.
О том, как применить патч, можно прочитать в нашей документации.
Перед применением патча рекомендуем сделать бекап БД.

Как должен работать патч:
В таблицу cscart_order_data записывается только ПВЗ выбранный покупателем.
Выбранный ПВЗ записывается только один раз, и не дублируется (ПВЗ магазина, ПВЗ способов доставки (СДЭК, Boxberry, Pickpoint))

2 лайка

Было бы хорошо сказать с какой версии можно патч применять, а то сейчас наставят на древние версии и стоит выпустить модуль который бы отчистил людям базы так как я сам видел как таблица из 3,6гб превращается в 500мб после выноса мусора оттуда

1 лайк

@Asya На версию 4.14.2.SP1 патч натянуть можно?

1 лайк

Здравствуйте, @z3r0 @alexa
Патч можно применить с версии 4.15.1

А как быть пользователям с версиями ниже 4.15.1? Таблица cscart_order_data так и будет продолжать заполняется ненужной информацией? :smirk:

Обновиться до последней версии, это вполне нормальное решение компании, если выпустить diff для всех начиная с 4.3.1 это дорогое удовольствие.

1 лайк

Автор поста написал, что у него проблема в версии 4.14.1.SP1, а diff выкладывается для текущей 4.15.1, так на какой хрен ему diff для старшей версии, если ему надо решить проблему для своей установки. Логика техподдержки никак не прослеживается.

2 лайка

Думаю в пользовательском соглашении прописано, что cs-cart делает все доработки относительно последней версии, 4.14.1 вышла больше года назад, баг исправили, раздел бак трекер отработал как надо. Сам автор может написать в хелп деск ему сделают за баллы модификацию под его версию, либо нанять разработчика который оптимизирует код.
Данному багу уже лет столько же, сколько существует модуль СДЕК с пвз.

1 лайк

В вашем ответе также нет логики.
CS-Cart не учёл, что такая проблема может быть, и эта проблема должна быть устранена, если даже это предыдущая версия. Кстати говоря, 4.14.1 вышла в 25 декабря 2021, можно сказать свежая версия, и безусловно поддерживаемая. Причём, как минимум половина пользователей сидит на версии 4.14.1 (декабрь 2021) и 4.14.2 (февраль 2022).

Мы и так сейчас на 4.15.1.SP4, так что для нас это не проблема.
Было бы отлично, если бы дали бы скрипт который очистит текущую базу мусора который накопился.

Согласен, скрипт мог бы быть полезен. Но, это не исключает выпуск фикса для версии 1.14.х.

1 лайк

Кстати говоря, пользуйтесь официальными источниками https://www.cs-cart.ru/docs/latest/#id10 2 декабря, больше года. В чем я не прав?

Ваши рассуждение как некий сарказм уже, вы оказывается знаете на чем сидят люди, у вас особый источник информации чем пользуются тысячи клиентов cs-cart?

Это не критическая проблема безопасности, чтобы выпускать фикс под все версии cs-cart.

Просто видимо у вас 4.14 и вы хотите чтобы под вас выпустили?
У меня есть клиенты у них 4.6.1 им то же придти и просить для 4.6.1 потому-что на этой версии есть клиенты.
Баг-трекер, это место куда сообщаются баги и задача cs-cart их решать, а не заниматься оптимизацией решения этой проблемы на всех версиях которые вышли за последние Х лет.

Вот сам автор темы не видит проблемы поставить ему нужный фикс.

2 лайка

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

Включусь в тему. Если кратко, то @z3r0 очень точно описал нашу политику исправления багов. Она сводится к тому, что:

  1. Баги исправляем в следующих версиях CS-Cart. Основной способ получить исправление — обновиться до версии, где баг исправлен.

  2. Если есть возможность, мы отдаём diff-файл (предварительно его протестировав). Это не обязательство, а наша собственная инициатива. Чтобы и пользователям было приятнее, и была возможность скорее решить проблему. Ведь следующая версия выйдет не сразу, а “часть” следующей версии в свою установку так можно получить.

    Иногда мы не отдаём diff на форуме. Например, если помимо правок в файлах нужны и правки в базе данных. Или если исправление багов затронуло слишком много файлов или подвязано на какие-то крупные изменения из будущей версии.

    Но мы стараемся отдавать diff-файл как можно чаще; пусть даже это противоречит первому пункту.

  3. Diff-файл (если он есть) на форуме даём для последней актуальной версии. Для такого решения все звёзды сошлись:

    • Разработка ведётся от последней актуальной версии (т.е. баг есть и исправляется в ней). Если бы бага в последней версии не было, то мы бы просто посоветовали до неё обновиться.

    • Как верно заметил @z3r0, каждый дополнительный diff для более старых версий — это дополнительное время и ресурсы на разработку и тестирование. Которые иначе могли бы пойти на развитие продукта.

    • На форуме много пользователей на разных версиях. Если давать полно diff-ов, то всем будет сложнее найти нужный.

  4. В рамках Help Desk поддержка может предложить решение для более ранних версий. Но так как я не работаю в поддержке и не так погружен в их процессы, то не знаю, какими обстоятельствами ограничены они.

    Все процессы, которые я описываю, существовали ещё задолго до того, как поддержка взяла на себя ревью багов на форуме.

  5. Чуть не забыл, а важно (и @z3r0 об этом тоже сказал): для проблем с безопасностью мы даём решения для всех старых версий, которые этой проблемой затронуты. Там может быть даже не diff, а модуль для старых версий, который закрывает уязвимости.

Так как баг исправлен, и тема ушла в другое русло, то я её пожалуй закрою.