REST API problem

Hey Leute,

vielleicht kann mir hier einer helfen. Seit Monaten lief meine kleine Anwendung problemlos. Und nachdem die Bestellnummer sich von 99999 auf über 100000 geändert hat, funktioniert nichts mehr! Ich habe keinerlei Erklärung dafür. Vor allem, wenn ich den Single Request für die Bestellnummer 100000 setze, bekommt er daten.

Aktuell ist die letzte Bestellnummer die 99998 in der Datenbank und entsprechend sucht er alles was größer als diese ist, nur macht er dann bei 99999 einfach dann Feierabend. Eigentlich müsste er mehr Bestellungen finden, aber aus irgendeinen Grund macht er es nicht. 

Gab es evtl. ein Bug im API Client selbst? Bzw. der REST API bei diesem wechsel der Nummern ?
 

$filterByOrderNumber = array(
    array(
        'property' => 'number',
        'expression' => '>',
        'value' => $lastordernumber
    ),
);
  
$params = array(
    'filter' => $filterByOrderNumber
);

$ArrayOrders = $client->get("orders/",$params);

die $lastnumber bekommt er aus der Datenbank gestellt.

Bin echt Dankbar über jede Hilfe.

Gruß
Danny

Also da ist ein Komma zu viel und ich meine Parameter sehen so aus, vll liegts daran:

$params = array(

‘useNumberAsId’  => true, //keine Ahnung warum

‘filter’ => $filterByOrderNumber

)

Edit: “number” Property ist richtig?

Hi,

ich denke, das Problem hängt mit dem Datentyp des „ordernumber“-Feldes in der s_order zusammen - das sind ja VARCHARs.

Wenn ich das so ausführe:

SELECT "1000000" > "99998" as isBigger
UNION
SELECT 1000000 > 99998 as isBigger

bekomme ich dieses Ergebnis:

Ich vermute, du willst sowas machen wie „neue Bestellungen seit X“ - kannst du das ggf. auch über das Datum? Oder die ID?

Daniel

 

Also bisher lief das so, ob das jetzt am Zahlenwert liegt und er irgendwie in der API Probleme damit hat, keine Ahnung.

Ich habe jetzt ein echt schlechtes Ding rein gecoded, damit das überhaupt läuft.

Es ist lächerlich, aber ich habe quasi Bestellnummern durch eine for-Schleife generiert und dann diese iterieren lassen um Bestelldaten zu erhalten. Das klappt ohne Probleme.

ja number ist richtig, dort steht die Bestellnummer drin. Ich gucke mir das mal morgen in ruhe an. Ich benötige den einen Filter, damit er nicht alle Bestelldaten abfragt. 

  1. Request ist quasi alles was neu an Bestellungen kam, dann wird im einzelnen reingeschaut und bei bestimmten Artikel wird eine Übertragung in die Datenbank gestartet. Alle anderen Bestellungen sind mir egal.

Danke für deine Antwort :slight_smile: Vielleicht hast du recht mit dem " , " aber ich hatte das vor paar Monaten mal wo so gesehen und hat ja auch keine Exception rausgehauen. Daher denke ich das das Komma schon ok an der Stelle ist.

Beste Grüße
Danny

@Daniel Nögel 

Das wäre zumindest eine Erklärung wieso es nicht mehr funktioniert. Mich wundert es nur so dermaßen, das es genau seit dem Sprung von 99999 auf 100000 passiert.

Ich teste das mal aus mit dem Datum. ich habe zwar auch eine ID drin, aber die ist intern von der Anwendung vergeben und nicht gleich der aus Shopware. Danke für den Tipp! :slight_smile: