如何使用 Php 通过 Api 创建 Shopify 订单?

How to Create Shopify Order Via Api using Php?

我正在尝试使用 Api 创建 Shopify 订单,这是我的代码:

            $arrOrder= array(
              "email"=> "foo@example.com",
              "fulfillment_status"=> "fulfilled",
              "send_receipt"=> true,
              "send_fulfillment_receipt"=> true,
              "line_items"=> array(
                array(
                  "product_id"=>875744960642,
                  "variant_id"=> 3558448932592,
                  "quantity"=> 1
                )
            ),
                "customer"=> array(
                  "id"=> 458297751235
                ),
                "financial_status"=> "pending"
              
            
            );            echo json_encode($arrOrder);
            echo "<br />";
            $url = "https://AkiKey:Password@Store.myshopify.com/admin/api/2021-01/orders.json";
            
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_VERBOSE, 0);
            curl_setopt($curl, CURLOPT_HEADER, 1);
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($arrOrder));
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            $response = curl_exec($curl);
            curl_close($curl);
            echo "<pre>";
            print_r($response);
回应是: {"errors":{"order":"必需参数丢失或无效"}}

我认为使用 API 调用发送的数据不匹配,根据文档这种格式创建订单。

所以我认为你的请求类似于这个演示代码

$arrOrder= [
   "order" =>[
      "email"                    => "foo@example.com",
      "fulfillment_status"       => "fulfilled",
      "send_receipt"             => true,
      "send_fulfillment_receipt" => true,
      "line_items" => [
         [
            "product_id" => 875744960642,
            "variant_id" => 3558448932592,
            "quantity"   => 1
         ]
      ],
      "customer" => [
                     "id"=> 458297751235
                ],
      "financial_status"=> "pending"
   ]
];