Закрыть
Скидки в Webasyst 25–29 ноября 2021

Найден дефект Принято

8

Нашелся дефект по отзывам, когда установлена модерация отзывов

дефекта даже два

1. добавить отзыв первый у товара, в классе метода shopProductReviews.model.php#add вызывается recalcProductRating, что у нас сразу добавляет запись у товара рейтинг и на фронте выводится сразу, хотя отзыв еще на модерации, такого быть не должно

2. из-за первого дефекта появляется второй, заходим в админку и нажимает сразу опубликовать, то этот метод  hopProductReviews.model.php#recalcProductRating вызывается снова в методе уже shopProductReviews.model.php#changeStatus и снова увеличивает счетчик, в итоге у нас два рейтинга за один отзыв, даже если вы потом удалите, то рейтинг один остается, от сюда ломается все, подсчет отзывов и сам рейтинг

ошибка именно когда, добавили отзыв и сразу же его опубликовали - срабатывает двойной счетчик 

на сайте пришлось заново высчитывать поле в таблице shop_product - rating_count и так rating


если модерации нет, то все ок работать будет, прошу решить

8 комментариев

  • +1
    Михаил Ушенин Михаил Ушенин Webasyst 22 ноября 2021 18:48 #

    добавить отзыв первый у товара, в классе метода shopProductReviews.model.php#add вызывается recalcProductRating, что у нас сразу добавляет запись у товара рейтинг и на фронте выводится сразу, хотя отзыв еще на модерации, такого быть не должно

    Вы пишете здесь об оценке, а не об отзыве. Оценка не проверяется модератором и сразу видна на витрине, проверяется только отзыв.

    • +1
      Koin Koin 22 ноября 2021 19:54 #

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

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 22 ноября 2021 18:50 #

      заходим в админку и нажимает сразу опубликовать, то этот метод hopProductReviews.model.php#recalcProductRating вызывается снова в методе уже shopProductReviews.model.php#changeStatus и снова увеличивает счетчик, в итоге у нас два рейтинга за один отзыв, даже если вы потом удалите, то рейтинг один остается, от сюда ломается все, подсчет отзывов и сам рейтинг ошибка именно когда, добавили отзыв и сразу же его опубликовали - срабатывает двойной счетчик

      Передал замечание разработчикам, спасибо.

      Расскажите, какие конкретно проблемы для вас создаёт это двойное срабатывание счётчика? Как оно проявляется в работе магазина?

      • +1
        Koin Koin 22 ноября 2021 19:58 #

        проблемы такие в магазине

        на товар был написан отзыв с оценкой 3 и потом опубликован, но решили отзыв удалить, он удалился, но рейтинг остался старый, который не верен, так потом еще отзыв добавили, снова удалил и еще поменялся.

        в итоге рейтинг у товара сформирован не верно, отзыв один с рейтингом 5, а по факту средний, который не имеет не какого отношения

        и вот если вообще нет отзывов и пишет рейтинг 1, как так, если отзывов нет и не кто не писал не когда, тк решили отзывы удалить

        пример товара - https://steemy.ru/insales/chek...

        • +1
          Михаил Ушенин Михаил Ушенин Webasyst 23 ноября 2021 09:37 #

          Оценки товаров и отзывы о товарах работают раздельно, хотя и добавляются пользователем в одной форме на странице магазина. При удалении отзыва оценка не удаляется.

          • +1
            Koin Koin 23 ноября 2021 09:54 #

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

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

          • +2
            Евгений Леман Евгений Леман 25 ноября 2021 18:34 #

            Это противоречит логике. Как тогда удалить оценку? Как удалить её отдельно от отзыва, раз уж они раздельны? Как удалить отзыв отдельно от оценки?

            И если они разделены, то почему идут все вперемешку? Ведь логичнее сначала выводить отзывы, а потом лишь оценки. Первые могут содержать информацию.

            Добавить комментарий

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