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('º', '&deg', $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'
        );