Отзывы Magento - Когда они собираются агрегированы?
-
16-10-2019 - |
Вопрос
Может ли кто -нибудь дать некоторое представление о том, когда отзывы попадают в rating_option_vote_aggregated
стол? Я пытаюсь отфильтровать свои обзоры на основе четырех звезд или выше, и я хотел использовать percent_approved
столбец для присоединения к таблице обзоров, однако не все последние утвержденные обзоры находятся в rating_option_vote_aggregated
стол.
Нужно ли установить какой-то код одобрения после обзора, который вызывает $review->aggregate()
?
Заранее спасибо!
Решение
Нет никакого волшебного кода, который автоматически объединяет данные обзора для клиентского программиста - вам нужно вызвать этот метод вручную после создания объекта проверки. Вы можете увидеть это на фронте в postAction
Метод в
app/code/core/Mage/Review/controllers/ProductController.php
и различными методами на бэкэнд
app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php
Я предполагаю, что происходит одна из двух вещей. Во -первых, у вас есть какой -то пользовательский код, который создает обзоры вручную, и не может позвонить aggregate
правильно.
Во -вторых, есть определенный процент людей, которые пытаются просмотреть продукт, но из -за нагрузки на сервер или какой -либо другой проблемы запрос не удастся на полпути, так что
$review->setEntityId($review->getEntityIdByCode(Mage_Review_Model_Review::ENTITY_PRODUCT_CODE))
->setEntityPkValue($product->getId())
->setStatusId(Mage_Review_Model_Review::STATUS_PENDING)
->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())
->setStoreId(Mage::app()->getStore()->getId())
->setStores(array(Mage::app()->getStore()->getId()))
->save();
foreach ($rating as $ratingId => $optionId) {
Mage::getModel('rating/rating')
->setRatingId($ratingId)
->setReviewId($review->getId())
->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId())
->addOptionVote($optionId, $product->getId());
}
называется, но
$review->aggregate();
не является. Если бы я собирался обратиться к этому, я бы добавил где-нибудь задание Cron, которая составила список неагрегированных обзоров, а затем агрегировал их.