我想在Prestashop 1.6中导入两种不同语言的产品的csv文件。 我有2个csv文件,每种语言一个。 当我导入第一语言的csv文件时,一切都很好。
当我导入第二语言的csv文件时,Prestashop无法理解要素值作为第一语言的要素值的转换,而是作为新要素值添加。
它添加为新功能值,因为我使用多功能模块(http://addons.prestashop.com/en/search-filters-prestashop-modules/6356-multiple-features-assign-your-features-as-you-want.html)。 如果没有此模块,第二个csv导入将更新两种语言的功能值。
如何让Prestashop明白它是一种翻译,而不是一项功能的新功能价值?
谢谢!
答案 0 :(得分:0)
我通过直接更新数据库找到了解决方案。
- 我使用prestashop中的csv import为主要语言导入了所有产品。
- 功能值存储在ps_feature_value_lang表中。 3列:id_feature_value | id_lang |值
- 就我而言,法语是ps_feature_value_lang.id_lang = 1而英语ps_feature_value_lang.id_lang = 2
- 在我做任何更改之前,ps_feature_value_lang的数据如下所示:
id_feature_value | id_lang |值强>
1 | 1 |我的法语价值
1 | 2 |我的英文价值
- 我创建了一个包含2列的表( myTableOfFeatureValueIWantToImport ):feature_value_FR / feature_value_EN。我用数据填充了这张表。
- 因为我不知道我的特征值的ID(id_feature_value)(prestashop在导入我的第一语言的csv文件时创建了这些ID),我将循环使用 myTableOfFeatureValueIWantToImport的数据并且每次ps_feature_value_lang.id_lang == 2和ps_feature_value_lang.value ==“我要翻译的值”我将更新ps_feature_value_lang.value并翻译我的特征值。
$select = $connection>query("SELECT * FROM myTableOfFeatureValueIWantToImport GROUP BY feature_value_FR");
$select->setFetchMode(PDO::FETCH_OBJ);
while( $data = $select->fetch() )
{
$valFR = $data->feature_value_FR;
$valEN = $data->feature_value_EN;
$req = $connection->prepare('UPDATE ps_feature_value_lang
SET ps_feature_value_lang.value = :valEN
WHERE ps_feature_value_lang.id_lang = 2
AND ps_feature_value_lang.value = :valFR
');
$req->execute(array(
'valEN' => $valEN,
'valFR' => $valFR
));
}
完成:D