php - CS-CART 如何通过 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
.
解决方案
据我了解,cs-cart API 有一些必需的值才能进行 INSERT API 调用。因此,类别应该已经在 cs-cart 仪表板中创建并在 PHP 脚本中以某种方式匹配它们
另一方面,如果您想更新产品,例如,您可以只更新您发送给 API 调用的指定值,而无需发送所有必需的 API 值。
最后但同样重要的是,有不止一种 Authorizations 方法可以进行调用。我使用 CURL 来进行 API 调用,并且有一个参数CURLOPT_HTTPHEADER
,我添加了以下代码:
...
CURLOPT_HTTPHEADER => array(
"Authorization: Basic XXXxxxxXXXXxxxXXXlzLmNvbS5ncjpKejMXXXxxxxXN0Y2MDQxenprbEXXXxxXXXE3Mg==",
"Content-Type: application/json",
"cache-control: no-cache"
),
...
其中授权是:基本 base64(user@example.com:API_KEY_taken_from_cscart)
应用上述所有代码和 API 工作!
感谢大家的帮助和评论
推荐阅读
- c++ - QApplication在构造函数调用时崩溃
- vba - VBA:单击 Internet Explorer 中的“Google 搜索”按钮
- python - 在没有 sort()/sorted() 函数的情况下对字符串进行排序
- python - 如何提高 LightGBM 的排名性能
- regex - 正则表达式查找文件路径 - 有一些微妙之处?
- c - CMake for protobuff-c-rpc 项目 - 生成 c 和 python 文件
- spring-boot - 使用 Docker 错误将 Spring Boot 应用程序容器化
- postgresql - 使用树结构从 jsonb 进行递归查询
- xml - 使用 XSLT1.0 获取 XML 中标签 CASH_RECEIPT_LINE_NO 的唯一编号
- reactjs - 压缩动态资产 (JSON) 会提高性能吗?