# Product Slider Randomizer

**URL:** <https://forum.shopware.com/t/product-slider-randomizer/95352>\
**Category:** Programmierung\
**Created:** [19. Juli 2022 um 06:45 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352 "2022-07-19T06:45:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [19. Juli 2022 um 06:45 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/1 "2022-07-19T06:45:22Z")

</div>

Hallo,

was wär denn der beste Weg, die Ausgabe der Produkte im Slider zu randomizen? Da ich dann eine Checkbox in den Erlebniswelten Settings bräuchte, die die Funktionalität aktiviert/deaktiviert, müsste ich das Plugin überschreiben/erweitern?

Funktioniert sowas überhaupt?

LG Alex

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [19. Juli 2022 um 17:22 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/2 "2022-07-19T17:22:32Z")

</div>

Einfach das CMS-Element des Slider kopieren und im Resolver entsprechende Random Funktion beim laden der Artikel einbinden. Dort kann auch die an/aus Funktion gleich integriert werden.

Und ja, das CMS-Element wird in ein eigenes Plugin gepackt.

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [20. Juli 2022 um 08:49 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/3 "2022-07-20T08:49:46Z")

</div>

Alles klar, hab mir schon gedacht. Danke dir!  
Der Slider ist eh an sich nicht so der Burner^^

---

<div class="post-metadata">

**Author:** ![AlexBS](https://avatars.discourse-cdn.com/v4/letter/a/ed655f/32.png) [@AlexBS](https://forum.shopware.com/u/AlexBS)\
**Post date:** [6. August 2022 um 14:41 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/4 "2022-08-06T14:41:48Z")

</div>

Ich habe das jetzt mal probiert und den product-slider aus vendor\shopware\administration\Resources\app\administration\src\module\sw-cms\elements in mein plugin kopiert.

Eine service.xml habe ich nicht gefunden, gibt es da einen DataResolver? Leider zeigt er mir natürlich auch nach dem builden der administration kein CMS Element an.

Würdest du mir vielleicht ein paar Tipps oder Hinweise geben, wie ich diesbezüglich vorankommen kann?

Danke und Lg,  
Alex

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [6. August 2022 um 21:21 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/5 "2022-08-06T21:21:19Z")

</div>

CMS-Elemente sind dreigeteilt:

```auto
<?php declare(strict_types=1);

namespace Shopware\Core\Content\Cms\DataResolver\Element;

use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;

interface CmsElementResolverInterface
{
    public function getType(): string;

    public function collect(CmsSlotEntity $slot, ResolverContext $resolverContext): ?CriteriaCollection;

    public function enrich(CmsSlotEntity $slot, ResolverContext $resolverContext, ElementDataCollection $result): void;
}

```

> **[Add data to CMS element](https://developer.shopware.com/docs/guides/plugins/plugins/content/cms/add-data-to-cms-elements#create-a-data-resolver)**

In collect solltest du per $criteria das Ergebnis verändern können.

---

<div class="post-metadata">

**Author:** ![zlep](https://avatars.discourse-cdn.com/v4/letter/z/9de0a6/32.png) [@zlep](https://forum.shopware.com/u/zlep)\
**Post date:** [7. August 2022 um 04:46 UTC](https://forum.shopware.com/t/product-slider-randomizer/95352/6 "2022-08-07T04:46:53Z")

</div>

Wenn ich dich richtig verstehe, habe ich hier so etwas ähnliches gemacht, wie du fragst. Vielleicht hilft es weiter: [CMS Blöcke in TWIG Template nutzen? - #21 von zlep](https://forum.shopware.com/t/cms-bloecke-in-twig-template-nutzen/94865/21)

Allerdings muss ich dazu meinen Produkten ein Tag geben. Ein Randomizer oder z.B. automatisch die Bestseller anzuzeigen, würde mich auch noch interessieren.

Außerdem wird das Ergebnis gechached. Es werden also aus 20 Produkten immer die gleichen z.B. 10 angezeigt. Für mich nicht so schlimm, aber natürlich etwas blöd. Vielleicht kennt jemand eine Lösung? @Max_Shop
