Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
运行magento产品导入cron_Magento_Magento 1.8 - Fatal编程技术网

运行magento产品导入cron

运行magento产品导入cron,magento,magento-1.8,Magento,Magento 1.8,我在网上找到了解决方案,发现了更多类似的方法。我需要像这样运行一个配置文件。这是一个定制的产品进口。我想知道的是如何在此脚本中选择正确的csv文件?我通过使用管理产品导入控制器创建一个前端控制器来实现这一点。然后编写了一个脚本,使用php curl调用前端url 前端布局xml <layout version="0.1.0"> <importproduct_cronimport_run> <remove name="footer" />

我在网上找到了解决方案,发现了更多类似的方法。我需要像这样运行一个配置文件。这是一个定制的产品进口。我想知道的是如何在此脚本中选择正确的csv文件?

我通过使用管理产品导入控制器创建一个前端控制器来实现这一点。然后编写了一个脚本,使用php curl调用前端url

前端布局xml

<layout version="0.1.0">

    <importproduct_cronimport_run>
       <remove name="footer" />
       <remove name="top.search" />
       <remove name="cart_sidebar" />
       <remove name="header" />
       <remove name="top.menu" />
       <remove name="root" />
       <reference name="content">
            <block type="importproduct/system_convert_run" name="system_convert_run" template="importproduct/cronimport.phtml" output="toHtml" />
       </reference>
    </importproduct_cronimport_run>

</layout>

前置phtml文件

<?php
    $this->getProfile()->run();

    $array = array("batchId" => $this->getBatchModel()->getId(), "count" => $this->getBatchItemsCount());
    $rows = [];

    $importData = $this->getImportData();
    $arrCounter = 0;
    foreach ($importData as  $importValue){
        $rows[] = $importValue["rows[]"][0];
        $arrCounter++;
    }

    $array["rows"] = $rows;
    echo "<br>jsonDataStart{".$this->jsonEncode($array)."}jsonDataEnd";
?>

以下是脚本的主要部分

