Verändern einer Variante eines Artikels

Hallo liebe Community,

habe eine Frage zu den Varianten in Oxid.

Ich habe ein kleines Testmodul gebaut und in meine Artikelbeschreibung eingebunden. Es wird von oxArticle geerbt.
Nachdem ich mich ein bisschen durch die Doku zu den OXArtikeln gehangelt hab, habe ich rausgefunden das ich mir die Varianten eines Artikels schonmal mit der Methode $myArticle->getVariants() holen kann.

Auch habe ich zum Beispiel schon den Namen eines Artikels mit $myArticle->oxarticles__oxtitle->setValue(“My product is awesome!”); geändert- soweit so gut!

Wie kann ich jetzt die Varianten eines Artikels verändern?
Gibt es so etwas wie:
$myArticle->oxarticles__variations->setValue(myVariations); ?

Außerdem verstehe ich leider noch nicht, wo genau die Attribute wie zum Beispiel oxtitle gespeichert werden bzw wo in einesehen kann welche Klasse welche Attribute hat. In der Dokumentation von Oxid ist zum Beispiel unter der oxArticle Klasse --> http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.9.2/classox_article.html#ada952f96310a361b5035317b9a816122 kein Attribut oxtitle in der Beschreibung enthalten.

[QUOTE=marvpaul;188653]Wie kann ich jetzt die Varianten eines Artikels verändern?
Gibt es so etwas wie:
$myArticle->oxarticles__variations->setValue(myVariations); ? [/QUOTE]

s. Admin: article_variant.php // article_variant.tpl

[QUOTE=marvpaul;188653]
Außerdem verstehe ich leider noch nicht, wo genau die Attribute wie zum Beispiel oxtitle gespeichert werden bzw wo in einesehen kann welche Klasse welche Attribute hat. In der Dokumentation von Oxid ist zum Beispiel unter der oxArticle Klasse --> http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.9.2/classox_article.html#ada952f96310a361b5035317b9a816122 kein Attribut oxtitle in der Beschreibung enthalten.[/QUOTE]

Stichwort: oxattribute und oxobject2attribute

Danke, hab mir da jetzt ne ganze Menge von abgeschaut und in meinem Modul selbst eine abgespeckte Version von savevariant eingebaut:


public function savevariant($aParams = null)
    {
        /** @var oxArticle $oArticle */
        $oArticle = oxNew("oxarticle");
        $oArticle->setLanguage(0);
        $oArticle->assign($aParams);

        $oArticle->oxarticles__oxisconfigurable = new oxField($this->oxarticles__oxisconfigurable->value);
        $oArticle->oxarticles__oxremindactive = new oxField($this->oxarticles__oxremindactive->value);

       
        $oArticle->save();
    }

An die Funktion habe ich dann folgendes übergeben und alles läuft ohne Probleme:

$this->savevariant(array( “oxarticles__oxvarselect” => “Artikelname 23”, “oxarticles__oxartnum” => “101”, “oxarticles__oxprice” => “100.00”, “oxarticles__oxsort” => “90030”, “oxarticles__oxstock” => “1”, “oxarticles__oxstockflag” => “1”, “oxarticles__oxshopid” => “oxbaseshop”, “oxarticles__oxparentid” => (string)$this->oxarticles__oxid, “oxarticles__oxactive” => “1”));

$this ist mein konkreter oxarticle zu dem ich eine Variante hinzufügen möchte