Dies ist mein erster Versuch, eine Shopify-App zu erstellen. Alles, was ich versuche, ist, meinen Laden nach Bestelldetails abzufragen.Zugriff auf einige Methoden von Shopify Order API möglich
Nachdem ich die Tutorials: https://www.youtube.com/watch?v=DB48N8rRHFw und die Shopify_app auf Github abgeschlossen habe, habe ich eine App, die ich in einem Entwicklungsgeschäft installieren und testen kann. Ich habe die Standard-Produktabfrage ausgeschaltet und stattdessen versucht, sie durch eine Abfrage für Bestellungen zu ersetzen.
Der aktuelle Code ist wie folgt:
class HomeController < ShopifyApp::AuthenticatedController
def index
@orders = ShopifyAPI::Order.find(:all)
end
end
und index.html.erb:
<% content_for :javascript do %>
<script type="text/javascript">
ShopifyApp.ready(function(){
ShopifyApp.Bar.initialize({
title: "Home",
icon: "<%= asset_path('favicon.ico') %>"
});
});
</script>
<% end %>
<h2>Orders</h2>
<table border="1" style="width:100%">
<tr>
<th>Order ID</th>
<th>Recipient</th>
<th>Shipping Address</th>
<th>Total Order</th>
<th>Date of Order</th>
<th>Sale Total</th>
<th>Sales Tax</th>
<th>Shipping Charge</th>
<th>Payment Gateway</th>
<th>Fulfillment Status</th>
</tr>
<% @orders.each do |order| %>
<tr>
<td><%= order.order_number %></td>
<td>cust</td>
<td><%= order.shipping_address.city %></td>
<td>total</td>
<td><%= order.created_at %></td>
<td><%= order.subtotal_price %></td>
<td><%= order.total_tax %></td>
<td><%= order.shipping_lines %></td>
<td><%= order.payment_gateway_names %></td>
<td><%= order.fulfillment_status %></td>
</tr>
<% end %>
</table>
Die Sache, die ich von mir nicht für das Leben tun verstehen ist, wie ich vollständig sein kann erfolgreich die Werte wie Erstellungsdatum, Gesamtkosten, Steuern usw. erhalten, aber ich stoße auf massive Probleme, wenn es darum geht, die Werte aus den Eigenschaften, die Hashes sind, zu erhalten. jedoch Mit worden https://help.shopify.com/api/reference/order als meine API-Referenz verwenden, weiß ich, dass sie existieren, wenn ich die app laufen, ich folgendes aus den Heroku Protokolle erhalten:
2016-06-27T22:47:02.298067+00:00 app[web.1]: Processing by HomeController#index as HTML
2016-06-27T22:47:02.512071+00:00 app[web.1]: Rendered home/index.html.erb within layouts/embedded_app (2.1ms)
2016-06-27T22:47:02.513471+00:00 app[web.1]: 32: <td>cust</td>
2016-06-27T22:47:02.513473+00:00 app[web.1]: 36: <td><%= order.subtotal_price %></td>
2016-06-27T22:47:02.513470+00:00 app[web.1]: 31: <td><%= order.order_number %></td>
2016-06-27T22:47:02.513468+00:00 app[web.1]: ActionView::Template::Error (undefined method `shipping_address' for #<ShopifyAPI::Order:0x007f27612d5660>):
2016-06-27T22:47:02.513464+00:00 app[web.1]:
2016-06-27T22:47:02.513469+00:00 app[web.1]: 30: <tr>
2016-06-27T22:47:02.513471+00:00 app[web.1]: 33: <td><%= order.shipping_address %></td>
2016-06-27T22:47:02.513472+00:00 app[web.1]: 34: <td>total</td>
2016-06-27T22:47:02.513473+00:00 app[web.1]: 35: <td><%= order.created_at %></td>
2016-06-27T22:47:02.513474+00:00 app[web.1]: app/views/home/index.html.erb:33:in `block in _app_views_home_index_html_erb__4133370917654343554_69903554858260'
2016-06-27T22:47:02.513475+00:00 app[web.1]: app/views/home/index.html.erb:29:in `_app_views_home_index_html_erb__4133370917654343554_69903554858260'
Offensichtlich verstehe ich nicht etwas, wahrscheinlich sehr Fundamentales über Dies. Wenn es keine Versandadresse gäbe, würde ich immer noch "Null" oder so etwas zurückbekommen; es ist so komisch, dass der Fehler darin besteht, dass die Methode nicht existiert.
Edit: Ich sollte wahrscheinlich Edelstein-Versionen beachten, falls das die Ursache ist. shopify_api (4.2.2), shopify_app (7.0.7), json (1.8.3) und Ruby 2.3.0p0 verwenden. Wenn es ein anderes Juwel gibt, das die Ursache sein könnte, sag es mir einfach und ich werde es mir ansehen.
http://stackoverflow.com/questions/11382519/does-shopify-order-api-allows-filtering-by-nested-fields/11382976#11382976 ist eine frühere Quelle, die ich gefunden hatte, als ich nach Antworten suchte um das selbst zu beheben. Er notiert sogar, wie er die Notation erfolgreich verwenden kann: order.shipping_address.. Ich verstehe nicht, warum ich das bisher nicht kann. –
Brady