Comentarios Magento - Cuando no consiguen agregadas?
-
16-10-2019 - |
Pregunta
¿Alguien puede proporcionar una cierta penetración para cuando reseñas conseguir poner en la mesa rating_option_vote_aggregated
? Estoy tratando de filtro a través de mis opiniones sobre la base de cuatro estrellas o superior y que estaba buscando a utilizar la columna percent_approved
para unirse con la mesa de examen, sin embargo, no todas las últimas críticas son aprobados en la tabla rating_option_vote_aggregated
.
¿Es necesario instalar algún tipo de código de revisión posterior aprobación que las llamadas $review->aggregate()
?
Gracias de antemano!
Solución
No hay código mágico que agrega automáticamente los datos de la revisión para un programador cliente - es necesario llamar a este método de forma manual después de que se crea un objeto de revisión. Esto se puede ver en la interfaz en el método postAction
en
app/code/core/Mage/Review/controllers/ProductController.php
y en varios métodos en el backend
app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php
Mi conjetura sería de ahí una de dos cosas que suceden. La primera es que hay algún código personalizado que está creando comentarios de forma manual, y no llamar aggregate
correctamente.
La segunda es que hay un cierto porcentaje de personas que tratan de revisar un producto, pero debido a la carga del servidor o algún otro problema, la solicitud falla a mitad de camino a través de tal forma 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());
}
se llama, pero
$review->aggregate();
no lo es. Si iba a acercarse a la fijación de esto, me gustaría añadir una tarea de cron que en algún lugar construyó una lista de las opiniones no agregados, y luego se agregan ellos.