Prestashop - 以不同语言导入产品的 csv 文件:未翻译的特征值
Prestashop - import csv files of products in different languages : feature value not translated
我想在 Prestashop 1.6 中导入 2 种不同语言的产品 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 理解它是一个翻译,而不是一个特征的新特征值?
谢谢!
我通过直接更新数据库找到了解决方案。
- 我在主要语言的 prestashop 中使用 csv import 导入了我的所有产品。
-特征值存储在ps_feature_value_langtable中。 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 列的 table (myTableOfFeatureValueIWantToImport):feature_value_FR / feature_value_EN。我用数据填充了这个table。
- 因为我不知道我的特征值的 ID (id_feature_value)(prestashop 在导入我的第一语言的 csv 文件期间创建了这些 ID),我要循环myTableOfFeatureValueIWantToImport 的数据,每次 ps_feature_value_lang.id_lang == 2 和 ps_feature_value_lang.value == "value I want to translate" 我要用我的特征值更新 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
我想在 Prestashop 1.6 中导入 2 种不同语言的产品 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 理解它是一个翻译,而不是一个特征的新特征值?
谢谢!
我通过直接更新数据库找到了解决方案。
- 我在主要语言的 prestashop 中使用 csv import 导入了我的所有产品。
-特征值存储在ps_feature_value_langtable中。 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 列的 table (myTableOfFeatureValueIWantToImport):feature_value_FR / feature_value_EN。我用数据填充了这个table。
- 因为我不知道我的特征值的 ID (id_feature_value)(prestashop 在导入我的第一语言的 csv 文件期间创建了这些 ID),我要循环myTableOfFeatureValueIWantToImport 的数据,每次 ps_feature_value_lang.id_lang == 2 和 ps_feature_value_lang.value == "value I want to translate" 我要用我的特征值更新 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