logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

从文本文件导入产品

16/10/2025, by Ivan

如果你的商店只有几个商品,手动添加产品是可以接受的。但如果你有数百甚至上千个产品呢?这种方法将非常耗时,对于大型商店来说效率极低。请注意,如果你有 10,000 个产品,而每个产品大约需要 5 分钟来添加,那么完成整个过程大约需要五个月的工作时间。而且你还可能遇到网络连接缓慢或操作错误等问题。因此,最佳解决方案是从文本文件导入产品。你可以从三种类型的文件中导入产品:逗号分隔值文件(CSV)、分号分隔文件(SSV)或制表符分隔文件(TSV)。CSV 文件以逗号分隔字段,表示一个表格或列表。例如,如果你有如下表格:

Drupal Ubercart import CSV

下面是该表的 CSV 表示形式:

"Name","Category","SKU","Price"
"iPod Nano","iPods",100001,"199.99"
"iPod Classic","iPods",100002,"249.99"
"iPod Shuffle","iPods",100003,"79.99"

分号分隔文件(SSV)用分号替代逗号,而制表符文件(TSV)使用制表符分隔字段。在本示例中,我们使用 CSV 文件,但过程对其他类型的文件相同。

在你可以将 CSV 文件导入 Ubercart 之前,必须先安装 Node import 模块。请执行以下步骤:

1. 访问 http://drupal.org/project/node_import 下载 Node import 模块。选择适用于 Drupal 6.x 的最新版本。同时,你还需要下载 Node import 所依赖的模块——DateAdvanced help。在 http://drupal.org/project/date 下载 Date API 模块,然后从 http://drupal.org/project/advanced_help 下载 Advanced help 模块。

2. 解压这些文件并复制到 sites/all/modules 目录。

3. 进入模块页面,启用 Date、Advanced help、Node import。

4. 导入页面位于:Administer | Content management | Import content。

Drupal Ubercart import content

该页面包含三个选项卡:

  • List(列表):显示所有已创建的导入任务及其上传的文件。由于你还没有创建任何导入,列表目前为空。
  • New import(新导入):启动新的导入向导,我们稍后会使用它。
  • Settings(设置):打开配置页面。

在开始导入之前,点击“设置”以查看配置页面。

Drupal Ubercart import CSV settings

  • Import directory(导入目录):在此处可通过 FTP 或导入向导上传 CSV 文件。
  • 若要启用 FTP 上传,请勾选 Allow FTP uploads
  • 出于安全考虑,启用 FTP 上传后应指定文件所有者,否则文件将对所有用户(包括匿名用户)可访问。
  • Allowed extensions(允许的扩展名):定义允许上传的文件类型,其余文件将被忽略。

对于你的商店,无需修改任何设置,直接点击“保存配置”返回上一页。在开始导入向导之前,让我们先了解 CSV 文件的结构及如何创建。

创建 CSV 文件最简单的方法是使用电子表格编辑器,如 Microsoft Excel 或 OpenOffice。这些软件默认使用各自的文件格式保存,但可以轻松导出为 CSV 文件。通过表格编辑插入数据远比在 Ubercart 中逐项输入高效。当然,最大优势在于如果你已有其他数据库应用程序的数据,可以将其导出为 CSV 并导入 Ubercart

在电子表格文件中,每一行表示一个产品,每一列表示产品的一个属性。还记得我们创建新产品时填写的表单吗?实际上,每个字段都应对应表格中的一列。对于你的商店,不需要所有字段,只需使用最重要的几个。以下是一个示例表格:

Drupal Ubercart Import CSV Excel

将该表保存为 CSV 格式。

Drupal Ubercart Import CSV Excel 保存

该表包含六列:SKU、名称、描述、类别、价格、图片。你可以在自己的应用中创建相同结构并保存为 CSV 文件。最后一步是将产品图片上传至服务器。使用 FTP 客户端,将所有图片上传到 sites/default/files 文件夹。如表中所示,我们使用一个名为 “import” 的子文件夹,以便将这些图片与网站上的其他图片区分开来。默认情况下,图片位于 sites/default/files 根目录。如果你将图片上传至 files/products 文件夹,则需要在路径列中添加相应前缀,例如:/products/036.jpg。

保存 CSV 文件并上传图片后,返回 Ubercart 并点击“新导入”。导入过程开始。

Drupal Ubercart Import CSV Excel Import

引导页会显示导入说明和主要按钮。阅读后点击“下一步”。

1. 第一步,选择要导入的内容类型。选择 Product(产品) 并点击“下一步”。

Drupal Ubercart import CSV Excel Import товаров

2. 第二步,选择并上传 CSV 文件。如果已有上传文件,会显示在列表中;若要上传新文件,点击“浏览”选择文件并上传。上传并选择 CSV 文件后,点击“下一步”。

Drupal Ubercart Import CSV Excel import 选择 CSV 文件

3. 第三步,可以设置一些文件选项。确认第一行是否包含列名(本例中是),并选择文件格式(CSV)。页面底部会显示文件前几行的预览数据。

通常 Microsoft Excel 使用分号分隔,而 OpenOffice 使用逗号。

点击“下一步”。

若出现以下错误:

Fatal error: Call to undefined function uc_product_node_is_product() in Z:\home\ubercart\www\sites\all\modules\node_import-6.x-1.0-rc4\node_import\supported\ubercart\uc_product.inc15

解决方法:访问 Ubercart 论坛:

http://www.ubercart.org/forum/bug_reports/12843/csv_import_step_3

打开文件 node_import\supported\ubercart\uc_product.inc 第 15 行,将

uc_product_node_is_product($node_type)

修改为

uc_product_is_product($node_type)

Drupal Ubercart Import CSV Excel Import 选择分隔符

4. 第四步,将文件列与产品字段对应。如果你使用了与示例相同的列标题,系统会自动匹配字段。请仔细检查,确保映射正确。确认无误后,点击“下一步”。

Drupal Ubercart Import CSV 字段映射

5. 第五步,可设置附加参数。保持默认即可,点击“下一步”。

Drupal Ubercart Import CSV 第五页

6. 第六步,定义默认值。当某些字段在 CSV 中缺失时,将使用这些值。设置完毕后点击“下一步”。

Drupal Ubercart Import CSV 默认值

7. 第七步,可预览导入数据。仔细检查是否存在错误。如果一切正常,点击“下一步”。

如果出现乱码问题,请确保文件使用 UTF-8 编码。MS Excel 默认保存为 ANSI 编码,这会导致乱码:

Drupal Ubercart Import CSV 编码问题

若无错误,可继续导入。

Drupal Ubercart import CSV 导入产品

8. 第八步(最后一步),显示导入概要。点击“开始导入”执行。完成后将显示导入成功与错误的记录。若不再需要 CSV 文件,可点击“删除”以从服务器移除。

Drupal Ubercart import CSV 开始导入

导入完成后,可查看错误报告:

Drupal Ubercart Import CSV 结果

太棒了!在导入过程中经常会出现错误,但别担心,很多人都有类似问题,你可以通过 Google 搜索找到解决方案。

现在进入产品目录,瞧!导入成功:

Drupal Ubercart import CSV 成功导入