关于 Spartacus My Account 菜单的数据源 - NavigationNode

发布时间 2023-09-24 20:21:12作者: JerryWang_汪子熙

有朋友询问 Spartacus 的 My Account 菜单里,My company 菜单项的数据源是什么?

Spartacus 启动时,我们观察到这个 OCC API:

/occ/v2/powertools-spa/cms/pages?lang=en&curr=USD

在其响应数据里,观察到 navigation node 里包含了一个叫做 My Company 的菜单项:

Backoffice 是 SAP Commerce Cloud 中的一个强大工具,用于管理和维护电子商务网站的各个方面。Backoffice 提供了一个直观的用户界面,允许管理员和运营团队轻松地管理产品、客户、订单、促销活动等。NavigationNode(导航节点)是 Backoffice 中的一个关键概念,它用于构建和自定义 Backoffice 的导航菜单结构,以便用户能够快速访问所需的功能和信息。

在本文中,我将详细介绍 Backoffice NavigationNode 的概念,讨论其用途和功能,并提供一些示例,以便更好地理解它的工作原理。

1. NavigationNode 是什么?

NavigationNode(导航节点)是 Backoffice 中的一个核心概念,用于构建和组织导航菜单。它允许管理员自定义 Backoffice 的菜单结构,以便将功能和页面组织成有层次结构的树状列表,使用户能够轻松地导航和访问各个部分。NavigationNode 的主要作用如下:

1.1 导航和访问

NavigationNode 用于创建导航菜单,用户可以通过该菜单快速访问 Backoffice 中的不同功能和页面。这样,用户无需浏览整个应用程序,而是可以直接跳转到所需的部分,提高了操作效率。

1.2 自定义菜单结构

通过 NavigationNode,管理员可以根据组织的需求自定义 Backoffice 的菜单结构。这意味着可以将不同的功能和页面按照逻辑顺序进行组织,以便更好地满足特定业务流程或操作需求。

1.3 安全性

NavigationNode 还与安全性密切相关。管理员可以通过设置权限和角色来控制哪些用户可以访问特定的导航节点。这有助于确保只有经过授权的用户才能执行特定操作和访问敏感信息。

2. NavigationNode 的属性

NavigationNode 具有一些重要的属性,这些属性定义了节点的行为和外观。以下是 NavigationNode 可能具有的一些属性:

2.1 名称

每个 NavigationNode 都有一个名称,这个名称将在导航菜单中显示。名称通常用于描述节点代表的功能或页面。

2.2 类型

NavigationNode 的类型定义了它的行为。有不同类型的导航节点,包括文件夹、链接、组等。每种类型都有其自己的用途和行为。

2.3 链接

对于链接类型的 NavigationNode,通常需要指定一个 URL,该 URL 将在用户单击节点时打开。这使得可以将 Backoffice 与外部资源或其他应用程序集成起来。

2.4 图标

可以为 NavigationNode 指定一个图标,以便在导航菜单中显示。这有助于用户更容易地识别节点代表的内容。

2.5 权限

权限属性定义了哪些用户或角色有权访问该节点。这是确保安全性的关键因素,可以根据需要进行精细的权限设置。

3. NavigationNode 的示例

为了更好地理解 NavigationNode 的工作原理,让我们通过一些示例来演示它的用途和属性。

3.1 创建产品管理节点

假设您是一个电子商务网站的管理员,您想要在 Backoffice 中创建一个用于管理产品的节点。您可以执行以下步骤:

  • 名称: 您可以将节点命名为“产品管理”。
  • 类型: 这个节点类型应该是一个文件夹,因为它将包含多个子页面。
  • 图标: 为了让用户更容易识别,您可以选择一个与产品相关的图标。
  • 权限: 只有经过授权的管理员和产品团队成员才能访问这个节点。

一旦创建了这个节点,您可以在其中添加子节点,用于管理产品的不同方面,比如创建新产品、编辑现有产品、查看产品库存等。这样,您就可以将产品管理功能组织成一个层次结构,使其更易于访问。

3.2 添加外部链接

有时候,您可能希望在 Backoffice 导航中包含指向外部资源或工具的链接。例如,您可能希望添加一个链接,以便管理员可以直接访问在线报告工具。在这种情况下,您可以执行以下步骤:

  • 名称: 将节点命名为“在线报告工具”。
  • 类型: 这个节点类型应该是一个链接。
  • 链接: 指定在线报告工具的 URL。
  • 图标: 可以选择一个与报告相关的图标。
  • 权限: 确保只有需要的管理员可以访问这个链接。

这样,管理员就可以从 Backoffice 直接访问在线报告工具,而无需单独打开浏览器并手动输入 URL。

3.3 创建自定义工作区

有时候,您可能需要为特定的用户组或角色创建自定义工作区,以便他们可以更有效地执行其工作。例如,您可能希望为客服团队创建一个专门的工作区,其中包含了与客户互动和订单管理相关的功能。在这种情况下,您可以执行以下步骤:

  • 名称: 将节点命名为“客服工作区”。
  • 类型:

这个节点类型可以是一个组,它将包含多个子节点。

  • 权限: 仅授予客服团队成员访问权限。

然后,您可以在客服工作区中添加子节点,包括查看客户信息、处理订单、查找订单历史等。这样,客服团队就可以轻松地访问与其工作相关的功能,而不必浏览整个 Backoffice。

4. NavigationNode 的配置

NavigationNode 的配置通常在 Backoffice 的扩展文件中完成。扩展文件定义了 Backoffice 的菜单结构和节点属性。以下是一个示例扩展文件的简化版本,其中包含了几个 NavigationNode 的配置:

<extension name="mybackoffice" extends="backoffice">
    <backoffice>
        <section>
            <label>My Custom Section</label>
            <id>myCustomSection</id>
            <modules>
                <module code="mymodule" />
            </modules>
        </section>
    </backoffice>
    <mymodule>
        <navigationNodes>
            <navigationNode>
                <id>productManagement</id>
                <label>产品管理</label>
                <type>folder</type>
                <icon>icon-product</icon>
                <permissions>
                    <permission>productmanager</permission>
                </permissions>
            </navigationNode>
            <navigationNode>
                <id>reportingTool</id>
                <label>在线报告工具</label>
                <type>link</type>
                <linkUrl>https://reportingtool.example.com</linkUrl>
                <icon>icon-report</icon>
                <permissions>
                    <permission>admin</permission>
                </permissions>
            </navigationNode>
        </navigationNodes>
    </mymodule>
</extension>

在上述示例中,我们定义了一个名为“mybackoffice”的扩展,扩展了 Backoffice,并在扩展中定义了一个名为“mymodule”的模块。在模块中,我们配置了两个 NavigationNode:一个用于产品管理,另一个用于在线报告工具。每个节点都有其自己的属性,包括类型、图标、权限等。

5. 总结

NavigationNode 是 SAP Commerce Cloud 中 Backoffice 的一个重要概念,它允许管理员自定义导航菜单结构,以便用户可以轻松地访问不同功能和页面。通过名称、类型、链接、图标和权限等属性的配置,可以创建符合特定需求的导航节点,从而提高了 Backoffice 的效率和安全性。

在实际应用中,NavigationNode 可以根据不同的业务流程和用户需求进行灵活配置,以满足不同角色和部门的要求。这使得 Backoffice 成为一个强大的工具,能够有效管理和维护电子商务网站。