首页 / 帖子
CSV文件(比如数字488、665)使用Feeds import模块导入到SQL表中字段数据总是缺失一部分(变成4.00)

1、目的:想使用feeds 配套的feeds import 导入CSV格式大批量数据到ubercart这个商店组件中区,而不用手工一个个添加。

2、现状以及涉及到的模块:CMS=drupal 7.28;module=feeds 7.x-2.0、feeds import 7.x-2.0、Uc_feeds=ubercart feeds 7.x-1.0

3、实际操作过程:

  3.1 使用feeds import建立导入csv的importer(按照官方建议设置好了,应该是OK,没有问题的)、字段一一映射到位,CSV也是按照模板添加入字段数据格式如下

产品名称、产品生产日期、SKU、sell_price

商品1、2014.4.3、54-R103、488

注:其中产品名称、产品生产日期为自定义字段,附加到一个内容类型上的,和正常的添加一样;

由于ubercart默认产品字段sku、sell_price未显示出来,所以用Uc-feeds(ubercart feeds)启用,显示出来,以便于能够映射匹配字段。

  3.2 CSV转化为utf-8导入后的结果为 产品名称=商品1-------OK

产品生产日期=2014.4.3------OK

SKU=5-------错误(本来应该为54-R103,其它的也是这样取首个字符)

sell_price=4.00--------错误(本来应该为488,小数点那个默认设置两位。)

  3.4 出错两个字段对应MYSQL数据表结构信息: sku、Sell_price字段对应表为uc_product,sku结构信息为:sku(model)类型为varchar(255)、排序规则为utf8_general_ci、其它默认。Sell_price类型为decimal(16,7)、默认为0.0000000,其它默认。

4、尝试过的方法都没有用,包括feeds tamper将sell_price字段强制转为数字后再导入,无效;csv文本中sell_price后加空格,再导入无效;

5、怀疑出错地方为ubercart模块、或者uc_feeds模块中程序作出了限制。由于不会修改php代码,只能怀疑到这些文件中了。

sites/all/modules/ubercart/uc_product/views/uc_product_handler_field_price.inc、

uc_product_handler_field_display_price.inc


6、参考过drupal官网的一些方法,feeds导入,几乎没有找到针对ubercart的解决办法;只是找到了commerce的方法,但是无效。参考过的中文资料:http://jamesqi.com/%E5%8D%9A%E5%AE%A2/%E7%94%A8Feeds%E5%AF%BC%E5%85%A5csv%E6%95%B0%E6%8D%AE%E5%88%B0Drupal_7%E4%B8%AD


7、想要请教大神们的问题是:csv中的sku(54-R103)、sell_price(488)字段通过网页显示出来分别为54-R103、488,而不是5、4.88这样子。非常感谢晴空大叔告知drupal大学这个问答网站。我本来写了一个文档用图描述此个问题的,如果这里描述感觉不清楚我会发邮件给您以方便共同提高。

8、此问题由于是实际生产用应用遇到的,所以愿意为热心的大神支付一定费用。再次感谢。


3个答案
赵高欣
发布于:2014-07-14 18:31

csv中的sku(54-R103)、sell_price(488)字段通过网页显示出来分别为54-R103、488,而不是5、4.88这样子


里面应该是“而不是5、4.00”。打错了。

AnnyO
发布于:2014-07-14 20:36

你这个问题牵扯了大量的业务逻辑,并且复杂度高。

所以按照你说的,我觉得,100RMB帮你找个人解决吧,只解决重要的技术问题,细节你再研究。

陈蹊
发布于:2014-07-18 14:43

按照你的描述试了一遍,并未遇到你说的问题。

我是新建一个站点,只启用uc_product和feeds相关模块,cvs逗号分隔有header,编码utf8,导入后数据均正常。

你可以试试新建站点启用最小模块测试来排除问题所在,目前个人感觉可能你的cvs有问题


模块版本:

feeds 7.x-2.0-alpha8

uc_feeds 7.x-1.0

ubercart 7.x-3.6