2013-07-12 132 views
0

我正在與客戶合作開發兩個站點:一個網站,其中包含有關其業務的一般信息,以及一個獨立的電子商務商店來銷售他們提供的產品。據我所知,這是一種相當普遍的做法,因爲客戶的CMS需求通常不在大多數電子商務平臺提供的範圍內。從外部應用程序Shopify API? (backbone.js)

主要網站將需要展示商店中的一些產品,所以我正在尋找具有API的電子商務平臺。 Shopify引起了我的注意,因爲它具有返回JSON的API。我將用一個Sinatra後端構建帶有Backbone.js的主站點。

誰能告訴我Shopify API是否可以用這種方式?我還看到一個名爲Shopify Widget的Shopify應用程序,它有點脆弱和不可定製,我認爲這不會滿足我客戶的目的。你將如何處理這種情況?

回答

1

您必須使用sinatra應用程序作爲Shopify商店的代理,因爲通過Javascript進行跨域調用將不起作用。

您可以使用ShopifyAPI gem來完成大部分繁重的工作,如果您真的想要,您可以在Sinatra中編寫一個貧民窟RestAPI,這樣您就不會重新發明Shopify車輪。

它可以像簡單的東西:

POST /shopify.json 
{ 
    "model": "ShopifyAPI::Product", 
    "data": { ..shop data... } 
} 

而且你大概可以使用const_get檢索你需要實際的模型。

+0

感謝@csaunders,非常有幫助。 –

1

如果您使用Sinatra作爲後端,您的確可以進行跨域Ajax調用。我一直這樣做。如果您想使用CORS,只需使用Rack-Cors gem。如果由於IE在CORS方面存在問題而對此感到不安,那麼您可以隨時返回JSONP作爲替代品。如果您的Sinatra後端在子域上運行,您可以做任何事情,因爲沒有跨域問題。