Kauert Posted March 31, 2022 Report Share Posted March 31, 2022 Hallo Liebes Forum, zunächst kurze Info zum System: xt:Commerce Version 6.1.2 Plugin xt_api Version 6.0.6 Nun mein Problem/meine Frage: Ich bekam die Aufgabe, dieses Plugin Einzurichten, damit später in einem anderen Programm mit den Daten gearbeitet werden kann. Ich hielt mich dabei an die Anleitung von xt:Commerce zu dem Plugin. Ich habe im Schritt " Authentifizierung & Request" folgende Dinge befolgt Einen Benutzer unter Einstellungen > API angelegt Benutzer und Log aktiviert Und nun stehe ich leider schon auf dem Schlauch, denn der Aufruf über http://YOUR-SHOP.com/index.php?page=xt_api (Domain natürlich mit der richtigen ausgetauscht) liefert mir folgenden Output: {"result":false,"message":"invalid JSON"} Ich kenne mich leider mit API Schnittstellen nicht aus, gehe aber stark davon aus, das hier noch ein Zwischenschritt fehlt, da ich noch nirgends angegeben habe, was den überhaupt ausgegeben werden soll. In der Anleitung steht als Beispiel Call zum Beispiel eine kleine JSON Datei. Mein erster Gedanke ist also, das ich diese Datei/diesen Code irgendwo angeben muss, damit er auch ausgeführt wird. Nun steht hier leider nirgends wo. Ich habe schon recherchiert, aber die meisten Forenbeiträge sind immerhin schon an einem Punkt, wo etwas ausgeben wird. Leider bin ich bis dahin noch gar nicht gekommen. In xt:Commerce selbst finde ich nur die Einstellungen zu dem Benutzer und das Log, in dem nichts steht. Meine Frage ist nun also, wo/wie ich der API sage, was genau sie ausführen soll. Über Rückmeldung und Hilfe würde ich mich sehr freuen. Quote Link to comment Share on other sites More sharing options...
Crafter Posted March 31, 2022 Report Share Posted March 31, 2022 Mit der API kommunizierst du in der Regel über ein Skript, z.B. PHP. Über Curl kannst du z.B. dann Anfragen an die API schicken. Das könnte dann z.B. zum löschen eines Produkts in etwa so aussehen (hab ich nicht direkt getestet, sollte aber in etwa hinhauen): // Hier muss dein API Username hin $api_user = "username"; // Hier muss dein API User Passwort hin $api_pass = "pass"; // Hier muss deine Shop URL hin $api_url = "https://YOUR-SHOP.com/index.php?page=xt_api"; // Lösche Produkt mit nummer 123 $products_id = 123; $post_data = array( "function" => "deleteArticle", "paras" => array( "user" => $api_user, "pass" => $api_pass, "products_id" => $products_id, ) ); $post_data_json = json_encode($post_data); $ch = curl_init($api_url); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data_json); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($post_data_json)) ); $response = curl_exec($ch); var_dump($response); Quote Link to comment Share on other sites More sharing options...
Kauert Posted April 4, 2022 Author Report Share Posted April 4, 2022 Vielen Dank für die Antwort! Ich habe es mittlerweile über unser Schnittstellen-Programm geschafft. Dieses spielt die JSON ein und liefert dann das Ergebnis wieder zurück. Nun habe ich allerdings das Problem, dass mir bei dem Call getAttributes(JSON) die ausgegebene Anzahl der Attribute auf 100 beschränkt wird. In dem Call steht außer den Anmelde-Parametern nur "extNumberRange". Ich habe hier ein wenig herumgespielt, aber es hatte keinerlei Auswirkungen. Ist der Call an sich auf 100 beschränkt? Quote Link to comment Share on other sites More sharing options...
Crafter Posted April 5, 2022 Report Share Posted April 5, 2022 Von einer Beschränkung steht zumindest in der API Dokumentation nichts. Andere Funktionen haben aber eine Beschränkung (z.B. getOrders(JSON)). Da kann man dann über die Parameter "start" und "blocksize" durch die Einträge blättern. Also z.B. start = 0 und blocksize = 100 würde dir die ersten 100 Ergebnisse liefern. start = 100, blocksize = 100 dann die nächsten 100. Eventuell wurde das in der Dokumentation für getAttributes(JSON) einfach vergessen. Am besten mal ausprobieren. Quote Link to comment Share on other sites More sharing options...
Kauert Posted April 22, 2022 Author Report Share Posted April 22, 2022 Hallo, danke für die Antwort. Ich habe es mittlerweile gefunden. In der getattributes.php im API Plugin war der Parameter size=100 gesetzt. Ich gehe daher davon aus, dass das den in dem Call angegeben Parameter size überschrieben hat. Ich habe den Wert in der php auf 9999 gesetzt und dann wurden mir auch alle Attribute ausgegeben. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.