Criteria funktioniert mit im Falle von "ähnliche Artikel" nicht

Hallo,

ich habe ein Plugin geschrieben, das Criteria/Condition dafür verwendet, nur die Artikel in Listings anzuzeigen, die Lieferzeit kleiner eines bestimmten Wertes haben. Das funktioniert im Allgemeinen gut, aber hat anscheinend keinen Effekt auf den Block „Ähnliche Artikel“, wo standardmäßig die Ähnlichkeit laut Shopware Doku nach Kategorie bestimmt wird. So sieht MeinConditionHandler->generateCondition() aus:

public function generateCondition(
        ConditionInterface $condition,
        QueryBuilder $query,
        ShopContextInterface $context
    ) {

        $minLieferzeit = 120;

        if (!$query->hasState(self::STATE_INCLUDED)) {

            $query->innerJoin(
                 'product',
                 's_articles_details',
                 'details',
                 'details.articleID = product.id'
            );

            $query->andWhere("details.shippingtime < $minLieferzeit"); 

            $query->addState(self::STATE_INCLUDED);
        }
    }

So sieht die $query->getSQL() aus, wenn ich es an dieser Stelle mit die($query->getSQL()) ausgebe:

SELECT FROM s_articles product INNER JOIN s_articles_details variant ON variant.id = product.main_detail_id AND variant.active = 1 AND product.active = 1 INNER JOIN s_articles_categories_ro productCategory ON productCategory.articleID = product.id AND productCategory.categoryID IN (:productCategory) LEFT JOIN s_articles_avoid_customergroups avoidCustomerGroup ON avoidCustomerGroup.articleID = product.id AND avoidCustomerGroup.customerGroupId IN (:customerGroupIds11111111111111111111) INNER JOIN s_articles_details details ON details.articleID = product.id INNER JOIN s_articles_attributes productAttribute ON productAttribute.articledetailsID = variant.id WHERE (avoidCustomerGroup.articleID IS NULL) AND (details.shippingtime < 120)

(111111111111111 – hier habe ich die tatsächliche Zahlen geändert)

Wie könnte ich das Problem lösen?

Ein bisschen erweiterte Infos. Der Block ist bei uns keine Ajax-Block, sondern verwendet /frontend/includes/product_slider_items.tpl. Was aber wieder keinen Tipp gibt, warum Criteria keinen Effekt hat…

Wahrscheinlich habe ich doch eine Idee. Die Doku von SearchBundle git uns die Liste von den Kontexten, wo Criteria Effekt hat:

  • Search
  • Listing
  • AjaxSearch
  • AjaxListing
  • AjaxCount
  • ProductNavigation

Ich vermute, der Controller Shopware_Controllers_Frontend_Detail hat einfach nichts damit zu tun und deshalb wird Criteria nicht angewandt. Ist die Denkweise richtig? Oder doch hat er etwas mit ProductNavigation zu tun?