Как экспортировать каталог из Hybris через CronJob и экспортировать во внешнюю систему через нумерацию страниц?
Я новичок в Hybris. Необходимо экспортировать данные полного / дельта-каталога из Hybris и сделать веб-сервис для внешней системы. В настоящее время я создал новый CronJob, который запускается каждый день для выполнения этого действия. Пожалуйста, дайте мне знать, как мы можем этого достичь.
Я ссылался на различные блоги, но все упоминают о FlexibleSearchQuery. Существуют ли какие-либо нестандартные методы для достижения этой функциональности.
3 ответа
Говоря фундаментально с точки зрения архитектуры хорошего решения. Я рекомендую изучить вариант, который не требует от Hybris активной отправки данных через сервисный вызов сторонней системе. Hybris должен быть связан с коммерцией. Если только вы не используете его в качестве PIM.
Кроме того, вы не упомянули протокол или тип полезных данных, ожидаемых службой. В любом случае, исходя из предположения, что вы поставите zip-файл, содержащий CSV/XML для продуктов и носителей, все в одном. Вот как бы я это сделал.
1) Определение задания: вы можете написать Cronjonb в Groovy на лету (развертывание не требуется) и / или на Java стандартным способом (требуется развертывание).
2) Логика для извлечения данных и экспорта. Используйте FlexibleQuery для извлечения продуктов из нужной вам версии каталога, а затем заархивируйте пакет в ZIP-файл (например, mediaService.setStreamForMedia(media, new ByteArrayInputStream(products.toByteArray()), "mystore-mycatalog-export.zip", "application/zip") . Это запишет файл в zip-файл и даст вам URL-адрес, который вы можете вставить в событие, что может вызвать еще один cronjob для фактического вызова службы и отправки этого файла.
3) Напишите очистительное задание, чтобы избавиться от уже отправленных грузов. Из-за размера ваш диск будет быстро заполнен до такой степени, что ваша система выйдет из строя.
Hybris DataHub имеет некоторые функции синхронизации для SAP ERP. Может быть, вы можете использовать это.
Вы могли бы использовать OCC GET /{baseSiteId}/export/products
конечная точка, если ваша сторонняя система может получать данные из службы REST.
Конечная точка производит все продукты или все продукты, измененные с timestamp
Полная документация доступна здесь: https://help.hybris.com/1808/api/ycommercewebservices/index.html