Varianten Selektor Reihenfolge ändern

Fragen und Antworten zu Produkt-Merkmalen
Antworten
tblumrich
Beiträge: 6
Registriert: 4. Nov 2016, 11:02

Varianten Selektor Reihenfolge ändern

Beitrag von tblumrich »

Hallo.

Ich teste derzeit mit dem Mini-Theme und kämpfe mich durch die Produktdarstellungen.
Wo finde ich eine Möglichkeit die Standard Reihenfolge in den Variantenselektoren zu ändern? Ich habe dort Größenangaben (32,34,36 usw.) und die werden nicht in aufsteigender Reihenfolge der Größen, sondern scheinbar durcheinander dargestellt.

Danke und Gruß
Thomas
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Varianten Selektor Reihenfolge ändern

Beitrag von supportteam2 »

Das Variantenselektor-Formular wird im Template "template_productIncludes_variantSelector_01.html5" aufgebaut. Die Merkmale und Ausprägungen liegen an dieser Stelle in der Reihenfolge vor, in der sie in den aktiven Produktvarianten vorkommen. Technisch ist das nicht direkt "zufällig", für den Betrachter de facto aber schon.

Sie haben im Template aber nun die Möglichkeit, beliebige Sortierungen zu realisieren.

Im folgenden Code-Beispiel habe ich im genannten Template ein paar Zeilen Code eingefügt, mit denen die Ausprägungen nach ihrer Bezeichnung sortiert werden (kommentiert mit "Sort the attribute values by their title"). Da die Sortierung hier im Template stattfindet, liegen die Ausprägungsbezeichnungen schon in der richtigen Ausgabesprache vor, sodass bei mehrsprachigen Auftritten die Sortierung hier gleich sprachbezogen stattfindet.

Man könnte auch die Merkmals-ID ($arrAttribute['attributeID']) bzw. die Merkmalsbezeichnung ($arrAttribute['attributeTitle']) prüfen und dann abhängig davon für die untergeordneten Ausprägungen nach unterschiedlichen Kriterien sortieren.

Code: Alles auswählen

		/*
		 * Create a variant selection form
		 */
		$attributeFormFields = array();
		foreach ($this->objProduct->_allVariantAttributes as $arrAttribute) {
			$attributeFormFields[$arrAttribute['attributeID']] = '<label>'.$arrAttribute['attributeTitle'].'</label>';
			$attributeFormFields[$arrAttribute['attributeID']] .= '<select id="ctrl_attribute_'.$arrAttribute['attributeID'].'" name="attribute_'.$arrAttribute['attributeID'].'">';
			
			$arrSelectedVariantAttributeValues = $this->objProduct->_selectedVariant->_attributes[$arrAttribute['attributeID']];
			if (is_array($arrSelectedVariantAttributeValues)) {
				reset($arrSelectedVariantAttributeValues);
			}

			/*
			 * Sort the attribute values by their title ====>
			 */
			$arr_valueTitles = array();
			foreach ($arrAttribute['values'] as $var_key => $arr_value) {
				$arr_valueTitles[$var_key] = $arr_value['valueTitle'];
			}
			array_multisort($arr_valueTitles, SORT_ASC, $arrAttribute['values']);
			/*
			 * <====
			 */


			foreach ($arrAttribute['values'] as $arrValue) {
				$attributeFormFields[$arrAttribute['attributeID']] .= '<option value="'.$arrValue['valueID'].'"'.(is_array($arrSelectedVariantAttributeValues) && $arrSelectedVariantAttributeValues[key($arrSelectedVariantAttributeValues)]['valueID'] == $arrValue['valueID'] ? ' selected' : '').'>'.$arrValue['valueTitle'].'</option>';
			}

			$attributeFormFields[$arrAttribute['attributeID']] .= '</select>';	
		}
Interessant ist hierzu auch folgender Link: http://docs.php.net/manual/en/function. ... tisort.php
tblumrich
Beiträge: 6
Registriert: 4. Nov 2016, 11:02

Re: Varianten Selektor Reihenfolge ändern

Beitrag von tblumrich »

Vielen Dank. Funktioniert! :)

Kleine Zusatzfrage. Kann man auch steuern, welche Variante als erstes nach dem Klick auf die Detailansicht aus der jeweiligen Übersicht heraus aufgerufen wird?
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Varianten Selektor Reihenfolge ändern

Beitrag von supportteam2 »

Ja, das ist leicht möglich. Im Backend müssen Sie hierzu in der Variantenübersicht eines Produktes lediglich die Reihenfolge der Varianten entsprechend einstellen, damit die Funktion ...

Code: Alles auswählen

$this->objProduct->_preselectVariantIfPossible();
..., welche im Produkt-Details-Template aufgerufen wird, die gewünschte Variante auswählt.

Die genannte Funktion selektiert die erstbeste Variante, die auf etwaige Filtereinstellungen passt und berücksichtigt dabei die von Ihnen definierte Varianten-Reihenfolge. Passen alle Varianten auf einen eventuell anzuwendenden Filter, so wird die in der Backend-Variantenübersicht oberste Variante selektiert. Ist diese aus Filtergründen nicht möglich, die nächste, usw.
tgrvm
Beiträge: 1
Registriert: 5. Mär 2020, 15:02

Re: Varianten Selektor Reihenfolge ändern

Beitrag von tgrvm »

Moin!

ich habe das in den aktuellen Code eingefügt, die Sortierung ändert sich leider nicht. Wahrschinlich hat sich seit 2016 aber auch das Template geändert... hat jemand eine Idee, wie das jetzt gehen kann?

Besten Dank und beste Grüße
Thorsten
Benutzeravatar
supportteam2
Beiträge: 427
Registriert: 4. Mär 2015, 14:05

Re: Varianten Selektor Reihenfolge ändern

Beitrag von supportteam2 »

Können Sie Ihr komplettes Template bitte an den techSupport schicken? Dann schauen wir es uns mal an.
Antworten

Zurück zu „Produkt-Merkmale / Product features“