From 83fc13206f5e170edf154221919ef4e18d67e66c Mon Sep 17 00:00:00 2001 From: team 1 Date: Sun, 19 Apr 2026 11:10:33 +0200 Subject: [PATCH] harden rag an shop scoring --- src/Commerce/ShopSearchService.php | 29 ++++++++++++++++-------- src/Config/CommerceIntentConfig.php | 2 ++ src/Shopware/ShopwareCriteriaBuilder.php | 9 +------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/Commerce/ShopSearchService.php b/src/Commerce/ShopSearchService.php index 94c0b3f..504e316 100644 --- a/src/Commerce/ShopSearchService.php +++ b/src/Commerce/ShopSearchService.php @@ -376,7 +376,7 @@ final readonly class ShopSearchService private function cleanUpDescription(array $description): string { if (isset($description['translated']['description'])) { - $newDesc = strip_tags((string) $description['translated']['description']); + $newDesc = strip_tags((string) ($description['translated']['description'])); $newDesc = html_entity_decode($newDesc); $newDesc = preg_replace('/^[ \t]*\R/m', '', $newDesc); $newDesc = preg_replace('/[ \t]{2,}/', ' ', $newDesc); @@ -409,18 +409,27 @@ final readonly class ShopSearchService return null; } - $unitPrice = $calculatedPrice['unitPrice'] - ?? $calculatedPrice['totalPrice'] - ?? $calculatedPrice['referencePrice'] - ?? $calculatedPrice['listPrice'] - ?? $calculatedPrice['regulationPrice'] - ?? null; + $candidates = [ + $calculatedPrice['unitPrice'] ?? null, + $calculatedPrice['totalPrice'] ?? null, + $calculatedPrice['referencePrice'] ?? null, + $calculatedPrice['listPrice'] ?? null, + $calculatedPrice['regulationPrice'] ?? null, + ]; - if (!is_numeric($unitPrice)) { - return null; + foreach ($candidates as $candidate) { + if (!is_numeric($candidate)) { + continue; + } + + $value = (float) $candidate; + + if ($value > 0.0) { + return number_format($value, 2, ',', '.') . ' €'; + } } - return number_format((float) $unitPrice, 2, ',', '.') . ' €'; + return null; } private function extractUrl(array $row): ?string diff --git a/src/Config/CommerceIntentConfig.php b/src/Config/CommerceIntentConfig.php index 875b427..19f7cf8 100644 --- a/src/Config/CommerceIntentConfig.php +++ b/src/Config/CommerceIntentConfig.php @@ -16,6 +16,7 @@ class CommerceIntentConfig 'sku', 'Artikel', 'kaufen', + 'kostet', ]; } @@ -41,6 +42,7 @@ class CommerceIntentConfig 'teuer', 'preis', 'kosten', + 'kostet', ]; return implode('|', $pattern); diff --git a/src/Shopware/ShopwareCriteriaBuilder.php b/src/Shopware/ShopwareCriteriaBuilder.php index 336b49c..00c757b 100644 --- a/src/Shopware/ShopwareCriteriaBuilder.php +++ b/src/Shopware/ShopwareCriteriaBuilder.php @@ -69,14 +69,7 @@ final class ShopwareCriteriaBuilder ] ] ] - ], - 'sort' => [ - [ - 'field' => 'name', - 'order' => 'ASC', - 'naturalSorting' => true, - ], - ], + ] ]; if ($grouping) {