Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Shopify API将项目添加到购物车_Php_Javascript_Codeigniter_Rest_Shopify - Fatal编程技术网

Php 如何使用Shopify API将项目添加到购物车

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),但我一辈子都

我正在使用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:

$(".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