我明白,您的meta_description中的每個產品的數據都過長。
您可以在通過佈局XML配置加載它之前縮短值,或直接通過PHTML模板爲每個頁面類型加載值。
更好的方法來獲得您所需要的結果不是導入比您需要的最長的數據。
導入不必要的數據解決導入,之後你需要再次糾正它。
在開始導入到magento之前,也許會更好地製作剪切CSV文件中元描述的腳本。
我解決了類似的問題,並做了這樣的事情: (腳本把你的csv文件,只有2列,SKU和更新的文本名爲DECSRIPTION,比你可以導入到第一次導入csv後的magento進口一切沒有meta描述,之後,只有你的meta描述cuted出了250個字符例如))
//////// get csv and take variable you need in my case is it SKU
$csv = file_get_contents ('myimportfile.csv');
function parse_csv ($csv_string, $delimiter = ";", $skip_empty_lines = true, $trim_fields = true)
{
$enc = preg_replace('/(?<!")""/', '!!Q!!', $csv_string);
$enc = preg_replace_callback(
'/"(.*?)"/s',
function ($field) {
return urlencode(utf8_encode($field[1]));
},
$enc
);
$lines = preg_split($skip_empty_lines ? ($trim_fields ? '/(*\R)+/s' : '/\R+/s') : '/\R/s', $enc);
return array_map(
function ($line) use ($delimiter, $trim_fields) {
$fields = $trim_fields ? array_map('trim', explode($delimiter, $line)) : explode($delimiter, $line);
return array_map(
function ($field) {
return str_replace('!!Q!!', '"', utf8_decode(urldecode($field)));
},
$fields
);
},
$lines
);
}
// list of variables to array
$vystup = parse_csv($csv);
enter code here
之後,你可以循環每個變量排,由PHP修改你想要什麼:
$seznamsku = array();
foreach ($vystup as $row){
array_push($seznamsku, $sku[0]);
unset($seznamsku[0]);
$seznamskufin = array_filter($seznamsku, 'strlen');
};
foreach ($seznamskufin as $row) {
$__OUT .= ' "ROW_YOURSKU","'.htmlspecialchars(substr(ROW_YOURMETADESCRIPTION, 0, 155)).'"'."\n"; // TODO exactly dont know how to call variables, maybye $row['something'] or $row[0]['something']
};
$feed = fopen($newfile, 'w');
fwrite($feed, $__OUT);
fclose($feed);
//remember to unset variables
你可以得到另一個csv文件,描述長250個字符,並將其導入到magento (您必須更新代碼,它只返回SKU列表,從文件中獲取您的描述);
你在csv文件中從255下降到155是什麼意思?我認爲數據庫沒有任何關於字符限制的問題。 – ggDeGreat