# Produkte aus SalesChannelProductRepository

**URL:** <https://forum.shopware.com/t/produkte-aus-saleschannelproductrepository/100881>\
**Category:** Shopware 6 (German)\
**Created:** [15. August 2023 um 15:09 UTC](https://forum.shopware.com/t/produkte-aus-saleschannelproductrepository/100881 "2023-08-15T15:09:30Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [15. August 2023 um 15:09 UTC](https://forum.shopware.com/t/produkte-aus-saleschannelproductrepository/100881/1 "2023-08-15T15:09:31Z")

</div>

Hallo,

in einem Controller ermittle ich die Daten eines Produktes, bezogen auf den aktuellen SalesChannel:

```auto
$salesChannelProductRepository = $this->container->get('sales_channel.product.repository');
$criteria = (new Criteria())->addFilter(new EqualsFilter('product.id', $productId));
$criteria->addAssociation('crossSellings.assignedProducts.product');
$salesChannelProduct = $salesChannelProductRepository->search($criteria, $context)->first();

```

Konkret benötige ich sämtliche Cross Selling Produkte für das Produkt mit `$productId`.

Durch `$criteria->addAssociation('crossSellings.assignedProducts.product');` bekomme ich die auch. Mein Problem ist aber, dass ich nur die Cross Selling Produkte haben möchte, die im aktuellen SalesChannel ($context) sichtbar sind. Kann man dies direkt filtern?

Viele Grüße, Frank

---

<div class="post-metadata">

**Author:** ![Frank\_2812](https://avatars.discourse-cdn.com/v4/letter/f/b19c9b/32.png) [@Frank\_2812](https://forum.shopware.com/u/Frank_2812)\
**Post date:** [16. August 2023 um 09:25 UTC](https://forum.shopware.com/t/produkte-aus-saleschannelproductrepository/100881/2 "2023-08-16T09:25:18Z")

</div>

Hallo,

ich habe die Lösung gefunden. Falls es mal jemand benötigt, man kann die Assoziationen filtern. In meinem Fall folgendermaßen:

```auto
$criteria->getAssociation('crossSellings.assignedProducts')->addFilter(
    new EqualsFilter('product.visibilities.salesChannelId', $context->getSalesChannel()->getId())
);

```

Es werden dadurch nur die Cross Selling Produkte angehangen, die im aktuellen SalesChannel sichtbar sind.

Viele Grüße, Frank
