Фантомное значение характеристики

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

Предвосхищая встречный вопрос зачем их убирать отвечаю, они при синхронизации с 1С передаются туда, там им присваиваются ID и в результате получается тонна мусорных значений характеристик которых на самом деле не существует, что добавляет массу ненужных операций при обмене и все вытекающие отсюда, да и просто неудобно, отвлекает и мешает работе

2 ответа

  • 2

    магазин - настройки - типы товаров и характеристики

    посмотрите - там они есть? если есть - удалите лишнее

    • +1

      там только перечень характеристик, но не значений, проблема именно в значениях (например как на скрине 1130 м. такого значения нет у товаров, надо его удалить)

  • 1
    Nikolai 24 ноября 2020 13:44 #

    Удалить можно в "магазин - настройки - типы и характеристики товаров".

    Если характеристик и значений очень много, можно скриптом убрать значения, которые нигде не используются (на ваш страх и риск):

    -- создаем временную таблицу с id значениями, которые нигде не используются
    create table _fvc as
    select distinct t1.*
    from shop_feature_values_varchar t1
    left join shop_product_features t2 on t2.feature_value_id = t1.id
    where t2.id is null;
    -- удаляем значения, которые нигде не используются
    delete
    from shop_feature_values_varchar
    where id in (select id from _fvc);
    -- очищаем временную таблицу
    drop table _fvc;

    • +1

      Запрос нашел 105 строк, удалил, но значения характеристик которые нигде не используются так и остались

      • 0

        Потому что эти значения берутся из другой таблицы.

         P.S. Ни разу не видел синхронизацию с 1С, но ваше утверждение что туда/сюда гоняются значения характеристик не привязанных к товарам - мягко говоря, мутноватое... =)

        • +1

          мое утверждение основано на практике, мы удалили неиспользуемые значения из 1С, но они туда с течением времени (проведением обменов данными) вернулись.

          Так что ваше ничем не подкрепленное "мутноватое", мягко говоря оставим при вас ;)

          • +1

            Да я не возражаю, собственно =)   Но все же рекомендовал бы вам уточнить у разработчика интеграции с 1С, действительно ли гоняются непривязанные к товарам значения характеристик через эту интеграцию. И очень не удивлюсь, если окажется что ноги проблемы растут из других мест.

        • +1

          и да, огромное спасибо за то что подсказали про таблицу, теперь то мы все знаем где искать. 

          • +1

            Сергей, я не назвал таблицу по одной простой причине: у меня нет абсолютной уверенности в том, что озвученный выше метод не навредит (именно в случае с данной конкретной таблицей). Скажу больше: в этой таблице собственноручно нашел одну ошибку (ну не в самой таблице, а в методах работы с ней Shop-Script), следствием которой может как раз оказаться вот такое вот видение, что данные значения не используются. В общем там все не просто, и я б огульно не удалял из этой таблицы значения. Субъективно, ессно.

      • +1
        Nikolai Nikolai 24 ноября 2020 23:12 #

        Если не удалилось, значит где-то используйтеся, посмотрите в каких товарах, например так:

        SELECT t3.id, t3.name
        from shop_feature_values_varchar t1
        inner join shop_product_features t2 on t2.feature_value_id = t1.id
        inner JOIN shop_product t3 ON t3.id = t2.product_id
        WHERE t1.value = '1130 м'

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите