我希望更新产品的自定义字段。
我在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
思想?
答案 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);