Commentaires Magento - Quand ils s'agrégés?
-
16-10-2019 - |
Question
Quelqu'un peut-il fournir un aperçu quand commentaires se mettre dans la table rating_option_vote_aggregated
? J'essaie de filtrer à travers mes commentaires en fonction de quatre étoiles ou plus et je cherchais à utiliser la colonne percent_approved
pour se joindre avec la table d'examen, mais pas tous les derniers avis approuvés sont dans la table rating_option_vote_aggregated
.
Faut-il installer une sorte de code post-approbation d'examen que les appels $review->aggregate()
?
Merci à l'avance!
La solution
Il n'y a pas de code magique qui agrège automatiquement les données d'examen pour un programmeur client - vous devez appeler cette méthode manuellement après un objet d'examen est créé. Vous pouvez le voir sur le frontend à la méthode postAction
dans
app/code/core/Mage/Review/controllers/ProductController.php
et différentes méthodes sur le back-end
app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php
Je pense serait là de l'une des deux choses qui se passent. La première est que vous avez un code personnalisé qui est la création manuelle d'avis et ne pas appeler aggregate
correctement.
Le second est, il y a un certain pourcentage de personnes qui tentent d'examiner un produit, mais à cause de la charge du serveur ou d'un autre problème, la demande ne parvient à mi-chemin de telle sorte que
$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());
}
est appelée, mais
$review->aggregate();
est pas. Si j'allais aborder la fixation de ce, je rajouterais un endroit de travail cron qui a construit une liste des revues non agrégées, puis les agrégés.