Перенос изображений из csv в многозначное поле изображения - PullRequest
0 голосов
/ 29 декабря 2018

Мне нужно импортировать CSV-файл в тип узла продукта.У меня есть CSV-файл с текущей схемой:

id | title   | category | image_url
-------------------------------------
1  | Title 1 | 1        | http://example.com/1.jpg,http://example.com/2.jpg
2  | Title 2 | 2        | http://example.com/3.jpg

Как вы видите, у меня есть многозначное поле изображения, а также более одного изображения в столбце image_url.И это моя проблема.Я не могу импортировать узлы (и файлы), если в CSV-файле есть ячейки с несколькими ссылками (разделенные запятой).

Прежде чем я узнал, что мне нужно использовать более одного изображения для поля, яdoo next: моя CSV-схема была:

id | title   | category | image_url
-------------------------------------
1  | Title 1 | 1        | http://example.com/1.jpg
2  | Title 2 | 2        | http://example.com/2.jpg

, а миграция .yml-файла была:

id: catalog_products_files
label: 'Import catalog products files'
migration_group: catalog_products
source:
  plugin: csv
  path: public://csv/products.csv
  delimiter: ';'
  # enclosure: '"'
  header_row_count: 1
  # These are the field names from the source file representing the key
  # uniquely identifying each node - they will be stored in the migration
  # map table as columns sourceid1, sourceid2, and sourceid3.
  keys:
    - id
  column_names:
    0:
      id: 'Unique Id'
    1:
      title: 'Title'
    2:
      category: 'Product category'
    3:
      image_url: 'Image url'
  constants:
    status: 1
    uid: 1
    destination: 'public://migration-downloads/catalog/image.jpg'
ids:
  id:
    type: string
process:
  uri:
    -
      plugin: download
      source:
        - image_url
        - 'constants/destination'
      rename: true
    -
      plugin: skip_on_empty
      method: row
      message: 'Field downloaded_photo is missed'
  status: 'constants/status'
  uid: 'constants/uid'
destination:
  plugin: entity:file
migration_dependencies: {}
dependencies:
  enforced:
    module:
      - custom_csv_import
      - migrate_source_csv

И все импортировалось хорошо!Как я могу импортировать несколько изображений из одной строки?

Я использую Migrate Source CSV модуль для импорта CSV

...