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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top