function importcsv($baseurl,$csv,$logFile){
    Mage::log('Start importproduct/cronImport/run',null,'prod_import.log');
    $url = $baseurl."importproduct/cronImport/run/id/3/files/".$csv;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec ($curl);
    $error  = curl_error($curl)."\r\n";
    curl_close ($curl);

    Mage::log('Print errors if any',null,'prod_import.log');
    file_put_contents($logFile, $error, FILE_APPEND | LOCK_EX);
    Mage::log('End importproduct/cronImport/run',null,'prod_import.log');

    /**** Extract Batch ID and Row IDs ***********/
    $jsonDataStart = stripos($result,"jsonDataStart{") + 14;
    $jsonDataEnd   = stripos($result,"}jsonDataEnd");
    $jsonLength    = $jsonDataEnd - $jsonDataStart;

    $jsonArray = substr($result, $jsonDataStart, $jsonLength);

    $simpleArray = json_decode($jsonArray, true);

    $batchId      = $simpleArray["batchId"];
    $totalRecords = $simpleArray["count"];
    $rowIdList    = $simpleArray["rows"];

    for ($x = 0; $x < $totalRecords; $x++) {
        /*** call batchRun ***/
        Mage::log('Start importproduct/cronImport/batchRun/id/'.$batchId."/row/".$rowIdList[$x],null,'prod_import.log');

        $url = $baseurl."importproduct/cronImport/batchRun/";
        $post = "batch_id=".$batchId."&rows%5B%5D=".$rowIdList[$x];

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        $result = curl_exec ($curl);
        $error  = curl_error($curl)."\r\n";
        curl_close ($curl);

        Mage::log('Print errors if any',null,'prod_import.log');
        file_put_contents($logFile, $error, FILE_APPEND | LOCK_EX);
        Mage::log('End importproduct/cronImport/batchRun/id/'.$batchId."/row/".$rowIdList[$x],null,'prod_import.log');
    } 

    /*** call batchFinish ***/
    Mage::log('Start importproduct/cronImport/batchFinish/id/'.$batchId,null,'prod_import.log');

    $url = $baseurl."importproduct/cronImport/batchFinish/id/".$batchId."/";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec ($curl);
    $error  = curl_error($curl)."\r\n";
    curl_close ($curl);

    Mage::log('Print errors if any',null,'prod_import.log');
    file_put_contents($logFile, $error, FILE_APPEND | LOCK_EX);
    Mage::log('End importproduct/cronImport/batchFinish/id/'.$batchId,null,'prod_import.log');

    /**** Move imported file to directory Imported ****/
    if (file_exists("var/import/".$csv)) {
        $t=time();
        $timestamp = date("Y-m-d-H-i-s",$t);
        rename("var/import/".$csv, "var/import/imported/".$timestamp." - ".$csv);
    }
}
函数importsv($baseurl、$csv、$logFile){
日志('Start importproduct/cronImport/run',null,'prod_import.log');
$url=$baseurl.“importproduct/cronImport/run/id/3/files/”$csv;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$URL);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$result=curl\u exec($curl);
$error=curl\u error($curl)。“\r\n”;
curl_close($curl);
日志('Print errors if any',null,'prod_import.log');
文件内容($logFile,$error,file_APPEND | LOCK_EX);
日志('End importproduct/cronImport/run',null,'prod_import.log');
/****提取批ID和行ID***********/
$jsonDataStart=stripos($result,“jsonDataStart{”)+14;
$jsonDataEnd=stripos($result,}jsonDataEnd”);
$jsonLength=$jsonDataEnd-$jsonDataStart;
$jsonArray=substr($result,$jsonDataStart,$jsonLength);
$simpleArray=json_decode($jsonArray,true);
$batchId=$SIMPLARRAY[“batchId”];
$totalRecords=$simpleArray[“计数”];
$rowIdList=$simpleArray[“行”];
对于($x=0;$x<$totalRecords;$x++){
/***调用批处理运行***/
Mage::log('Start importproduct/cronImport/batchRun/id/'.$batchId./row/'.$rowIdList[$x],null,'prod_import.log');
$url=$baseurl.“importproduct/cronImport/batchRun/”;
$post=“batch_id=”..$batchId.”和行%5B%5D=“..$rowIdList[$x];
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$URL);
curl_setopt($curl,CURLOPT_POST,1);
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$result=curl\u exec($curl);
$error=curl\u error($curl)。“\r\n”;
curl_close($curl);
日志('Print errors if any',null,'prod_import.log');
文件内容($logFile,$error,file_APPEND | LOCK_EX);
Mage::log('End importproduct/cronImport/batchRun/id/'.$batchId./row/'.$rowIdList[$x],null,'prod_import.log');
} 
/***调用批处理完成***/
日志('Start importproduct/cronImport/batchFinish/id/'。$batchId,null,'prod_import.log');
$url=$baseurl.“importproduct/cronImport/batchFinish/id/”$batchId./”;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$URL);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$result=curl\u exec($curl);
$error=curl\u error($curl)。“\r\n”;
curl_close($curl);
日志('Print errors if any',null,'prod_import.log');
文件内容($logFile,$error,file_APPEND | LOCK_EX);
Mage::log('End importproduct/cronImport/batchFinish/id/'。$batchId,null,'prod_import.log');
/****将导入的文件移动到导入的目录****/
如果(文件_存在(“var/import/”$csv)){
$t=时间();
$timestamp=日期(“Y-m-d-H-i-s”,$t);
重命名(“var/import/”$csv,“var/import/imported/”$timestamp.-“$csv”);
}
}

如果需要更多详细信息,请发表评论。

我在尝试运行时遇到以下错误。致命错误:在/opt/lampp/htdocs/magento/app/design/frontend/base/default/template/importproduct/cronimport.phtml第2行的null上调用成员函数run(),您在system\u convert\u run块中写入了什么?