2015-09-18 57 views
2

我正在嘗試使用BigCommerce API在我的BigCommerce商店上生成訂單。我正在使用下面的代碼來完成此操作。我能夠ping BigCommerce就好,我在php代碼中沒有錯誤。問題在於它不會在我的Bigcommerce商店中生成訂單。使用BigCommerce API在商店上生成訂單的問題

require('vendor/autoload.php'); 

use Bigcommerce\Api\Client as Bigcommerce; 

Bigcommerce::configure(array(
'store_url' => 'https://my-store.bigcommerce.com/', 
'username' => 'admin', 
'api_key' => 'XXXXXX' 
)); 

$ping = Bigcommerce::getTime(); 
if ($ping){ echo $ping->format('H:i:s');} 

$createFields = array(
"customer_id" => 0, 
"date_created" => $today, 
"status_id" => 1, 
"billing_address" => array(
     "first_name" => "Trisha", 
     "last_name" => "McLaughlin", 
     "company" => "", 
     "street_1" => "12345 W Anderson Ln", 
     "street_2" => "", 
     "city" => "Austin", 
     "state" => "Texas", 
     "zip" => "78757", 
     "country" => "United States", 
     "country_iso2" => "US", 
     "phone" => "", 
     "email" => "[email protected]"), 
"shipping_addresses" => array(
     "first_name" => "Trisha", 
     "last_name" => "McLaughlin", 
     "company" => "", 
     "street_1" => "12345 W Anderson Ln", 
     "street_2" => "", 
     "city" => "Austin", 
     "state" => "Texas", 
     "zip" => "78757", 
     "country" => "United States", 
     "country_iso2" => "US", 
     "phone" => "", 
     "email" => "[email protected]"), 
"external_source" => "POS", 
"products" => array(
     "product_id" => "90", 
     "quantity" => "1")); 

print_r(Bigcommerce::createOrder($createFields)); 

我缺少什麼?

我是否錯誤地使用BigCommerce API?

任何幫助搞清楚爲什麼我的代碼不會在我的Bigcommerce商店生成訂單將是很棒的!

+0

你會得到什麼迴應? – developerscott

+0

我根本沒有看到任何錯誤。只需要從ping中讀出時間。有沒有辦法顯示Bigcommerce錯誤? –

+0

不是PHP錯誤。 Bigcommerce Orders API的迴應是什麼? – developerscott

回答

0

嘗試從產品數組中的「數量」參數中刪除引號。它期望一個int而不是一個字符串。

+0

感謝您的建議。不幸的是,從「quantity」參數中刪除引號仍然導致相同的錯誤:'13:35:24array(1){[0] => object(stdClass)#5(2){[「status」] => int(400)[「message」] => string(32)「字段'products'無效。」 }}' –

+0

產品是否有產品選項?如果是這樣,您需要傳遞選項的ID以及選定的值。有關更多信息,請參閱[本文檔](https://developer.bigcommerce.com/api/orders/order/products)。 –

0
products'=>array(
'product'=>array(
'product_id'=>90 
'quantity'=>1 
  • PRODUCT_ID和數量是int類型,應該沒有引號「」
  • 你在你的產品陣列
1

products屬性需要是嵌套陣列需要的產品陣列,其中父代products陣列中的每個單獨產品必須作爲其自己的陣列存在:

"products" => array(
    0 => array(
    "product_id" => int, 
    "quantity" => int 
), 
    1 => array(
    "product_id" => int, 
    "quantity" => int, 
) 
), 
0

設置你的陣列是這樣的:

$createFields=Array(
        "customer_id" => 0, 
        "status_id"=> 10, 
        "billing_address"=> [ 
         "first_name"=> "Trisha", 
         "last_name"=> "McLaughlin", 
         "company"=> "", 
         "street_1"=> "12345 W Anderson Ln", 
         "street_2"=> "", 
         "city"=> "Austin", 
         "state"=> "Texas", 
         "zip"=> "78757", 
         "country"=> "United States", 
         "country_iso2"=> "US", 
         "phone"=> "", 
         "email"=> "[email protected]" 
        ], 
        "shipping_addresses"=>[ 
         [ 

          "first_name"=> "Trisha", 
          "last_name"=> "McLaughlin", 
          "company"=> "Acme Pty Ltd", 
          "street_1"=> "566 Sussex St", 
          "street_2"=> "", 
          "city"=> "Austin", 
          "state"=> "Texas", 
          "zip"=> "78757", 
          "country"=> "United States", 
          "country_iso2"=> "US", 
          "phone"=> "", 
          "email"=> "[email protected]" 
         ]], 
        "products"=>[ 
         [ 
          "product_id"=> 90, 
          "quantity"=>1, 
           // "name"=> "data", 
         ], 
         ], 

        "external_source"=> "POS" 
       );