Hallo, der Beispielcode für die Suche in Bestellungen lautet in der offizielle Doku für PHP: ((Link nur für registrierte Nutzer sichtbar.)) $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "(Link nur für registrierte Nutzer sichtbar.)", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"search\":[\"\"]}", CURLOPT_HTTPHEADER => array( "accept: application/json", "authorization: Basic REPLACE_BASIC_AUTH", "content-type: application/json" ), )); $response = curl_exec($curl); und liefert das Ergenbnis: { "code": 0, "status": "error", "message": "StringType: Invalid argument value given (expected string got NULL): ", "request": { "method": "POST", "url": "(Link nur für registrierte Nutzer sichtbar.)", "path": "/api.php/v2/orders/search", "uri": { "root": "/api.php", "resource": "/v2/orders/search" } } } Auch ein sinnvoller Search-String ändert am Ergebnis bei mir nichts. Es wäre sehr nett, wenn mir jemand meinen Fehler aufzeigen könnte. Letztendlich möchte ich alle Bestellungen ab einer ID angezeigt bekommen, also in etwa so: CURLOPT_POSTFIELDS => "{\"search\":[\"{\"greater\": {\"orders.order_id\": \"510427\"}}\"]}", Danke für eure Hilfe!
Evtl. ein Syntax Problem der Software mit der Du den REST_API Befehl per CURL schicken willst? Welche Software nutzt Du, welches OS? Klappt ein einfacher Search-Befehl, der nur Orders mit dem Status "Offen" anzeigt? "{\"search\":{\"match\": {\"orders.orders_status\": \"1\"}}}" Die eckigen Klammern bei Dir irritieren ich ein wenig, sind die in dem Befehlskontext korrekt?
Hallo Markus, Dankeschön. Das ist das PHP Beispielscript aus dem Handbuch. Von dort stammen auch die eckigen Klammern. Diese sind bei nur einer Suchbedingung sicher nicht nötig, sollten aber auch nicht schaden. Ausgeführt wird es unter Linux. Leider ändert Deine Codezeile nichts an der Fehlermeldung. Kannst du mir bitte ein Beispiel posten, welches bei Dir funktioniert?
PHP: <?php$curl = curl_init();curl_setopt_array($curl, [ CURLOPT_URL => "https://www.gambio-shop.de/shop1/api.php/v2/orders/search", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => '{ "search": { "greater": {"orders.orders_id": "403535"} }}', CURLOPT_HTTPHEADER => [ "accept: application/json", "authorization: Basic " . base64_encode(sprintf('%s:%s', 'admin@shop.de', '12345')), "content-type: application/json" ], ]);$response = curl_exec($curl);$err = curl_error($curl);curl_close($curl);if ($err) { echo "cURL Error #:" . $err;} else { echo $response;}