Php 如何使用Shopify API将项目添加到购物车
我正在使用Shopify API开发一个自定义web应用程序。这里的想法是将应用程序用作独家店面,只需向Shopify API发出请求。我已经在我的Shopify帐户中设置了一个私人应用程序来执行此操作 从api(使用/admin/products.json api端点)拉入产品没有问题。但我花了很长时间试图使用/cart/add.js API端点将产品从我的域添加到购物车中。我在使用REST客户端时得到了正确的JSON响应(我使用的是Google Chrome扩展Postman),但我一辈子都无法在我自己的应用程序中使用它 在我的应用程序中,我将向自己的服务器发送一个AJAX请求,然后服务器使用curl调用API端点并返回JSON响应(以避免跨域问题/必须使用JSONP)。尽管两个JSON响应完全相同,但在我的web应用程序中,该项目并未添加到购物车中 示例代码: Javascript:Php 如何使用Shopify API将项目添加到购物车,php,javascript,codeigniter,rest,shopify,Php,Javascript,Codeigniter,Rest,Shopify,我正在使用Shopify API开发一个自定义web应用程序。这里的想法是将应用程序用作独家店面,只需向Shopify API发出请求。我已经在我的Shopify帐户中设置了一个私人应用程序来执行此操作 从api(使用/admin/products.json api端点)拉入产品没有问题。但我花了很长时间试图使用/cart/add.js API端点将产品从我的域添加到购物车中。我在使用REST客户端时得到了正确的JSON响应(我使用的是Google Chrome扩展Postman),但我一辈子都
$(".add-to-cart").on('click', function() {
// sample initialization code here
// ...
$.post("/url-to-server", {
id: id, // this is the variant ID
quantity: 1
}, function(response) {
// more checking to make sure we have proper response
});
return false;
});
服务器端代码(PHP):
JSON响应示例(使用Postman REST客户端时的结果相同):
这是我使用ShopifAPI构建的第一个应用程序,因此我非常感谢能得到的任何指导。我曾考虑与合作伙伴应用程序注册并使用OAuth身份验证,但这对于我需要做的事情来说似乎有些过分,因为我不想使用Shopify店面,也不打算在Shopify应用程序商店中提供我的应用程序。似乎有一个未记录的功能(记录在案)将客户直接转发到结帐页面(带预填充购物车)。您只需要构造一个特殊的URL,例如:
# order 1 item of product with variant_id 300823433
http://murray-inc9186.myshopify.com/cart/300823433:1
或
也许你可以使用这个特殊的URL而不是AJAX发布到购物车上。@hjbolk:如果没有任何文档记录,你是如何找到这个功能的?虽然这确实将我的物品添加到购物车中,但它并没有解决我在原始帖子中指出的确切问题。另一方面,我似乎无法使用API获取订单详细信息,即使使用有效的订单ID,我现在应该能够做到这一点……我在中找到了它。也使用此选项。只有在客户在“付款”页面上确认订单后,才会创建订单。将在客户提交其地址详细信息后创建。在创建结帐之前,Shopify将购物车存储在购物车对象中。但是,使用AJAX API无法访问所有这些对象。您只能使用ShopifAPI(作为应用程序)访问它们。感谢您提供的链接和有关API的其他信息。这将帮助我和其他有问题的人在将来有一个参考点。在我发表评论时,我没有意识到有一个单独的签出和订单API。@hjblok文档链接指向404。更新版本可在以下网址找到:
{
"id": 313743963,
"title": "All Natural GumBits 16oz",
"price": 3800,
"line_price": 3800,
"quantity": 1,
"sku": "",
"grams": 0,
"vendor": "horseshow",
"properties": null,
"variant_id": 313743963,
"url": "/products/all-natural-gumbits-16oz",
"image": "http://cdn.shopify.com/s/files/1/0235/4155/products/gumbits.png?43",
"handle": "all-natural-gumbits-16oz",
"requires_shipping": true
}
# order 1 item of product with variant_id 300823433
http://murray-inc9186.myshopify.com/cart/300823433:1
# order 1 item of product with variant_id 300823433
# order 2 items of product with variant_id 261826220
http://murray-inc9186.myshopify.com/cart/300823433:1,261826220:2