You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SAP Spartacus PDP页面使用自定义新增的ProductWsDTO属性

SAP Spartacus 扩展Product模型获取后端自定义属性方案

你可以通过TypeScript的接口声明合并能力直接扩展Spartacus原生Product类型,完全复用原有底层服务的API请求逻辑,不需要修改任何Spartacus核心服务代码,操作步骤如下:

  • 第一步:扩展Spartacus原生Product接口
    在你的项目自定义类型文件(如src/app/core/models/product.models.ts)中添加如下声明,TypeScript会自动将你新增的字段和Spartacus原生Product接口合并:
import { Product as SpartacusProduct } from '@spartacus/core';

declare module '@spartacus/core' {
  interface Product extends SpartacusProduct {
    // 新增后端返回的自定义字段
    manufacturedYear?: number;
    // 其他自定义字段可直接在此处追加声明
  }
}
  • 第二步:使用扩展后的Product类型
    原有获取产品的代码只需要补全Observable的泛型即可,不需要修改请求逻辑:
// 此处导入的Product为你扩展后的合并类型
import { Product } from '@spartacus/core';
import { Observable } from 'rxjs';

// 组件内代码
product$: Observable<Product> = this.currentProductService.getProduct();

完成上述操作后,你就可以直接调用product.manufacturedYear获取后端返回的自定义属性,不会出现TS类型报错。

注意:如果你在OCC配置中指定了返回字段的白名单(fields参数),需要将manufacturedYear加入到Product对应的fields配置中,否则该字段会被OCC接口过滤不会返回。

内容的提问来源于stack exchange,提问作者Balaji Mohan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:27:02