如何通过 API 使用 CSV 文件更新 Magento 中的新属性

问题描述 投票:0回答:1

我在 Magneto 中有大量产品编号,我必须将 EAN 编号添加到所有产品中。 我如何通过 API 更新 CSV 文件中的新属性。我想通过 API SOAP 从 ssh 服务器更新 EAN 编号。

php csv magento soap magento-soap-api
1个回答
0
投票

这对您来说不是一个完整的解决方案,但它绝对是您的一个起点。祝你好运

$productData = array(
    'additional_attributes' => array(
        'single_data' => array(
            array(
                'key' => 'ean',
                'value' => 'value',
            ),
        ),
    ),
);
$productId = '1000000';

$soap = new SoapConnection('1','2','3');
echo $soap->_catalogProductUpdate($productId,$productData); 


class SoapConnection
{
    protected $soap_client;
    protected $session_id;

    function __construct($soap_host, $api_user, $api_pass)
    {
        try{
            echo "Connecting to $soap_host\n";
            $this->soap_client = new SoapClient( $soap_host, array('trace' =>true,
                'connection_timeout' => 30,
                'cache_wsdl' => WSDL_CACHE_NONE,
                'keep_alive' => false
                ));
            $this->session_id = $this->soap_client->login( $api_user, $api_pass);
            echo "Connected with session id ".$this->session_id."\n";
            return true;
        } catch (SoapFault $e) {
            echo "Soap Exception connecting to $soap_host: ".  $e->getMessage(). "\n";
            var_dump($this->soap_client->__getLastRequest()); var_dump($this->soap_client->__getLastResponse());
            return false;
        }
    }

    function _catalogProductUpdate($sku, $args)
    {
        try
        {
            return $this->soap_client->catalogProductUpdate($this->session_id, $sku, $args);
        } catch (SoapFault $e) {
            echo "Soap Exception _catalogProductUpdate: ".  $e->getMessage(). "\n";
            return false;
        }
    }
}

编辑:

以下是如何读取 csv:

$file = fopen("my file path .csv","r");

while($row = fgetcsv($file))
{
    $row[0];//column1
    $row[1];//column2 etc etc etc
}
fclose($file);
© www.soinside.com 2019 - 2024. All rights reserved.