2017-04-20 23 views
0

我正在嘗試使用woocommmerce order api。 https://woocommerce.github.io/woocommerce-rest-api-docs/?javascript#order-properties 我可以按照下面的對象成功提交。通過woocommerce order api提交多個產品

 data = { 
     "order": { 
      "payment_details": { 
       "method_id": "bacs", 
       "method_title": "direct bank", 
       "paid": false, 
       "status": "pending" 
      }, 
      "billing_address": { 
       "first_name": $scope.f_name, 
       "last_name": $scope.l_name, 
       "address_1": $scope.address1, 
       "address_2": $scope.address2, 
       "city": $scope.city, 
       "state": $scope.state, 
       "postcode": $scope.postcode, 
       "country": $scope.country, 
       "email": $scope.email, 
       "phone": $scope.phone 
      }, 
      "shipping_address": { 
       "first_name": $scope.f_name, 
       "last_name": $scope.l_name, 
       "address_1": $scope.address1, 
       "address_2": $scope.address2, 
       "city": $scope.city, 
       "state": $scope.state, 
       "postcode": $scope.postcode, 
       "country": $scope.country 
      }, 
      "customer_id": $scope.user_id, 
      "line_items": [{ 
       "product_id": $scope.ids, 
       "quantity": 1 
      }] 
     } 

但是我的問題來了,當我要提交多個產品。我不知道如何做到這一點。

我知道我可以重複("product_id": $scope.ids, "quantity": 1)參數,但我不知道用戶將提交多少產品,因此這將不會有效。我的想法是,我需要以某種方式連接所有產品ID並推送到對象。請協助?

我已經嘗試運行一個for循環來獲取所有產品ID並將其追加到名爲obj的變量中,然後將其添加到對象中,但仍然沒有運氣。

for (i = 0; i < $scope.basketProducts.length; i++) { 
    obj = "product_id:" + $scope.basketProducts[i].id + ",quantity:1"; 
    console.log(obj); 
    } 

    "line_items": [{ 
        obj 
        }] 

回答

0

使用數組concat()函數來連接兩個數組的結果。

var hege = ["Cecilie", "Lone"]; 
var stale = ["Emil", "Tobias", "Linus"]; 
var children = hege.concat(stale); 
+0

感謝您的回覆,但我不知道會有多少產品,需要動態並遵循api的結構 – eohdev