Обзоры Magento - Когда они собираются вместе?
Может ли кто-нибудь дать некоторое представление о том, когда обзоры помещаются в таблицу rating_option_vote_aggregated
? Я пытаюсь отфильтровать свои отзывы на основе четырех звезд или выше, и я хотел использовать столбец percent_approved
для объединения с таблицей отзывов, однако не все последние одобренные отзывы находятся в таблице rating_option_vote_aggregated
.
Нужно ли нам устанавливать какой-то код утверждения после проверки, который вызывает $review->aggregate()
?
Заранее спасибо!
1 answers
Нет волшебного кода, который автоматически агрегирует данные проверки для клиентского программиста - вам нужно вызвать этот метод вручную после создания объекта проверки. Вы можете увидеть это на интерфейсе в методе 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, которое составляло список неагрегированных обзоров, а затем объединяло их.