CS-CART 如何创建新类别 API
CS-CART How to Create new Categories though API
我想通过 API 在 CS-Cart 中创建新类别。
到目前为止我有这个代码(运行 通过浏览器,只是为了测试):
$cfg = get_config(); //connection to DB
$product_data = array();
$product_data["category"] = "Category Test API";
$product_data["company_id"] = 1;
$product_data["status"] = "A";
//CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_USERPWD, 'USER EMAIL'.":".'YOUR API:KEY');
curl_setopt($ch, CURLOPT_URL, $cfg["cscart_store_url"]."api/categories/");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
)
);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($product_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
if( !curl_error($ch) ) {
echo "no error";
curl_close($ch);
return json_decode($server_output, TRUE);
}
else {
echo "error found!!!";
print_r("Error: ".curl_error($ch));
return 0;
}
这里有文档:https://docs.cs-cart.com/latest/developer_guide/api/entities/categories.html。
虽然我没有从 curl_exec
得到任何错误,但我仍然无法让它工作。
你的 json 编码得很好,你的 header 有 Content-Type,我认为你的问题是你的 cscart_store_url
有错误的 url 或你的 USERPWD
不好(我相信你没有把 USER EMAIL
放在你的 auth
据我所知,cs-cart API 有一些必需的值才能进行 INSERT API 调用。因此,类别应该已经在 cs-cart 仪表板中创建,并在 PHP 脚本
中以某种方式匹配它们
另一方面,例如,如果您想更新产品,您可以只更新发送给 API 调用的指定值,而不需要发送所有必需的 API值。
最后但同样重要的是,有不止一种授权方法可以进行调用。我使用 CURL 来执行 API 调用并且有一个参数 CURLOPT_HTTPHEADER
我添加了以下代码:
...
CURLOPT_HTTPHEADER => array(
"Authorization: Basic XXXxxxxXXXXxxxXXXlzLmNvbS5ncjpKejMXXXxxxxXN0Y2MDQxenprbEXXXxxXXXE3Mg==",
"Content-Type: application/json",
"cache-control: no-cache"
),
...
其中授权是:Basic base64(user@example.com:API_KEY_taken_from_cscart)
应用以上所有代码,API 成功了!
感谢大家的帮助和评论
我想通过 API 在 CS-Cart 中创建新类别。
到目前为止我有这个代码(运行 通过浏览器,只是为了测试):
$cfg = get_config(); //connection to DB
$product_data = array();
$product_data["category"] = "Category Test API";
$product_data["company_id"] = 1;
$product_data["status"] = "A";
//CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_USERPWD, 'USER EMAIL'.":".'YOUR API:KEY');
curl_setopt($ch, CURLOPT_URL, $cfg["cscart_store_url"]."api/categories/");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
)
);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($product_data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
if( !curl_error($ch) ) {
echo "no error";
curl_close($ch);
return json_decode($server_output, TRUE);
}
else {
echo "error found!!!";
print_r("Error: ".curl_error($ch));
return 0;
}
这里有文档:https://docs.cs-cart.com/latest/developer_guide/api/entities/categories.html。
虽然我没有从 curl_exec
得到任何错误,但我仍然无法让它工作。
你的 json 编码得很好,你的 header 有 Content-Type,我认为你的问题是你的 cscart_store_url
有错误的 url 或你的 USERPWD
不好(我相信你没有把 USER EMAIL
放在你的 auth
据我所知,cs-cart API 有一些必需的值才能进行 INSERT API 调用。因此,类别应该已经在 cs-cart 仪表板中创建,并在 PHP 脚本
中以某种方式匹配它们另一方面,例如,如果您想更新产品,您可以只更新发送给 API 调用的指定值,而不需要发送所有必需的 API值。
最后但同样重要的是,有不止一种授权方法可以进行调用。我使用 CURL 来执行 API 调用并且有一个参数 CURLOPT_HTTPHEADER
我添加了以下代码:
...
CURLOPT_HTTPHEADER => array(
"Authorization: Basic XXXxxxxXXXXxxxXXXlzLmNvbS5ncjpKejMXXXxxxxXN0Y2MDQxenprbEXXXxxXXXE3Mg==",
"Content-Type: application/json",
"cache-control: no-cache"
),
...
其中授权是:Basic base64(user@example.com:API_KEY_taken_from_cscart)
应用以上所有代码,API 成功了!
感谢大家的帮助和评论