Magento catalogProductAttributeMediaCreate() 异常
Magento catalogProductAttributeMediaCreate() exception
我正在使用 v2 SOAP 网络服务将图像上传到我的 Magento 服务器。我的 PHP 代码是:
// Session and other stuff...
//
$file = fopen ( "magento_art.txt" , "r" );
$data = fgetcsv ( $file , 2048, "$", "\");
while (( $data = fgets ( $file , 2048)) !== false) {
$data = str_replace('º', '°', $data);
$data = str_replace('"', '', $data);
$data = str_getcsv( $data, "$");
$path= 'fotos/'.$data[14];
$type = pathinfo($path, PATHINFO_EXTENSION);
$raw_image = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($raw_image);
$image = array(
'content' => $base64,
'mime' => 'image/jpeg'
);
var_dump($image);
echo "\n\n";
try{
print_r("SKU: ".$data[1]."\n\n");
$result = $client->catalogProductAttributeMediaCreate(
$session,
(string)$data[1],
array('file' => $image, 'label' => 'image', 'position' => '100', 'types' => ['image'], 'exclude' => 0)
);
}
catch(Exception $e){
echo "Exception: ".$e->getMessage()."\n\n";
}
而且每次我都得到异常 'product not exists'。我已经检查过该产品存在于我的服务器中,并且 SKU 代码在我的 PHP 脚本和我的服务器中是相同的,但是 API 方法不起作用。
¿它可以是什么?我也尝试了 'hardcoding' 我的其中一款产品的 SKU,但也没有用。
你需要传递最后一个参数,表示你的标识符是什么。
因此您的代码应如下所示:
$result = $client->catalogProductAttributeMediaCreate(
$session,
(string)$data[1],
array('file' => $image, 'label' => 'image', 'position' => '100', 'types' => ['image'], 'exclude' => 0),
'sku'
);
我正在使用 v2 SOAP 网络服务将图像上传到我的 Magento 服务器。我的 PHP 代码是:
// Session and other stuff...
//
$file = fopen ( "magento_art.txt" , "r" );
$data = fgetcsv ( $file , 2048, "$", "\");
while (( $data = fgets ( $file , 2048)) !== false) {
$data = str_replace('º', '°', $data);
$data = str_replace('"', '', $data);
$data = str_getcsv( $data, "$");
$path= 'fotos/'.$data[14];
$type = pathinfo($path, PATHINFO_EXTENSION);
$raw_image = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($raw_image);
$image = array(
'content' => $base64,
'mime' => 'image/jpeg'
);
var_dump($image);
echo "\n\n";
try{
print_r("SKU: ".$data[1]."\n\n");
$result = $client->catalogProductAttributeMediaCreate(
$session,
(string)$data[1],
array('file' => $image, 'label' => 'image', 'position' => '100', 'types' => ['image'], 'exclude' => 0)
);
}
catch(Exception $e){
echo "Exception: ".$e->getMessage()."\n\n";
}
而且每次我都得到异常 'product not exists'。我已经检查过该产品存在于我的服务器中,并且 SKU 代码在我的 PHP 脚本和我的服务器中是相同的,但是 API 方法不起作用。
¿它可以是什么?我也尝试了 'hardcoding' 我的其中一款产品的 SKU,但也没有用。
你需要传递最后一个参数,表示你的标识符是什么。
因此您的代码应如下所示:
$result = $client->catalogProductAttributeMediaCreate(
$session,
(string)$data[1],
array('file' => $image, 'label' => 'image', 'position' => '100', 'types' => ['image'], 'exclude' => 0),
'sku'
);