第 5 章 - 动态模板¶
适配商店模板¶
现在,让我们来适配网站的各个动态部分。您可能知道,有些页面(例如电子商务相关页面)是自动生成的。安装 website_sale 应用后,商店、产品和结账等页面会自动生成。这些模板页面从后端获取所显示的信息。
要修改这些页面,我们需要编辑 Odoo 标准模板。这可以通过 SCSS、预设、设置,尤其是 XPath 来完成。找到要修改的 Odoo 标准模板,并使用 XPath 对其进行扩展。按照 Airproof 设计,让我们先从修改商店视图开始。
添加横幅。
显示分类标题。
适配左侧的筛选功能。
移除搜索栏。
适配并移动面包屑导航。
每行仅显示 3 个产品。
为产品卡片创建合适的设计和信息。
小技巧
要启用属性/变体筛选,请在网站后台设置中启用 产品变体 选项,并为产品 配置属性和变体。
要适配整个商店页面,请逐步进行:
使用 预设 设置商店选项。
使用
website.xml中的 设置 来自定义产品卡片的布局。您可以在 products_design_panel.xml 中找到所有可用类的概览在 Odoo 中找到标准商店模板: 。以此为基础,完成前 2 个步骤中尚未实现的重大修改。通过 XPaths 进行这些修改,并将其放在
website_sale_templates.xml文件中。使用 SCSS 进一步优化您的设计。
如前所述,这些修改是通过不同方法完成的:
借助 bootstrap_overridden.xml 中的 Bootstrap 变量来适配筛选复选框的外观。
借助 presets.xml 中的预设来实现筛选选项和搜索栏。
借助 website.xml 中的设置来实现产品卡片布局的很大一部分。
借助对 website_sale_templates.xml 中标准商店模板的适配。您可以在其中找到添加的横幅、分类标题的显示、面包屑导航的重新定位,以及 排序方式 按钮的外观。
为了更好地组织,我们创建了一个单独的文件 product_tile_templates.xml,用于在产品卡片上添加 了解更多 链接。
最后,借助 SCSS
我们在 product_card.scss 中优化了产品卡片的悬停效果。
在 shop.scss 中,您会看到对面包屑外观的修改以及对 Bootstrap 变量($breadcrumb-divider)的修改。此外还有对 排序方式 按钮的进一步适配。
适配产品页面模板¶
客户对商店的修改非常满意。接下来,让我们将设计应用到产品页面。根据下面的 Airproof 设计,适配以下几个元素:
移动面包屑导航。
为产品图片轮播设计合适的布局。
移除 数量 和 比较 选择器以及
Terms and Conditions部分。更新 加入购物车 按钮图标。
适配 添加到愿望清单 按钮。
将产品规格放入折叠面板中。并在此折叠面板中添加“ 更多信息”项。
在产品详情正下方实现一个新的拖放区域,对所有产品可见。作为用例,使用网站构建器添加一个
Text-Image构建块(例如:参见 Airproof 产品页面 截图中显示的“ 购买它的六个理由……”)。适配标题,删除文本,并将之前创建的产品模板应用到
Alternative products部分(请确保在后端为产品分配了替代产品,该部分才会显示)。
更多内容
请参阅关于如何创建 拖放区域 的参考文档。
小技巧
使用预设、XPath 和 SCSS 进行修改。请务必为代码添加适当的注释,以便日后查找。
关于折叠面板中的“更多信息”项,有一个小提示:它实际上是 Odoo 代码中存在的一个隐藏模板,其 ID 为
accordion_more_information。在这种情况下,拖放区域将对所有产品可见。要为每个产品创建特定的拖放区域,需要向产品模型添加一个新字段。
在我们的 Airproof 示例中查找解决方案:presets.xml、website_sale_templates.xml 的 产品页面 部分、website_sale_wishlist_templates.xml 以及 product_page.scss。