Skip to content

Commit ddfd277

Browse files
authored
Change loading product reviews first page to loading total count (#82)
1 parent 2d7637a commit ddfd277

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/Page/CompareProductPageLoader.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
1818
use Shopware\Core\Framework\DataAbstractionLayer\Search\Filter\EqualsAnyFilter;
1919
use Shopware\Core\Framework\DataAbstractionLayer\Search\Sorting\FieldSorting;
20+
use Shopware\Core\Framework\Struct\ArrayStruct;
2021
use Shopware\Core\Framework\Uuid\Uuid;
2122
use Shopware\Core\System\CustomField\CustomFieldCollection;
2223
use Shopware\Core\System\SalesChannel\SalesChannelContext;
@@ -123,10 +124,10 @@ public function loadProductCompareData(ProductListingResult $products, SalesChan
123124
/** @var SalesChannelProductEntity $product */
124125
foreach ($products as $product) {
125126
if ($reviewAllowed) {
126-
$product->setProductReviews($this->loadProductReviews($product, $context));
127+
$product->addExtension('productReviews', new ArrayStruct(['reviewTotal' => $this->loadProductReviewCount($product, $context)]));
127128
} else {
128129
$product->setRatingAverage(null);
129-
$product->setProductReviews(new ProductReviewCollection());
130+
$product->addExtension('productReviews', new ArrayStruct(['reviewTotal' => 0]));
130131
}
131132

132133
$sortedProperties = $this->sortProperties($product, $selectedPropertyIds);
@@ -264,18 +265,17 @@ private function getGroupByProperty(array $sorted, PropertyGroupOptionEntity $op
264265
return PropertyGroupEntity::createFrom($option->getGroup());
265266
}
266267

267-
private function loadProductReviews(SalesChannelProductEntity $product, SalesChannelContext $context): ProductReviewCollection
268-
{
268+
private function loadProductReviewCount(SalesChannelProductEntity $product, SalesChannelContext $context): int {
269269
$request = new Request();
270270
$request->request->set('parentId', $product->getParentId());
271271
$request->request->set('productId', $product->getId());
272-
$reviews = $this->productReviewLoader->load($request, $context)->getEntities();
272+
$reviews = $this->productReviewLoader->load($request, $context);
273273

274-
if ($reviews instanceof ProductReviewCollection) {
275-
return $reviews;
274+
if ($reviews->getEntities() instanceof ProductReviewCollection) {
275+
return $reviews->getTotalReviews();
276276
}
277277

278-
return new ProductReviewCollection();
278+
return 0;
279279
}
280280

281281
private function loadCustomFields(SalesChannelContext $context, ProductCollection $products): CustomFieldCollection

src/Resources/views/storefront/component/compare/partial/rating-cells.html.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
target="_blank"
1111
href="{{ seoUrl('frontend.detail.page', {'productId': product.id}) }}#review-tab-pane"
1212
aria-controls="review-tab-pane">
13-
{{ "froshProductCompare.section.content.reviewLinkText"|trans({'%count%': product.productReviews.count})|sw_sanitize }}
13+
{{ "froshProductCompare.section.content.reviewLinkText"|trans({'%count%': product.extensions.productReviews.reviewTotal})|sw_sanitize }}
1414
</a>
1515
</td>
1616
{% endblock %}

0 commit comments

Comments
 (0)