使用bigcommerce.php api的BigCommerce批量更新类别

时间:2016-01-14 09:53:52

标签: php api bigcommerce

我对BigCommerce API编程很陌生,所以这可能听起来很奇怪。

我正在尝试通过API批量更新BigCommerce商店中类别的元信息。 bigcommerce.php API是我的首选武器。我在我的Mac(MAMP)本地运行PHP脚本。

我的问题是,API只更新文件中的第一行(类别)。所有其他人都没有被触及。

这是我的代码:

require 'vendor/autoload.php';
use Bigcommerce\Api\Client as Bigcommerce;

Bigcommerce::configure(array(
    'store_url' => 'https://www.******.com/',
    'username' => 'PHP_api',
    'api_key' => '**************************'
));

$rows = array_map('str_getcsv', file('subcats_meta_update.csv'));

foreach ($rows as $row) {
    $category = array('page_title' => trim($row[1]), 'meta_keywords' => trim($row[2]),'meta_description' => trim($row[3]),'search_keywords' => trim($row[2]));
    echo Bigcommerce::updateCategory($row[0], $category);
}

对于测试,.csv文件只包含两行,第一列中的类别为id,后三列中的元信息。

foreach循环正确解析文件。我使用print_r($ category)测试了这个,而不是运行Bigcommerce :: updateCategory()。

我甚至对数组结果进行了硬编码(测试Bigcommerce :: updateCategory()):

$category = array('page_title' => 'Title one', 'meta_keywords' => 'keywords one','meta_description' => 'meta descr one','search_keywords' => 'search keyw one');
echo Bigcommerce::updateCategory(1, $category);
$category = array('page_title' => 'Title two', 'meta_keywords' => 'keywords two','meta_description' => 'meta descr two','search_keywords' => 'search keyw two');
echo Bigcommerce::updateCategory(2, $category);

此处,只有第一次更新电话通过。

是否有任何想法正确批量更新类别信息? 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,您的代码看起来是正确的。您的数据可能存在问题吗?

默认情况下,Bigcommerce API在出错时不会失败,因此您可能需要启用该功能:Bigcommerce::failOnError(),或使用Bigcommerce::getLastError()查看是否有错误消息可供使用来自,像:

$result = Bigcommerce::updateCategory($id, $data);
if(!$result) {
    echo Bigcommerce::getLastError();
}