Я хотел бы опубликовать или отменить развертывание рекламных акций, созданных на новом механизме продвижения (базе правил) с помощью задания cron, в соответствии с датами, которые определены в бэк-офисе как отдельная модель, которая имеет промо-код, дату начала и дату окончания.
Я не смог найти api продвижения в help hybris для выполнения операций публикации и отмены развертывания, как в бэк-офисе. А также мне не удалось найти в проекте сопутствующие услуги по продвижению.
Любая помощь будет оценена по достоинству.
Вот пример публикации рекламных акций в Groovy:
import de.hybris.platform.core.Registry
def activateAllPromotions()
{
def maintenanceService = Registry.getApplicationContext().getBean("ruleMaintenanceService")
def ruleService = Registry.getApplicationContext().getBean("ruleService")
def rules = ruleService.getAllRules()
def res = maintenanceService.compileAndPublishRules(rules,"promotions-module",true)
}
activateAllPromotions()
Вы можете отменить публикацию с помощью maintenanceService#archiveRule(AbstractRuleModel)
Для публикации рекламных акций вы можете использовать:
ruleMaintenanceService.compileAndPublishRules(promotions,"promotions-module",true);
Для отмены публикации рекламных акций вы можете использовать:
ruleMaintenanceService.undeployRules(promotions,site);
compileAndPublishRules
у меня не работает. Это компилирует правило, но не публикует его. В BO я вижу скомпилированные правила с увеличенной версией и статусом inactive
. Как я могу заставить это работать? Спасибо! UPD: Я тупой. При сохранении правила автоматически создается его новая версия. И это надо опубликовать.
К вашему сведению, отличная консоль в hac предоставляет контекст Spring через переменную
spring
. Поэтому вместоRegistry...
вы можете использоватьspring.getBean('...')