Hallo,
ich habe über ein Plugin den product slider auf der Detailseite eingebunden. Um die Produktdaten zu laden benutze ich das SalesChannelRespository, welches beim ProductPageLoadedEvent einige Artikel lädt (via search function). Diese Artikel gebe ich als page extension weiter:
$event->getPage()->addExtension('my-extension', new ArrayStruct($myProducts, 'myArrayStruct'));
Auf der Detailseite binde ich dann einen product-slider ein:
{% set config = {
'title': {
'value': 'slider.title' | trans
},
'border': {
'value': false
},
'rotate': {
'value': false
},
'products': {
'value': page.extensions['my-extension'].all
},
'boxLayout': {
'value': 'standard'
},
'elMinWidth': {
'value': '300px'
},
'navigation': {
'value': true
},
'displayMode': {
'value': 'minimal'
},
'verticalAlign': {
'value': 'top'
},
} %}
{% sw_include "@Storefront/storefront/element/cms-element-product-slider.html.twig" with {
sliderConfig: config,
element: {
'data': {
'products': {
elements: page.extensions['my-extension'].all
}
},
type: 'product-slider'
}
} %}
Das funktioniert hervorragend, allerdings bekomme ich teilweise zum gleichen parent viele verschiedene children. Ich würde gerne erreichen, dass pro parent nur ein child aufgelöst wird. Unsere children sind im Grunde nur unterschiedliche Farben, es wäre aber interessanter, verschiedenere Produkte anzuzeigen.
Ist das möglich? Ich habe das Gefühl, dass Shopware 6, wenn ich selbst eine dynamische Produktgruppe erstelle und diese mit einem Produkt Slider in einer Landingpage verknüpfe schon nur ein Child pro parent anzeigt. Nur mit dem Sales Channel Repository scheint das nicht so zu funktionieren.