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

How to override a render ISML template in Intershop7

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

在 Intershop7 中可以实现类似的功能吗?例如,我们想更改 ProductTile.isml 中 ISML 元素的顺序,而不覆盖 pagelet 模型。如果我们在自定义墨盒中添加依赖项 "app_sf_responsive_cm" 并在自定义墨盒中创建具有相同名称和文件夹层次结构的 ISML 模板,系统仍会从 "app_sf_responsive_cm".[=12 加载 ISML 模板=]

我们设法实现看到店面变化的唯一方法是覆盖 pagelet 模型并将呈现模板名称更改为 "ProductTileCustom"。像这样:

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

cartridgelist.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 模板?

应该不需要重写 pagelet 模型,只需重写 ISML 模板就可以了。您可以通过执行以下操作轻松覆盖 Intershop 7 中的 ISML 模板:

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

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

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

除了 Bas de Groot 提到的关于使用 intershop studio 向导覆盖 ISML 模板的内容之外,我想指出您的问题在于 cartridgelist.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 东西之后加载