Akeneo 2.1: лучшие практики импорта / экспорта, чтобы все это настроить

В настоящее время я настраиваю экземпляр Akeneo (2.1), который должен взаимодействовать с решением для электронной коммерции. Мне было интересно, каковы лучшие практики, когда речь идет об импорте и экспорте данных. Документация вроде этого отсутствует; в нем рассказывается, как вы можете настроить его, но я пропускаю практические примеры использования здесь.

Вот о чем я думаю:

  • Я хочу, чтобы наш клиент мог загружать свои изображения / файлы CSV через FTP-соединение.
  • В идеале Akeneo должен начинать импорт, только когда обнаружена мутация в этой (FTP) папке назначения.
  • Экспорт должен быть выполнен только один или два раза в день, и после завершения архива должен быть передан (ы)FTP в другое место

В настоящее время у меня возникают проблемы с тем, как реализовать этот поток в Akeneo. Потому что, если я посмотрю на то, что выходит из коробки, я могу придумать следующее:

  • Я могу настроить учетную запись FTP, которая заканчивается в `app/uploads/product/`, и позволить клиенту загружать в это место
  • Akeneo не обнаруживает изменения файловой системы, поэтому я могу только настроить cronjob, который пытается импортировать каждый час или что-то еще. Недостаток этого подхода заключается в том, что Akeneo будет каждый раз копировать файлы CSV в `app/archive/import`. Если у вас большие файлы CSV, это может привести к некоторому увеличению использования диска.
  • Я могу настроить cronjob для экспорта два раза в день, но опять же: Akeneo будет создавать архивы при каждом экспорте, поэтому `app/archive/export` будет расти с каждым днем. Обратите внимание, что у моего клиента есть ресурсы объемом более 4 ГБ (изображения, документы и т. Д.). Akeneo время от времени очищает папку `app/archive`?
  • Каждый экспортированный архив поступает в новую папку (с каждым увеличенным номером задания (например, `app/archive/export/csv_product_export/28/`)), поэтому мне интересно, как я могу обнаружить эту новую папку и как Я могу инициировать загрузку архива на удаленный (S)FTP-сервер после завершения экспорта.

Мне было просто интересно, как другие люди, которые работают с Akeneo, справились с этими проблемами. Я знаю, что могу написать свой собственный пакет и подключиться к куче событий или написать сценарии оболочки, которые делают для меня много магии, но мне интересно, что сам Akeneo уже предлагает по этому вопросу.

Любые мысли / идеи / предложения / опыт по этой теме приветствуются!

1 ответ

Чтобы ответить на ваши вопросы:

  • Акенео не нужно загружать CSV в app/uploads/product/папка. Вы можете определить местоположение CSV в профиле импорта. Таким образом, вы можете использовать любое место, которое вы хотите.
  • Чтобы импортировать изображения, вам нужно сжать их с помощью файла csv (чтобы увидеть, как должна выглядеть структура архива, вы можете экспортировать некоторые продукты со СМИ на demo.akeneo.com)
  • Настройка cronjob кажется хорошей идеей. Если использование диска является проблемой, этот cronjob может также очистить папку после импорта.
  • Для экспорта два раза в день вы можете использовать экспортный компоновщик, чтобы экспортировать только те продукты, которые были обновлены с момента последнего экспорта (дельта-экспорт). Таким образом, вы не используете слишком много места ни за что.
  • Опять же, app/archive/export/csv_product_export/28/ путь только для внутреннего пользования. Это рабочий каталог, используемый Akeneo во время экспорта (например, до zip), а конечный файл (csv или zip) перемещается в указанное место назначения (в конфигурации задания).

Со всей этой информацией вот моя рекомендация:

  • Напишите простой скрипт bash / php, чтобы обнаружить изменения в папке, и, если он есть, переместите файл в другое место и запустите импорт.
  • Если вы хотите обрабатывать изображения, вы можете добавить в свой скрипт способ создания zip-файла в хорошем формате.
  • Затем, чтобы экспортировать в свою электронную коммерцию, установите cronjob для экспорта каждый час и экспорта только новых или обновленных продуктов в желаемый пункт назначения.

Другой способ - использовать новый REST API, который хорошо документирован здесь: https://api.akeneo.com/

Другие вопросы по тегам