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 成功了!

感谢大家的帮助和评论