Hi,
versuche gerade eine Artikel Variante zu erzeugen. Variante wird in Frontend auch angezeigt, jedoch kann ich die Untervarianten nicht selektieren (bzw. es wird immer wieder auf die Hauptvariante umgeswitched).
Ich vermute es liegt daran, dass noch nicht alle dafür nötigen Felder richtig gesetzt sind.
Wenn ich die Variante mit denen vergleiche, die ich im Backend händisch erzeugt habe, sind bei diesen im Fenster Artikel-> ‚Artikeldetails‘, ‚Varianten‘, ‚verfügbare Varianten‘ alle Untervarianten aufgelistet, bei der vom Script erzeugten ist diese List leer, ich weis aber nicht, aus welcher DB-Tabelle sich diese Liste füllt und nicht, wie ich dies per Script fülle.
In der Datenbank habe ich bisher nur Unterschiede in s_article_configurator_option_relations gefunden, in denen meine Varianten nicht drin sind.
Falls es daran liegt, wie packe ich meine Variante dort per Script rein?
ConfiguratorSet, Group und Option hab ich gesetzt, diese verknüpft meine Varianten aber ja nicht.
Oder gibt es ev. eine Funktion die ich mit Script aufrufen kann, die alle Varianten, ähnlich dem Backend erzeugt?
Ok, hab nun mal in Adminer (DB) testweise in s_article_configurator_option_relations zwei neue Datensätze gemacht, mit in
article_id die id aus s_articles_details und
option_id die id aus s_article_configurator_options und alles funktioniert, die Dateneinträge im Backend tauchen auch richtig auf. Es lag also daran.
Nun bleibt nur noch die Frage, wie bekomme ich diese Werte dort rein, möglichst ohne direkt einen SQL-Befehl loszueisen. ( $configuratorSet->optionRelations = array? )
Oder hab ich bei dem Setzen der Options was übersehen, muss dort irgendwo ein Verweis auf meine Varianten rein?
Edit, falls es nur mit SQL gehen sollte, kannst du natürlich auch posten, wie du das mit SQL zum laufen bekommst.
Hier ist meine SQL Lösung für die Community. Habe bisher keine SW5 Funktion dafür gefunden:
$art_id= $detail->getId();
$art_id2= $detail_variant1->getId();
$con_id= $configuratorOption->getId();
$con_id2= $configuratorOption2->getId();
// not nice, but seems there is no function for so let's dive in SQL...
$sql = "INSERT INTO s_article_configurator_option_relations (id, article_id, option_id)
VALUES(DEFAULT, ?, ?),
(DEFAULT, ?,?)";
echo("SQL configurator_option_relations: " . $art_id . ", " . $con_id . " ". $art_id2 . " ".$con_id2. "<br>");
Shopware()->Db()->query($sql, array($art_id, $con_id, $art_id2, $con_id2));