1

我目前负责将大量产品导入客户的数据库。我一直在使用 CSV 文件来执行此操作,但到目前为止,我无法正确确定产品本身的运输特性(例如:宽度、高度、深度)(目录 > 产品 > 编辑(产品 XPTO >船运)。

在 CSV 文件中,我尝试使用:

(...);"Height:9 cm:1, Width:13,7 cm:2";(....) 

然后,我会将这个值映射到 Features (Name:Value:Position) 列。结果,产品的高度和宽度确实出现在产品的数据表上,但到目前为止,我还没有设法将这些值复制到运输选项卡上。

如何才能做到这一点? 这是一个示例 CSV 虚拟文件

还有一件事:Feature 的 Name:Value:Position 列表中的“Position”有什么作用?我正在使用诸如Feature Name:Feature Value:increment之类的东西,但据我所知,这不是应该的方式。

提前致谢!

编辑:如果可能的话,我还想知道字段“值(值:位置)*”到底指的是什么

4

1 回答 1

2

产品运输特征存储在ps_productPrestashop 数据库表的以下字段中:

  • 宽度小数(20,6)
  • 高度小数(20,6)
  • 深度小数(20,6)

不幸的是,CSV 导入脚本controllers/admin/AdminImportController.php( ,您必须运行以下 MySQL 查询(请在继续之前备份您的数据库):

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.width=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Width' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.height=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Height' 
   and fvl.id_feature_value=fp.id_feature_value;

update ps_product p, 
       ps_feature_lang fl, 
       ps_feature_product fp, 
       ps_feature_value_lang fvl 
   set p.depth=fvl.value 
 where p.id_product=fp.id_product 
   and fl.id_feature=fp.id_feature 
   and fl.name='Depth' 
   and fvl.id_feature_value=fp.id_feature_value;

一个注意事项:由于ps_feature_value_lang.value字段是“十进制( varchar(255)20,6 ps_product.width/height/depth)”,因此查询仅更新值,但不更新度量单位。
这意味着您必须在“本地化”设置中设置您在 CSV 文件中使用的相同“维度单位”(例如,在您的虚拟文件中使用“cm”)。
最后,关于“位置”的含义:它只是一个序号,用于在“功能”选项卡中按一定顺序显示各种功能。
即使我没有尝试过,也应该可以从 CSV 文件中添加新的产品功能,因此通过“位置”字段,您还可以指定必须在哪个位置添加这些新功能。

于 2012-11-09T22:11:54.903 回答