Hallo zusammen,
nach nun einigen Tests habe ich das Problem gefunden.
System:
- Shopware 5.5.x
- Premium Plugin SwagBonusSystem Version 5.0.0 (die höchste für SW 5.5.x)
- ElasticSearch 6
Das Plugin SwagBonusSystem bringt einen Filter “Bonus Artikel” mit, der den Fehler auf Kategorieseiten erzeugt. Das Problem wurde wohl in Pluginversion 5.1.2 behoben, aber das ist leider nur ab Shopware 5.6.x verfügbar.
Das bedeutet nun entweder den Filter deaktivieren oder die Lösung übernehmen. Meiner Ansicht nach müssten Anpassungen an folgenden Stellen die Anpassungen ausreichen (bisher ungetestet):
SwagBonusSystem\Bundle\SearchBundleES\BonusConditionHandler.php
/\*\* \* {@inheritdoc} \*/ public function handleFilter( CriteriaPartInterface $criteriaPart, Criteria $criteria, Search $search, ShopContextInterface $context ) { $search-\>addQuery( new TermQuery(self::ES\_FIELD, 1) ); }
–> 1 muss zu true geändert werden.
Direkt die folgende Funktion:
/**
* {@inheritdoc}
*/
public function handlePostFilter(
CriteriaPartInterface $criteriaPart,
Criteria $criteria,
Search $search,
ShopContextInterface $context
) {
$search->addPostFilter(new TermQuery(self::ES_FIELD, 1));
}
–> 1 muss zu true geändert werden.
SwagBonusSystem\Bundle\SearchBundleES\BonusFacetHandler.php
/\*\* \* {@inheritdoc} \*/ public function handle( CriteriaPartInterface $criteriaPart, Criteria $criteria, Search $search, ShopContextInterface $context ) { $aggregation = new ValueCountAggregation('has\_bonus'); $aggregation-\>setField(self::ES\_FIELD); $filterAgg = new FilterAggregation('has\_bonus\_filter'); $filterAgg-\>setFilter(new TermQuery(self::ES\_FIELD, 1)); $filterAgg-\>addAggregation($aggregation); $search-\>addAggregation($filterAgg); }
–> auch hier 1 zu true.
Also im Prinzip immer “new TermQuery(self::ES_FIELD, 1)” zu “new TermQuery(self::ES_FIELD, true)” ändern.
Hoffe das hilft weiter, wenn noch jemand das Problem hat.