catalogProductUpdate 多个类别 ID
catalogProductUpdate multiple category IDs
我正在尝试更新 Magento 中许多产品的网站和类别 ID,但我遇到了问题。这是我的代码:
$client = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$session = $client->login('apiUser', 'apiKey');
$productarray = array("12345" => "1,2,3", "67890" => "1,5,6");
foreach ($productarray as $product_id => $cats) {
$update = array(
'websites' => array(1,2,3),
'categories' => array($cats)
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}
当我 运行 此代码时,它正在更改产品以具有新的网站 ID,但它仅使用 $cats 中的第一个更新类别 ID。
例如,“12345”将只有类别 ID 1,而不是应有的类别 ID 2 或 3。
当我打印出每个产品的 $cats 是什么时,它正确地向我显示了信息(如上述示例中的“1,2,3”和“1,5,6”)。
我不确定我做了什么,但我似乎无法让它更新所有类别 ID。我有数以千计的产品 运行 通过它们都有不同的类别 ID,所以我不能手动执行此操作!
编辑 - 已解决
我更改了我的代码,现在它是这样的(有效):
$client = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$session = $client->login('apiUser', 'apiKey');
$productarray = array("12345" => "1,2,3", "67890" => "1,5,6");
foreach ($productarray as $product_id => $cats) {
$cats = explode(",", $cats);
$update = array(
'websites' => array(1,2,3),
'categories' => $cats
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}
类别 属性 需要一个 ID 数组,而您传递的是一个字符串。尝试使用 explode()
将其分解:
foreach ($productarray as $product_id => $cats) {
$update = array(
'websites' => array(1,2,3),
'categories' => explode(',', $cats)
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}
我正在尝试更新 Magento 中许多产品的网站和类别 ID,但我遇到了问题。这是我的代码:
$client = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$session = $client->login('apiUser', 'apiKey');
$productarray = array("12345" => "1,2,3", "67890" => "1,5,6");
foreach ($productarray as $product_id => $cats) {
$update = array(
'websites' => array(1,2,3),
'categories' => array($cats)
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}
当我 运行 此代码时,它正在更改产品以具有新的网站 ID,但它仅使用 $cats 中的第一个更新类别 ID。
例如,“12345”将只有类别 ID 1,而不是应有的类别 ID 2 或 3。
当我打印出每个产品的 $cats 是什么时,它正确地向我显示了信息(如上述示例中的“1,2,3”和“1,5,6”)。
我不确定我做了什么,但我似乎无法让它更新所有类别 ID。我有数以千计的产品 运行 通过它们都有不同的类别 ID,所以我不能手动执行此操作!
编辑 - 已解决
我更改了我的代码,现在它是这样的(有效):
$client = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$session = $client->login('apiUser', 'apiKey');
$productarray = array("12345" => "1,2,3", "67890" => "1,5,6");
foreach ($productarray as $product_id => $cats) {
$cats = explode(",", $cats);
$update = array(
'websites' => array(1,2,3),
'categories' => $cats
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}
类别 属性 需要一个 ID 数组,而您传递的是一个字符串。尝试使用 explode()
将其分解:
foreach ($productarray as $product_id => $cats) {
$update = array(
'websites' => array(1,2,3),
'categories' => explode(',', $cats)
);
$updatewebsite = $client->catalogProductUpdate($session,$product_id,$update);
}