public function joinPrice(QueryBuilder
$query, Criteria
$criteria, ShopContextInterface
$context) { if ($query->
hasState(PriceConditionHandler::LISTING_PRICE_JOINED
)) { return;
} $query->
addState(PriceConditionHandler::LISTING_PRICE_JOINED
);
if (!
$criteria->
hasConditionOfClass(VariantCondition::
class)) { $this->
joinCheapestProductPrice($query,
$context);
return;
} $this->variantHelper->
joinPrices($query,
$context,
$criteria);
} private function joinCheapestProductPrice(QueryBuilder
$query, ShopContextInterface
$context): void
{ $table =
$this->listingPriceTable->
get($context);
$query->
innerJoin('product', '(' .
$table->
getSQL() . ')', 'listing_price', 'listing_price.articleID = product.id'
);