0

node.jsを使用してWooCommerce REST API経由で注文広告申込情報のメタデータを更新する際の問題を突きつけました。私が注文を更新するための手順を以下の(およびいくつかのフィールドで成功した)してきたWooCommerce REST API:出荷のための広告申込情報アイテムメタデータの更新

https://woocommerce.github.io/woocommerce-rest-api-docs/#update-an-order

さて、私が達成したいことはオーダーの出荷明細項目の数を変更しています。何か私は通常WordPressのUIで部分注文WCのプラグインを使用します。

以下は、orders API呼び出しを使用してWCから取得した広告申込情報のスクリーンショットです。 META_DATA配列の最後の要素は、キー「出荷」しており、それが(2件の注文した商品のうち)1が出荷されていたことを示す、一つのオブジェクトの配列が含まれています

"line_items": [{ 
     "id": 1937, 
     "name": "Maya", 
     "product_id": 1271, 
     "variation_id": 1272, 
     "quantity": 2, 
     "tax_class": "", 
     "subtotal": "140.00", 
     "subtotal_tax": "0.00", 
     "total": "140.00", 
     "total_tax": "0.00", 
     "taxes": [], 
     "meta_data": [{ 
       "id": 21637, 
       "key": "pa_product-color", 
       "value": "beige" 
      }, { 
       "id": 21638, 
       "key": "pa_shoe-size", 
       "value": "42" 
      }, { 
       "id": 21639, 
       "key": "pa_shoe-width", 
       "value": "wide" 
      }, { 
       "id": 21640, 
       "key": "shipped", 
       "value": [{ 
         "qty": 1, 
         "date": "Nov 21, 2017" 
        } 
       ] 
      } 
     ], 
     "sku": "2522BE42W", 
     "price": 70 
    }, 

あなたが見ることができるように、の値「出荷された」キーはオブジェクトです。 "data":{"status":400,"params":{"line_items":"line_items[0][meta_data][3][value] is not of type string."}}}

私は文字列として値を送信しよう、すなわちlineItems[0].meta_data = [{key:"shipped", value: "[{qty:'2'}]" }]

私はエラーを取得していない が、WCの扱いを:私はWCに(背中)を送信するTYとき、私はというエラーを取得します文字列としてではなく、オブジェクトとしてこれとDBにおける出荷数量私が意図した方法を更新しません(それが唯一の代わりに0までの出荷量を引く):

{ 
       "id": 21640, 
       "key": "shipped", 
       "value": "[{qty:'2'}]" 
} 

任意の洞察力やアイデア - どのようにできましたWC API経由で広告申込情報の出荷数量を変更しますか?

+0

あなたは生データでスクリーンショットを置き換える必要があります...それはwoocommerceに受け入れられるために(文字列として)シリアライズされた配列である必要がなければならないようです。しかし、私は実際にREST APIの専門家ではないので、どのように設定する必要があるか分かりません。 – LoicTheAztec

+0

@LoicTheAztec、私はすでにシリアライズされた配列 '' '({[qty: '2'}]") '' 'を使っていて、うまくいかなかったと思います – genau

答えて

0

だから、明らかに最近修正されましたWP 4.9バージョンにはバグがあったが、以下のコミット: https://github.com/woocommerce/woocommerce/pull/17849

それはRESTのAPIスキーマに関するとWooCommerceに修正をマージした後、問題が消え、今Iデータをオブジェクトとして送信できます。トピックの詳細

は、ここで見つけることができます:
https://github.com/woocommerce/wc-api-dev/pull/74

関連する問題