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/