Vorauswahl Platzhalter bei Variantenartikel mit Dropdown

Hallo,

wir haben unseren Shopware 6 Shop fast fertig, die Produkte wurden aus SW5.6 migriert und das Template angepasst. Allerding haben wir noch ein Problem auf der Produktseite.

Da wir fast ausschließlich Variantenartikel habe, haben wir in den Eigenschaften die Darstellung der Ausprägungsauswahl auf Dropdown gestellt, diese Art der Darstellung hatten wir auch schon in SW5. Da wir Kleidung in verschiedenen Größen anbieten macht eine Vorauswahl der Varianten keinen Sinn, wir würden gerne in dem Select-Feld der Variate einen Platzhalter über das Template einfügen (“Bitte größe wählen”).

Den Platzhalter haben wir auch schon als option in der storefront\page\product-detail\configurator\select.html.twig eingefügt, und mit ‘selected=„selected“’ wird dieser auch als Vorauswahl angezeigt, sobald der Kunde aber die Größe/Variante auswählt wird die Seite neu geladen und im Dropdown wird natürlich immer noch der Platzhalter als ausgewählte option angezeigt, wie können wir nach der Auswahl durch den Kunden/neu laden der Seite die ausgewählte Option im Select-Feld anzeigen.

Hat jemand so etwas in SW6 schonmal umgesetzt oder hat eine Idee wie man das machen könnte?

Viele Grüße

In der If-Schleife wird ja eine Variable abgefragt, ob das select bei irgendeiner Option gesetzt wird oder nicht.

Du müsstest schauen, wie die Abfrage für den Default-Fall lautet, sprich wenn noch keine Option ausgewählt wurde, sondern die Vorauswahl ausgewählt wird. Eventuell haben die Variablen dann einen anderen Wert. Das müsstest du möglichst unterbinden und dann einfach bei „Bitte Größe wählen“ ebenfalls ein if einbauen, dass das selected nur Angebot, wenn die anderen nicht selected sind.

Die ausgewählte Option wird je nachdem angezeigt welche id in der page.product.optionIds steht, da gibt es aber keinen Unterschied ob es die Vorauswahl ist oder der Nutzer schon eine Variante ausgewählt hat.
Generell gibt es, so wie ich das gesehen habe keinen Unterschied bei den Variablen, egal ob es sich um eine Vorauswahl oder manuelle Auswahl handelt.

Dann müsstest du ggfs. den Referer abfragen. Wenn dieser von einer anderen Variante kommt, dann weißt du ja, dass es vom Benutzer initiiert wurde. Falls vom Listing dann kannst du davon ausgehen, dass noch keine Auswahl getroffen wurde.

Super Tipp, mit app.request.headers.get(‚referer‘) konnten wir die URL von der vorherigen Seite und mit app.request.attributes.get(‚sw-original-request-uri‘) die aktuelle URL anzeigen.

Die beiden URLs werden dann in TWIG noch etwas formatiert und die Größe am Ende abgeschnitten. Dann wird einfach nur geguckt ob der Teil der aktuellen URL in der Referer-URL enthalten ist, wenn ja wird die „Bitte Größe wählen“-Option nicht angezeigt.

Vielen Dank

1 „Gefällt mir“