2016-08-01 4 views
1

Ich erstelle eine shopify-App, die das Geschäft nach Bestellungen abfragt. Die Absicht ist, BEIDE unerfüllte und erfüllte Aufträge zu erhalten; Wenn Sie auf den Tab "Bestellungen" in Ihrem Geschäft gehen, muss ich alle dort aufgelisteten Bestellungen zurückgeben. Mein aktueller Code wird jedoch nur Bestellungen zurückgeben, die NICHT erfüllt sind.Shopify-API-Abfrage für erfüllte Bestellungen

Die Abfrage in Frage ist, wie in Ruby on Rails folgt:

@orders = Shopify_API::Order.find(:all) 

ich sogar versucht haben, ein params von fullfillment_status mit: "any", das ist die Standardeinstellung bei https://help.shopify.com/api/reference/order angezeigt, so sollte es nicht sein, notwendig, aber es gab keine Veränderung.

Was verstehe ich nicht oder fehlt damit? Wenn eine erfüllte Bestellung nicht mehr als eine praktikable Bestellung oder etwas angesehen wird, wie gehe ich danach, sie trotzdem abzufragen?

Vielen Dank.

Antwort

1

Sie müssen sich besser organisieren. Hier sind einige Tipps, die darauf basieren, was gut für mich funktioniert.

  1. einrichten Paginierung. using: all gibt maximal 50 Datensätze zurück. Das bedeutet, dass ein Seitenwert und ein Limit (250) gesendet werden müssen.
  2. fragen Sie nach unerfüllten Aufträge in einer Schleife und verarbeiten sie
  3. in einer Schleife für erfüllt Aufträge stellen und ihnen

Das etwa deckt sie verarbeiten. Der Erfüllungsstatus ist für das Unerfüllte "nicht versandt", was super intuitiv ist?

page = 1 
orders = [] 
status = { fulfillment_status: 'unshipped', status: 'open',  financial_status: 'paid', limit: 250 } 
count = ShopifyAPI::Order.count(status) 
puts "Found #{count} UNSHIPPED OPEN PAID orders..." 
if count > 0 
    page += count.divmod(250).first 
    while page > 0 
    status.merge!({ page: page }) 
    orders += ShopifyAPI::Order.all(params: status) 
    page -= 1 
    end 
end 
+1

Können Sie angeben, was es heißt, nach erfüllten Bestellungen zu fragen? Ich weiß nicht genau, wie das geht, das ist das Problem. Könnten Sie bitte einen Beispielcode bereitstellen? – Brady

+1

hat meine Antwort bearbeitet und Ihnen den Arbeitscode gegeben. –

+0

Status war der Parameter, den ich übersehen hatte. Erforderlich, um den Standard von "offen" auf "beliebig" zu setzen. Vielen Dank, dass Sie mir geholfen haben! – Brady