首页 > 解决方案 > 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.

标签: phpapics-cart

解决方案


据我了解,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 工作!

感谢大家的帮助和评论


推荐阅读