首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在 SAP Spartacus 中编写 ASM-Compatible 的代码

Spartacus 官方支持 ASM 场景之前,在代表经过身份验证的用户发送的请求中,OCC userId 是特殊的 current OCC 用户,由 OCC_USER_ID_CURRENT 常量表示...需要应用一些逻辑来确定正确的 OCC userId 以传递给触发后端调用的操作。...因此,确定正确 OCC userId 的逻辑集中在 UserIdService 的 takeUserId() 函数中。 当客户支持代理登录时,ASM UI 中会出现一个会话超时计时器。...为了显示 CMS 内容,Spartacus 依赖于 OCC 的 CMS endpoint. 发送请求时,CMS 端点不接受可以定义模拟用户(即客户)的 userId 参数。...OCC CMS 端点不接受 userId 参数,因此模拟客户不可能在 ASM 模拟会话期间触发 CMS 规则和限制(rules and restrictions).

67230
您找到你想要的搜索结果了吗?
是的
没有找到

SAP Spartacus CORS 设置

在生产环境中,这应该包含允许与后端 API 交互的不同域。 allowedMethods 允许的标头必须包括所有允许使用的 HTTP 方法。...如果这些标头不允许跨域,Spartacus 将不会收到特定请求的响应。大多数标头是标准标头,但您可能需要一些特定于功能的标头。以下列表提供了可以使用的所有标头的概述。...在 Spartacus 库的 1.x 版中,Spartacus 没有发送 cookie,但从 2.0 版开始,将为每个 OCC 请求发送 cookie。...这也已修补到 Spartacus 库的 1.4 和 1.5 版。 需要发送 cookie 才能获得“会话亲和力”,也称为“粘性会话”。...会话亲和性意味着 API 端点后面的同一服务器用于同一会话的所有后续请求。尽管 Commerce API 是无状态的,但有时多个并行或顺序调用可能会失败。

1.9K30

SAP Spartacus UI 中的 CmsTicketInterceptor

Spartacus UI 发起的 OCC API 请求的 URL 中,您可能会注意到一个名为 cmsTicketId 的字段。...这个字段的含义与用途如下: cmsTicketId 是一个标识符,用于关联 Spartacus UI 与 SAP Commerce Cloud 后端 CMS (Content Management System...当用户在 CMS 中进行更改并预览更改结果时,系统会创建一个 CMS 会话票证(CMS Ticket)。这个票证包含了当前 CMS 会话的所有更改,但尚未发布到生产环境。...Spartacus UI 会将这个票证的 ID 作为 cmsTicketId 参数传递给 OCC API,以便在 API 请求中获取与该票证关联的 CMS 数据。...这样,用户就可以在 Spartacus UI 中实时预览他们在 CMS 中所做的更改。 cmsTicketId 参数只在开发或预览模式下使用,以确保用户能够预览未发布的 CMS 更改

26720

SAP Spartacus 的会话管理 Session Management

官网 从一开始,Spartacus 就包含了客户端身份验证和用户身份验证。 尽管这对于 Web 应用程序来说并不常见,但对于 Spartacus 来说是必须的,因为后者需要使用 OCC API。...例如,如果您想更新您的个人资料,您需要登录。当您登录时,服务器会确认您的凭据 - credentials, 并向应用程序返回访问令牌。...此更改很重要,因为 Spartacus 默认构建为支持 OCC,但 Spartacus 不限于使用 OCC。...但是,对于 OCC,还需要在登录或注销后设置紧密耦合的用户 ID,以及在使用辅助服务模块 (ASM) 时进行用户模拟所需的用户 ID。...Persisting Authentication Data in the Browser Storage 登录后,您的令牌已被存储并用于 API 调用,您刷新页面,突然您不再登录

2.9K30

将您的基于 Accelerator 的 SAP Commerce Cloud Storefront 迁移到 Spartacus Storefront

根据自定义基于加速器的店面的数量和方法,您发现尝试将现有体验迁移到 Spartacus 变得简单或困难。如果您不确定,您可以使用以下步骤进行练习,以确定更改的数量,而不必花时间实施。...要开始使用,您还需要以下内容: 初始设置 查看 Spartacus 的发行说明和路线图,以确保您了解哪些功能具有同等性,哪些可能已更改,哪些可能缺失 升级您现有的店面以至少使用 SAP Commerce...开发人员的核心技能将是: Angular RxJS Spartacus HMTL5 Back-End Team 后端团队将构建前端团队所需的 OCC API。...Spartacus 组件(参见上面的模块和组件)用于在客户端构建页面,它们执行对服务器的 OCC 调用(参见上面的 OCC API)以检索渲染所需的数据。...还需要更改内容目录,Spartacus 文档很好地概述了加速器和 Spartacus 示例数据之间的差异。

76620

Angular HTTPClient API 在 SAP 电商云中的使用

大多数前端应用程序需要通过 HTTP 协议与服务器通信,以下载或上传数据并访问其他后端服务,SAP 电商云 Spartacus UI 也不例外。...请求类型化响应对象(typed response objects)的能力 简化的错误处理 可测试性特征 请求和响应拦截 下图是 Spartacus OCC Adapter 实现中对 HTTPClient...declarations: [ AppComponent, ], bootstrap: [ AppComponent ] }) export class AppModule {} SAP Spartacus...get() 方法有两个参数; 要从中获取的端点 URL,以及用于配置请求的选项对象。 options 的参数定义: options: { headers?...: boolean, } 下图是 Spartacus 通过 HTTPClient 获取 Language 列表的代码: 因为服务方法返回一个配置数据的 Observable,所以组件订阅了该方法的返回值

