fix sse error handling if shop api error part 5

This commit is contained in:
team2
2026-04-25 21:27:46 +02:00
parent 23c7475150
commit 06aef93d24

View File

@@ -60,11 +60,72 @@ final class ShopwareCriteriaBuilder
grouping: $grouping, grouping: $grouping,
includeRichTextFields: false, includeRichTextFields: false,
includeMediaFields: false, includeMediaFields: false,
includeSeoUrls: true, includeSeoUrls: false,
includeManufacturer: false includeManufacturer: false
); );
} }
/**
* Builds an ultra-safe Store API payload for the final recovery attempt.
* It keeps only identity, availability and price fields and intentionally
* avoids grouping, associations, translated text, SEO, media and custom data.
*/
public function buildUltraSafe(
CommerceSearchQuery $query,
?int $limit = 25,
?bool $grouping = false
): array
{
$criteria = [
'page' => 1,
'limit' => max(1, $limit),
'total-count-mode' => 0,
'includes' => [
'product' => [
'id',
'productNumber',
'available',
'calculatedPrice',
],
'calculated_price' => [
'unitPrice',
'totalPrice',
'referencePrice',
'listPrice',
'regulationPrice',
],
],
'associations' => [],
];
if ($query->searchText !== '') {
$criteria['search'] = $query->searchText;
}
if ($query->priceMin !== null) {
$criteria['min-price'] = $query->priceMin;
}
if ($query->priceMax !== null) {
$criteria['max-price'] = $query->priceMax;
}
$criteria['filter'] = [
[
'type' => 'equals',
'field' => 'active',
'value' => true,
],
[
'type' => 'equals',
'field' => 'available',
'value' => true,
],
];
return $criteria;
}
private function buildCriteria( private function buildCriteria(
CommerceSearchQuery $query, CommerceSearchQuery $query,
?int $limit, ?int $limit,