Die folgende Funktion (in Schleife über alle $ordernummer) führte dazu, dass sämtlche Varianten anschließend Hauptartikel waren: $price= array("ordernumber"=\>$ordernumber, "price"=\>$netto); $stock= array("ordernumber"=\>$ordernumber, "instock"=\>$bestand, "active"=\>$active); $weight = array("ordernumber" =\>$ordernumber, "weight"=\>$gewicht); $import-\>sArticlePrice($price); $import-\>sArticleStock($stock); $import-\>sArticle($weight);
Wo ist der Fehler? In der Schleife können auch ordernumbers vorkommen, die in Shopware nicht vorhanden sind. Ich würde dabei erwarten, dass die Funktion diese Artikel dann einfach ignoriert.
Offensichtlich wird das Feld “kind” beim Import über die API standardmäßig auf 1 gesetzt. Also API nicht benutzen, sondern hart codierte SQL Abfragen verwenden
Ich habe zur ganz harten Löscung gegriffen und in der engine/connectors/api/import/shopware.php die Zeilen // if(isset($article['kind'])) // $upset[] = "kind=".$article['kind'];
auskommentiert, da ich den Zustand der kind Variable sowieso niemals über die API ändern wollen werde. Aber da es so funktioniert, ist klar, dass es ein Bug in der shopware.php Datei ist. Es gibt übrigens parallel einen zweiten Thread mit demselben Problem.