2.3K20

Spartacus 注册和登录页面的实现细节

先查看登录按钮的实现,选择器为 cx-register user-register.service.ts 里,使用了 command 模式,注意 uid 里的 +,并没有进行任何处理。...command 最终投递到 occ-user-profile.adapter.ts 文件中的 register 方法里,调用 Angular HTTP Library 的 post 方法进行投递。...Spartacus 事件服务提供了一个事件流,开发人员无需紧密集成到特定组件或模块即可使用这些事件流。事件系统在 Spartacus 中用于构建与第三方系统的集成,例如标签管理器和 Web 跟踪器。...下面是一个例子: import { CxEvent } from "@spartacus/core"; export class CartAddEntryEvent extends CxEvent {...下面是一个响应 添加到购物车事件 的示例,然后等待购物车稳定(因为 OCC 购物车需要从后端重新加载),然后将所有购物车数据附加到事件数据: constructor( events: EventService

82020

关于 SAP Spartacus CmsService.getComponentData 可能的优化思路

问题和观察 关于由 Spartacus 驱动的页面或组件请求的一个疑问。...请求负载中的 componentIds 是由 CmsService.getComponentData 调用定义的,堆叠起来,然后通过一些优化立即发送到后端。...如果二次开发人员连续多次调用 CmsService.getComponentData(在同一个 JS 宏任务中),那么 Spartacus 会将这些调用分组,并且仅向 OCC 发出一个带有所有组件 ID...请注意,OCC 对组件的调用是上下文相关的,它在有效负载中传递 productCode. 这是因为对于不同的 PDP,相同的 cms 组件可能会从后端携带不同的有效负载。...如果客户期望更改这种行为情况,客户可以添加自定义项来优化它 - 这样就不会在不同的产品代码中重复调用这些组件 ID.

38010

关于 Spartacus 开源 Storefront 在 PWA 模式下运行时的 index.html hash mismatch 问题

Spartacus 开源项目提供将 Angular 实现的 电商 Storefront 站点作为 PWA 运行的功能。...客户端浏览器根据这个 hash 值来判断文件是否发生了更改。如果发生更改,则浏览器需要重新加载。 每次重新部署(new deployment) 会导致文件的 hash 发生变化。...在构建 Spartacus 并将其部署到 CCV2 Cloud 时,会发生以下步骤: 构建应用程序:为必要的文件(包括 index.html)生成哈希 将 index.html 中的占位符 OCC_BACKEND_BASE_URL_VALUE...代码里:忘记将代码里的 occ baseUrl 的配置注释了: backend: { occ: { baseUrl: 'https://localhost:9002', -...,CCv2 将其替换为客户要部署到的环境的 api,因此,无需在 Spartacus 中设置静态 occ baseUrl - 后者仅仅是在本地开发时才需要设置。

65510
领券