API - Post Variants liefert "Invalid or missing auth"

Hallo,

ich hatte vor einiger Zeit ein Skript geschrieben, welches die Artikel aus der Lagersoftware mit den im Shop angebotenen Artikeln abgleicht und ggf. Änderungen von Varianten angibt, welche per Knopfdruck an Shopware übermittelt werden.

Das funktioniert so weit auch ganz gut, allerdings ist es aus mir nicht erklärlichen Gründen nicht möglich, eine einzelne Variante zum Artikel hinzuzufügen über einen Varianten-Post…

$client = new ApiClient($shop_url, $shop_user, $shop_api);


/* Diverser Code inklusive einigen, erfolgreichen Api-Requests */


// Rest-API - Gerüst für Neuanlage aufbauen
$tmp_variant_array = array(
                        'isMain' => "false",
                        'articleId' => $erg["data"]["articleId"],
                        'number' => $anz_variant_infos["variante_nr"],
                        'inStock' => $anz_variant_infos["Menge"],
                        'minPurchase' => $erg["data"]["minPurchase"],
                        'purchaseUnit' => $erg["data"]["purchaseUnit"],
                        'referenceUnit'	=> $erg["data"]["referenceUnit"],
                        'packUnit' => $erg["data"]["packUnit"],
                        'additionaltext' => '',
                        'weight' => $erg["data"]["weight"],
                        'active' => $anz_variant_infos["is_active"],
                        'shippingFree' => (($erg["data"]["shippingFree"]=="")?("false"):($erg["data"]["shippingFree"])),
                        'configuratorOptions' => $tmp_var_groups,
                        'prices' => $price_arr
                    );

//die("".print_r($tmp_variant_array,true)."");
echo $client->error_msg."vorbei";

//echo $anz_variant_infos["variante_nr"];
$erg = $client->post("variants/".$anz_variant_infos["variante_nr"]."?useNumberAsId=true", $tmp_variant_array);
//die("Ausgabe:".print_r($erg,true)."");
die($client->error_msg);

Das Skript läuft bis zum Post-Befehl und das wars, obwohl die Api problemlos Artikelinformationen ausgelesen, geupdated und Varianteninfos eingeholt hat,
behauptet der Client plötzlich, in einen Authentification-Error gelaufen zu sein…

Ausgabe:

vorbei

Invalid or missing auth

Der Api-User ist Local_Admin und hat alle Rechte… muss man für Varaint-Posts noch ein zusätzliches Recht anlegen im Backend?

An einer Zeitüberschreitung liegt es nicht, das Skript wäre nach kaum 1 Minute fertig…

… Ich denke, dass hier Nachholbedarf seitens Shopware besteht…

//die("".print_r($tmp_variant_array,true)."");
//echo $client->error_msg."vorbei";
//echo $anz_variant_infos["variante_nr"];

$db_shop_connect = get_shop_connect($db_lager_connect,$_REQUEST["shop"]);
$getID = "SELECT (max(id)+1) as ID from s_articles_details";
$ergID = db_query($db_shop_connect, $getID);
list($new_id) = db_fetch_array($ergID);
if($new_id != "") {
    $erg = $client->post("variants/".$new_id, $tmp_variant_array);
}

Habe im Skript nun den “useNumberAsId=true” - Bereich ausgetauscht mit obigem Testgerüst zur Ermittlung der nächsten, freien ID (eigentlich no-go) und der Fehler kommt nicht mehr, das ist aber sowas von Fehleranfällig…

Muss ich die Variante ansonsten wirklich manuell in die Datenbank eintragen? Das kann ja wohl auch nicht im Sinne des Erfinders sein…

-> Ein Update des Artikels wäre wahnsinn, der Artikel hat > 10.000 Varianten, welche ich dann ja alle wieder durchlaufen und aufbereiten müsste!