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…