Ошибка Shop Script 6.3.0.44568 при удалении последнего отзыва в товаре Архив

1

При удалении последнего отзыва у товара, возникает ошибка:


Query Error 1054: Unknown column 'NAN' in 'field list'
Query: UPDATE shop_product
SET `rating` = NAN, `rating_count` = 0
WHERE `id` = 204024 code 1054
/home/svetiko/www/lusart.ru/wa-system/database/waModel.class.php (243)
## /home/svetiko/www/lusart.ru/wa-system/database/waModel.class.php(243)
#0 /home/svetiko/www/lusart.ru/wa-system/database/waModel.class.php(298): waModel->run('UPDATE shop_pro...')
#1 /home/svetiko/www/lusart.ru/wa-system/database/waModel.class.php(421): waModel->exec('UPDATE shop_pro...')
#2 /home/svetiko/www/lusart.ru/wa-system/database/waModel.class.php(362): waModel->updateByField('id', 0, Array, NULL, false)
#3 /home/svetiko/www/lusart.ru/wa-apps/shop/lib/model/shopProduct.model.php(788): waModel->updateById('204024', Array, NULL, false)
#4 /home/svetiko/www/lusart.ru/wa-apps/shop/lib/model/shopProductReviews.model.php(362): shopProductModel->updateById('204024', Array)
#5 /home/svetiko/www/lusart.ru/wa-apps/shop/lib/model/shopProductReviews.model.php(378): shopProductReviewsModel->recalcProductRating('204024', '5.00', false)
#6 /home/svetiko/www/lusart.ru/wa-apps/shop/lib/actions/reviews/shopReviewsChangeStatus.controller.php(18): shopProductReviewsModel->changeStatus(72, 'deleted')
#7 /home/svetiko/www/lusart.ru/wa-system/controller/waController.class.php(21): shopReviewsChangeStatusController->execute()
#8 /home/svetiko/www/lusart.ru/wa-system/controller/waJsonController.class.php(28): waController->run(NULL)
#9 /home/svetiko/www/lusart.ru/wa-system/controller/waFrontController.class.php(226): waJsonController->run(NULL)
#10 /home/svetiko/www/lusart.ru/wa-system/controller/waFrontController.class.php(161): waFrontController->runController(Object(shopReviewsChangeStatusController), NULL)
#11 /home/svetiko/www/lusart.ru/wa-system/controller/waFrontController.class.php(58): waFrontController->execute(NULL, 'reviews', 'changeStatus')
#12 /home/svetiko/www/lusart.ru/wa-system/waSystem.class.php(544): waFrontController->dispatch()
#13 /home/svetiko/www/lusart.ru/wa-system/waSystem.class.php(483): waSystem->dispatchBackend('webasyst/shop/')
#14 /home/svetiko/www/lusart.ru/index.php(7): waSystem->dispatch()
#15 {main}

ошибка в этом файле

/home/svetiko/www/lusart.ru/wa-apps/shop/lib/model/shopProductReviews.model.php 353 и 358 строка в функции recalcProductRating

Если сделать вот так то работает

private function recalcProductRating($product_id, $rate, $inc = true)
    {
        if ($rate <= 0) {
            return;
        }
        $product_model = new shopProductModel();
        $product = $product_model->getById($product_id);
        if ($inc) {
            $rating_count = $product['rating_count'] + 1;
            $update = array(
                    'rating' => ($rating_count > 0 ? (($product['rating']*$product['rating_count'] + $rate)/$rating_count) : 0),
                    'rating_count' => $rating_count
            );
        } else {
            $rating_count = $product['rating_count'] - 1;
            $update = array(
                    'rating' => ($rating_count > 0 ? (($product['rating']*$product['rating_count'] + $rate)/$rating_count) : 0),
                    'rating_count' => $rating_count
            );
        }
        $product_model->updateById($product_id, $update);
    }

2 комментария

  • +1
    Руслан Руслан 28 ноября 2017 14:53 #

    Добрый день, аналогичная проблема, не решена?

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 28 ноября 2017 15:06 #

      Похоже, что ошибка обнаружена только в версии Shop-Script 6. Эта версия будет обновляться, только если будет обнаружена критическая проблема в системе безопасности. Другие ошибки в этой версии исправляться не будут.

      Эта тема в архиве. Добавление комментариев к ней отключено.