Artikelnummern der Varianten in selectbox.tpl, lazy loading?

Hallo zusammen,

ich möchte in widget/product/selectbox.tpl auf die Artikel-Nr. (oxartnum) der jeweiligen Varianten zugreifen.
Per lazy loading komme ich entweder nur an die Werte des Elternartikels [{$oDetailsProduct->oxarticles__oxartnum->value}]
oder an die der bereits ausgewählten Variante
[{ $oPictureProduct->oxarticles__oxartnum->value}]

Das Objekt $oSelection scheint (über vordefinierte Funktionen) nur den Artikeltitel und die ID preiszugeben; lazy loading scheint hier nicht zu funktionieren, denn
[{$oSelection->oxarticles__oxartnum->value}] gibt nichts aus.

Nun möchte ich die fehlenden Daten an das Template übergeben.
In models/oxselection.php werden die Werte offenbar nur durchgeschleift, aber nicht aus der DB ausgelesen. (Soweit ich das MVC-Prinzip verstanden habe, müsste das eigentlich hier passieren…?) Ich kann hier also keine zusätzlichen Werte auslesen und an das Template übergeben.

Hat jemand einen Hinweis, wo ich ansetzen muss?
z.B.: Wo bekommt oxselection.php seine Variablen her? Oder geht lazy loading doch irgendwie mit $oSelection in selectbox.tpl?

Danke für einen Tipp…

Es gibt in selectbox.tpl keine Werte weil die Einträge keine Varianten sind, wegen mehrdimensionalen Varianten. Z.B. “Blau” => keine Variante, “42” => keine Variante, “Blau/42” => Variante. Wenn du mehr Infos haben willst schau dir die Variantenauswahl für eindimensionale Varianten in Versionen vor 4.5 an, da hast du komplette Objekte.

Äh, logisch - Varianten entstehen erst aus der Kombi :o
Danke für den entscheidenden Hinweis!

Ich hab’s jetzt so gelöst, dass ich in models/oxselection.php per eigener Funktion über den aktuellen Farbnamen die erstbeste passende Variante aus der Datenbank hole und dort die Artikelnummer (und für meinen Fall damit auch den Farb-Code) auslese.

    public function getColcode()  
    {
      // find colour code (e.g. WHI) by colour name of variants 
      $oDb = oxDb::getDb();                             
        
      $sSql = "SELECT RIGHT(OXARTNUM,3) as COLCODE
               FROM `oxarticles` 
               WHERE OXVARSELECT LIKE '%" . $this->_sName . "' 
               LIMIT 1";                               
          	    	    	    			                 
      return $oDb->getOne($sSql);
    }  

In selectbox.tpl kann ich das dann per
[{$oSelection->getColcode()}]
ausgeben.

Jetzt muss ich nur noch ein Modul daraus machen…