如何使用BigCommerce API更新自定义字段?

时间:2013-05-06 19:07:00

标签: ruby bigcommerce

我希望更新产品的自定义字段。

我在the guide on how to do it manually via the admin interface

中找到了

API docs建议您不能直接修改产品上的自定义字段,只能访问它们:

我的下一个想法是update the product

这是产品上现有的custom_field。

{
  "url"=> "https://storename.mybigcommerce.com/api/v2/products/32/customfields.json",
  "resource"=>"/products/32/customfields"
}

当我尝试修改url / resource并将哈希发送回更新时,我会看到400 Bad Request :(

new_custom_fields = { 
"url" => "https://storename.mybigcommerce.com/api/v2/products/75/customfields.json", 
"resource" => "/products/75/customfields"
}

api.update_products(75, {"custom_fields" => new_custom_fields})
RuntimeError: Failed to parse Bigcommerce response: 400 Bad Request

思想?

3 个答案:

答案 0 :(得分:1)

这似乎是Bigcommerce API中的一个错误。目前,仅支持自定义字段上的GET请求。

http://developer.bigcommerce.com/api/products/customfields

这可能是你击中400的原因。

答案 1 :(得分:0)

不确定这是否有助于Ruby,但它可能会帮助那些使用PHP ...我可以使用php在产品上创建自定义字段。只需要产品ID和自定义字段的值,“name”和“text”。

$data_array = array('name' => 'gender', 'text' => 'male');
BigCommerce::createProductCustomField('17', $data_array);

我还没有尝试更新自定义字段,但如果创建一个自定义字段,则以下内容也可以用于更新当前自定义字段:

BigCommerce::updateProductCustomField($product_id, $id, $object);

您需要要更新的产品的$ product_id,要更新的自定义字段的$ id,$ object应该是上面的$ data_array数组。

有关BC的PHP客户端的更多信息:https://github.com/bigcommerce/bigcommerce-api-php

祝你好运!

答案 2 :(得分:0)

试用此代码:

$ headers = array(
“内容类型:application / json”,
//“授权:基本”。 base64_encode($ credentials)
);
$ name ='子弹点';
$ data_array = array('name'=>'Bullet Point','text'=>'Bullet Point value');
$体= json_encode($ data_array中);
//获取当前网址并将其拆分为“?” $ ch = curl_init('https://www.abc.mybigcommerce.com/api/v2/products/1122/customfields.json'); //打开连接
curl_setopt($ ch,CURLOPT_TIMEOUT,60); //从BC API Guide v1设置为60秒PDF示例
curl_setopt($ ch,CURLOPT_HTTPHEADER,$ headers); //加载所有标题数据
curl_setopt($ ch,CURLOPT_CUSTOMREQUEST,“POST”); //注释掉此PUT行以更改为POST语句
curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($ ch,CURLOPT_USERPWD,“admin:api-key”);
curl_setopt($ ch,CURLOPT_POSTFIELDS,$ body);
curl_setopt($ ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1);
$ result = curl_exec($ ch); //执行帖子 curl_close($ CH);