通过Woocommerce API V2更新库存

时间:2015-03-25 14:25:44

标签: php wordpress codeigniter api woocommerce

我正在尝试通过API界面更新我的woocommerce商店的库存水平。我正在使用kloon/WooCommerce-REST-API-Client-Library,但不幸的是,它似乎只是阅读产品信息,并且不允许我输入股票信息。

阅读API文档我可以看到我可以使用以下内容更新产品:

curl -X PUT https://example.com/wc-api/v2/products/546 \
    -u consumer_key:consumer_secret \
    -H "Content-Type: application/json" \
    -d '{
  "product": {
    "regular_price": "24.54"
  }
}'

但是API客户端库中的函数没有访问产品的PUT功能,我找到了一个已修改的P ap函数的{api rodolfojnn/WooCommerce-REST-API-Client-Library客户端库:

/**
* Update a product by id
* @param int $product_id
* @param array $data
* @param string $method
* @return mixed|json string
*/
    public function update_product($product_id, $data, $method = "PUT") {

        return $this->_make_api_call('products/' . $product_id, ['product' => $data], $method);
}

但现在抛出 Parse错误:语法错误,意外'['错误,因为 ['product'=> $ data] 位 - 我尝试将其转换为数组,但也有错误,任何人都知道为什么(我在codeigniter btw中运行这个)

1 个答案:

答案 0 :(得分:5)

尝试修改

public function update_product($product_id, $data, $method = "PUT") {

    return $this->_make_api_call('products/' . $product_id, $data, $method);
}

仅将$ data作为第二个参数传递给update_product

$data=  json_encode(

    array( 'product' =>

       array( 
          'regular_price'        => "10.26",
          'managing_stock'   => true,
          'in_stock'         => true,
          'stock_quantity'   => 45
       )
    )
);