2012-04-27 187 views
2

我正在尝试执行以下操作:我正在构建标准的HTML/PHP网站。我们会在网站上放置产品。当有人点击“添加到购物车”时,用户将被引导到Shopify与他们的产品信息,并且该产品将被添加到购物车(迄今没有问题...得到了这个成就)。当他们点击浏览器返回网站(因此离开Shopify购物车)时,我需要能够在页眉的网站上显示产品信息。就像“5种产品| 168.00美元”......基本上允许网站访问者(不是在shopify中,而是在我们构建的HTML网站中)查看购物车中的值,然后随时查看或查看购物车。如何在网站上的Shopify网站上显示Shopify购物车值

我碰到这样的:http://api.shopify.com/cart.html#show

我有点在JSON对于新手,并一直在寻找的是什么,我试图做的,但没有看到他们的例子。

任何建议或有人指着我在正确的方向将是很棒的。

回答

1

这两个页面应该帮助你:

Adding to the Cart from a remote website

我不知道自己在做什么添加到购物车,现在,但是这是“正确”的方式做到这一点。看到你已经有了这个工作,我不会太担心。

为了让车,你应该使用AJAX API。该API允许您为当前用户提供购物车,而无需使用您链接的REST版本。那个设计用于做更重的举重(例如获得当前所有的活动推车)。 AJAX版本非常简单,专为前端使用而设计。简单而言,只需拨打

http://[the-shop].myshopify.com/cart.js

,你会回来的车的内容为JSON当前会话。它会是这个样子:

{ 
"items": [ 
    { 
     "handle": "aquarius", 
     "line_price": 6000, 
     "requires_shipping": true, 
     "price": 2000, 
     "title": "aquarius - medium", 
     "url": "/products/aquarius", 
     "quantity": 3, 
     "id": 30104042, 
     "grams": 181, 
     "sku": "", 
     "vendor": "the candi factory", 
     "image": "http://static.shopify.com/s/files/1/0040/7092/products/aquarius_1.gif?1268045506", 
     "variant_id": 30104042 
    }, 
    { 
     "handle": "amelia", 
     "line_price": 4000, 
     "requires_shipping": true, 
     "price": 2000, 
     "title": "amelia - medium", 
     "url": "/products/amelia", 
     "quantity": 2, 
     "id": 30104012, 
     "grams": 200, 
     "sku": "", 
     "vendor": "the candi factory", 
     "image": "http://static.shopify.com/s/files/1/0040/7092/products/2766315_da1b.png?1268045506", 
     "variant_id": 30104012 
    } 
], 
"requires_shipping": true, 
"total_price": 10000, 
"attributes": null, 
"item_count": 5, 
"note": null, 
"total_weight": 947 

}

+0

感谢您的回复。过去一周我们一直在研究这个问题,我们遇到的问题是将shopify的信息拖到我们自己的网站上,这似乎并不奏效。 Shopify中是否有安全功能可防止将该信息(购物车中的物品)拉到远程站点? – flinx777 2012-05-07 19:00:39

+0

没有。您可能遇到[相同来源策略](http://en.wikipedia.org/wiki/Same_origin_policy)问题,但数据应该可用。 – 2012-05-08 03:28:11

7

Shopify实际上提供了一个JSONP格式的文件,假设你来自同一个网域(访问识别个人用户的Shopify饼干)。

换句话说:

比方说,一个WordPress站点住在www.example.com

及所附“店址”就住在shop.example.com(确保此域是在Shopify侧主域)

从你的WordPress网站使用jQuery访问购物车,并加工成模板或页面,你可以拨打:

jQuery.ajax({ 

    url: "//shop.example.com/cart.json", 
    dataType: "jsonp", 
    success: function(data) { 
     /* Template Code here */ 
    }, 
    error: function(jxhr, status, err) { 
     console.log("Error, status = " + status + ", err = " + err); 
    } 

}); 

JSONP格式的文件允许跨域AJAX调用通过一些JavaScript欺骗手段。

+0

我已经看了很多这个问题的答案,并尝试了'$ .ajax' /'$ .get' /'$ .getJSON'和你的答案,并增加了'method:'get'',是为我做了诡计的人。谢谢! – ntdb 2016-09-20 04:05:31

1

如果有人有同样的问题。 卡梅隆的答案解决了我的问题。如果您将dataType设置为“jsonp”,请记得将“.js”更改为“.json”

+0

对,你会用/cart/clear.js做什么,例如没有/cart/clear.json版本 – 2015-01-19 19:45:14