Varianten Selektor Reihenfolge ändern

Fragen und Antworten zu Produkt-Merkmalen

Varianten Selektor Reihenfolge ändern

Beitragvon tblumrich » 4. Nov 2016, 15:44

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
tblumrich
 
Beiträge: 6
Registriert: 4. Nov 2016, 11:02

Re: Varianten Selektor Reihenfolge ändern

Beitragvon supportteam2 » 4. Nov 2016, 16:46

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
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 418
Registriert: 4. Mär 2015, 14:05

Re: Varianten Selektor Reihenfolge ändern

Beitragvon tblumrich » 4. Nov 2016, 17:15

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?
tblumrich
 
Beiträge: 6
Registriert: 4. Nov 2016, 11:02

Re: Varianten Selektor Reihenfolge ändern

Beitragvon supportteam2 » 7. Nov 2016, 05:59

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.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 418
Registriert: 4. Mär 2015, 14:05

Re: Varianten Selektor Reihenfolge ändern

Beitragvon tgrvm » 6. Mär 2020, 15:41

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
tgrvm
 
Beiträge: 1
Registriert: 5. Mär 2020, 15:02

Re: Varianten Selektor Reihenfolge ändern

Beitragvon supportteam2 » 7. Mär 2020, 11:38

Können Sie Ihr komplettes Template bitte an den techSupport schicken? Dann schauen wir es uns mal an.
Ihr MERCONIS-Supportteam
Your MERCONIS Support Team
Benutzeravatar
supportteam2
 
Beiträge: 418
Registriert: 4. Mär 2015, 14:05


Zurück zu Produkt-Merkmale / Product features

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast