Hybris-自定义初始化处理

概述

初始化处理的目的是准备store数据

通过加速器扩展导入数据

加速器提供了两个专门的挂钩来导入自定义数据

core data hook,merchandisecore扩展中的de.hybris.merchandise.core.setup.CoreSystemSetup,使用@SystemSetup注解,在merchandisecore-spring.xml中定义,它的设计是为了初始化store basic data(non concrete store data, non store-specific data),如cockpit definitions, email templates, CMS layout等
sample data hook,merchandiseinitialdata扩展中的de.hybris.merchandise.initialdata.setup.InitialDataSystemSetup,使用@SystemSetup注解,在merchandiseinitialdata-spring.xml中定义,它的设计是为了初始化all the product and concrete cms content(concrete store data,store-specific data),如catalogs, Solr configurations等
Sample Data hook包括两个重要的service,它们有一个共同的父类AbstractDataImportService,提供importing all data, synchronizing catalogs, run solr indexes等功能

Core Data Import Service,它的设计是为了导入store的all essential core data(basic structure of a store),如catalog definition, email templates, site definition,可以看de.hybris.platform.commerceservices.dataimport.impl.CoreDataImportService这个类,注意store’s data是怎样导入的,如catalogs, solr configuration, cms content等
Sample Data Import Service,它的设计是为了导入all the store-specific data和用concrete data,如product data, images来填充core data import service定义的structure,可以看de.hybris.platform.commerceservices.dataimport.impl.SampleDataImportService这个类,注意store’s data是怎样导入的,如products, images, cms content等

修改InitialDataSystemSetup类

加入以下代码

package de.hybris.merchandise.initialdata.setup;

...
import java.util.Arrays;
...

@SystemSetup(extension = MerchandiseInitialDataConstants.EXTENSIONNAME)
public class InitialDataSystemSetup extends AbstractSystemSetup
{
    ...
    public static final String MERCHANDISE = "hybris";
    ...

    @SystemSetup(type = Type.PROJECT, process = Process.ALL)
    public void createProjectData(final SystemSetupContext context)
    {
        /*
     * Add import data for each site you have configured
     * 
     * final List<ImportData> importData = new ArrayList<ImportData>();
     *
     * final ImportData sampleImportData = new ImportData();
     * sampleImportData.setProductCatalogName(SAMPLE_PRODUCT_CATALOG_NAME);
     * sampleImportData.setContentCatalogNames(Arrays.asList(SAMPLE_CONTENT_CATALOG_NAME));
     * sampleImportData.setStoreNames(Arrays.asList(SAMPLE_STORE_NAME));
     * importData.add(sampleImportData);
     * 
     * getCoreDataImportService().execute(this, context, importData);
     * getEventService().publishEvent(new CoreDataImportedEvent(context, importData));
     *
     * getSampleDataImportService().execute(this, context, importData);
     * getEventService().publishEvent(new SampleDataImportedEvent(context, importData));
     */

        final List<ImportData> importData = new ArrayList<ImportData>();

        final ImportData hybrisImportData = new ImportData();

        hybrisImportData.setProductCatalogName(MERCHANDISE);
        hybrisImportData.setContentCatalogNames(Arrays.asList(MERCHANDISE));
        hybrisImportData.setStoreNames(Arrays.asList(MERCHANDISE));
        importData.add(hybrisImportData);

        getCoreDataImportService().execute(this, context, importData);
        getEventService().publishEvent(new CoreDataImportedEvent(context, importData));

        getSampleDataImportService().execute(this, context, importData);
        getEventService().publishEvent(new SampleDataImportedEvent(context, importData));
    }
...
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值