Pimcore 6 CSV 导入

Pimcore 6 CSV Importing

这里是 Pimcore 新手。我在 csv 导入过程中遇到了一些困难,the docs 有点浅,我找不到更全面的开发人员参考。

关于解析器

导入 CSV 时,Pimcore 基本上为每一行提供两个选项:创建新的 DataObject 或更新现有的 DataObject。当您希望 Pimcore 更新现有数据对象时,您需要一些逻辑来根据 CSV 中的某些信息检索该特定数据对象。这就是解析器的用武之地。

Pimcore 支持 5 different resolver strategies:

  • Id:您的 CSV 需要包含一个带有 DataObject id 的列,该值用于获取相应的 DataObject 以进行更新
  • 文件名:与上面相同,但用于 DataObject
  • 的文件名(= 键)
  • Fullpath:与上面相同,但用于 DataObject 的完整路径
  • GetByAttribute:与上面相同,但对于 DataObject 中的给定属性(例如,如果您在其中有一个字段 ProductCode)
  • 代码:自定义 PHP class 包含检索现有 DataObject
  • 的逻辑

Id operator 有一个缺点,您目前 运行 是:

Resolves the objects via the object ID. The object has to exist, otherwise an error is thrown.

根据你的问题,我感觉你只是在插入新的数据对象(至少现在,也许你以后可能还想更新)。

创建数据对象时,您需要指定一个 key/filename(很可能您在手动创建对象时已经注意到这一点),因此您的 CSV 应该已经(如果没有,您应该添加)包含一个包含 key/filename 或新 DataObject 的完整路径的列。同一列 can/should 用于解析任何(可能已经)现有的数据对象。

因此您应该使用 Filename or Fullpath 解析器。如果对象已经存在,两者都有选项(更新它?忽略它?)和(在你的情况下更重要)当它不存在时做什么。

关于日期

看着code, any string that can be parsed by the PHP's method strtotime可以输入你的CSV。您的值 2016-05-30T14:36:03 解析得很好。