Magentoのレビュー - 彼らはいつ集約されますか?
-
16-10-2019 - |
質問
誰かがレビューが入ったときの洞察を提供できますか rating_option_vote_aggregated
テーブル? 4つ以上の星に基づいてレビューをフィルタリングしようとしていますが、 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
私の推測では、2つのことが起こっていることがあります。 1つ目は、レビューを手動で作成し、電話をかけないカスタムコードがあることです。 aggregate
正しく。
2つ目は、製品をレビューしようとする人の一定の割合があることですが、サーバーの負荷やその他の問題のために、要求は途中で失敗します。
$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の仕事を追加してから、それらを集約しました。
所属していません magento.stackexchange