如何在Intershop7中覆盖渲染ISML模板

时间:2018-06-29 10:26:04

标签: storefront intershop isml

在Enfinity Suite 6.4中,我们过去通过覆盖PrimeTech墨盒的ISML模板来自定义店面页面。例如,可以在自定义盒式磁带中向“ sld_ch_consumer_app”添加依赖项,并通过在自定义盒式磁带中添加具有相同名称和层次的模板来替换任何Primetech ISML模板。

在Intershop7中有可能发生这种情况吗?例如,我们希望在ProductTile.isml中更改ISML元素的顺序,而不必覆盖pagelet模型。如果我们在自定义盒式磁带中将依赖项添加到“ app_sf_sensitive_cm”,并在自定义盒式磁带中创建具有相同名称和文件夹层次结构的ISML模板,系统仍将从“ app_sf_sensitive_cm”中加载ISML模板。

我们只有设法覆盖页面let模型并将呈现模板名称更改为“ ProductTileCustom”,才能设法看到店面中的更改。像这样:

enter image description here

如果我们不使用自定义名称作为渲染模板,则系统将首先从app_sf_sensitive_cm加载ProductTile.isml,而不是从我们的自定义墨盒(app_sf_a1_shop_cm)中加载。

cassettelist.properties中的墨盒顺序如下:

....
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 \

除了覆盖pagelet模型之外,还有其他更简单的方法来覆盖响应式存储ISML模板吗?

2 个答案:

答案 0 :(得分:2)

应该不需要重写pagelet模型,只需重写ISML模板即可解决问题。您可以通过执行以下操作在Intershop 7中轻松覆盖ISML模板:

  1. 右键单击要向其添加新模板的自定义墨盒,然后选择new > ISML Template
  2. 在出现的弹出窗口中,单击Override Existing...
  3. 选择要覆盖的模板,然后单击open
  4. 点击Finish

Intershop Studio现在将自动在您指定的墨盒中创建模板和正确的文件夹结构。

根据appserver.properties文件中的设置,您可能需要重新启动甚至重新部署应用程序服务器,然后新模板才能在前端显示。

答案 1 :(得分:2)

除了Bas de Groot在使用intershop studio向导覆盖ISML模板方面提到的内容外,我还想指出您的问题出在您的carterlist.properties中盒式磁带的错误顺序之内。所以代替:

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 \

您必须在此使用此命令:

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 \

换句话说,您的项目墨盒必须在intershop物品之后装入