How to override a render ISML template in Intershop7

525 views Asked by At

In Enfinity Suite 6.4 we used to customize storefront pages by overriding ISML templates of the PrimeTech cartridges. For example, it was possible to add a dependency in our custom cartridge to "sld_ch_consumer_app" and replace any Primetech ISML template by adding the template with the same name and hierarchy in our custom cartridge.

Is something like that possible in Intershop7? For example, we would like to change the order of the ISML elements in ProductTile.isml, without overriding the pagelet model. If we add a dependency in our custom cartridge to "app_sf_responsive_cm" and create the ISML template with the same name and folder hierarchy in our custom cartridge, the system still loads the ISML template from the "app_sf_responsive_cm".

Only way we managed to achieve to see the changes in storefront was by overriding the pagelet model and changing the render template name to "ProductTileCustom". Like this:

enter image description here

If we don't use the custom name for the render template, system will first load the ProductTile.isml from the app_sf_responsive_cm instead of the one n our custom cartridge (app_sf_a1_shop_cm).

The order of the cartridges in the cartridgelist.properties is this:

....
bc_urlrewrite_test \
bc_product_rating_orm_test \
commerce_management_b2c_component \
app_core_a1 \
app_sf_a1_shop \
app_sf_a1_shop_cm \
app_bo_a1 \
app_sf_responsive \
app_sf_responsive_cm \
app_sf_responsive_b2c \
app_sf_responsive_smb \
as_responsive \
as_a1 \

Is there some easier way of overriding the responsive store ISML templates other than overriding the pagelet model?

2

There are 2 answers

1
Johannes Metzner On BEST ANSWER

In addition to what Bas de Groot was mentioning in regards to use the intershop studio wizard to override an ISML template, I want to point out that your problem lies within the wrong order of cartridges in your cartridgelist.properties. So instead of:

bc_urlrewrite_test \ bc_product_rating_orm_test \ commerce_management_b2c_component \ app_core_a1 \ app_sf_a1_shop \ app_sf_a1_shop_cm \ app_bo_a1 \ app_sf_responsive \ app_sf_responsive_cm \ app_sf_responsive_b2c \ app_sf_responsive_smb \ as_responsive \ as_a1 \

You must use this order here:

bc_urlrewrite_test \ bc_product_rating_orm_test \ commerce_management_b2c_component \ app_sf_responsive \ app_sf_responsive_cm \ app_sf_responsive_b2c \ app_sf_responsive_smb \ as_responsive \ as_a1 \ app_core_a1 \ app_sf_a1_shop \ app_sf_a1_shop_cm \ app_bo_a1 \

In other words, your project cartridges must be loaded after the intershop stuff

3
Bas de Groot On

There should be no need to override the pagelet model, just overriding the ISML template should do the trick. You can easily override ISML templates in Intershop 7 by doing the following:

  1. Right click the custom cartridge to which you want to add the new template and select new > ISML Template.
  2. In the popup window that appears click Override Existing....
  3. Select the template you want to override and click open.
  4. Click Finish.

Intershop Studio will now automatically create the template and correct folder structure inside your specified cartridge.

Depending on your settings in the appserver.properties file you might need to restart or even re-deploy the application server before the new template will show up in the frontend.