SAP Spartacus注入自定义的CurrentProductService-阿里云开发者社区

开发者社区> jerrywangsap> 正文

SAP Spartacus注入自定义的CurrentProductService

简介: SAP Spartacus注入自定义的CurrentProductService
+关注继续查看

新建一个MyCurrentProductService,返回一个硬编码的产品主数据:

image.png


完整源代码如下:

import { Product, ProductScope } from '@spartacus/core';
import { Observable, of } from 'rxjs';

const PRODUCT: Product = {
    code: '300938',
    name: 'Jerry hard code value',
    summary: 'Jerry hard code value.',
    price: {
        formattedValue: '$10000',
        currencyIso: 'USD',
        // "priceType": "BUY",
        value: 10000
    },
    images: {
        PRIMARY: {
            zoom: {
                altText: 'Photosmart E317 Digital Camera',
                format: 'zoom',
                // : "PRIMARY",
                url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wxMzkzNnxpbWFnZS9qcGVnfGltYWdlcy9oMjYvaDdhLzg3OTcyNTE0NjkzNDIuanBnfGU3N2FlYWQ1YmQ1ODhjZjZiNTFjNDg3NDdjNGRkNjM5NGQzMjZmZWVmNjc3ZWQwMjgzY2MyNDJlNzYyNTczM2Q'
            },
            product: {
                altText: 'Photosmart E317 Digital Camera',
                format: 'product',
                // "imageType": "PRIMARY",
                url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3w3MDg1fGltYWdlL2pwZWd8aW1hZ2VzL2g2Ni9oOWQvODc5NzI3Nzc0OTI3OC5qcGd8NzdjOTNiMThkODQ4NTM4NmQ2NjMxMGMwYmMyOTIwODIwMzI4NTgyMGUxNDc4Y2I0OTRkOGViODNlNDZiYTJhNw'
            },
            thumbnail: {
                altText: 'Photosmart E317 Digital Camera',
                format: 'thumbnail',
                // "imageType": "PRIMARY",
                url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wyMDYxfGltYWdlL2pwZWd8aW1hZ2VzL2g3ZS9oZmEvODc5NzMwNDA5NDc1MC5qcGd8OGZjMTNjM2JmMGY0MmYyMWY3OGM5YjQ4YjAyNzM4NjkxYjUyMmQzMDBhMmMzMjMwZThmMjI4OWMwZjg1NmYzMw'
            },
            cartIcon: {
                altText: 'Photosmart E317 Digital Camera',
                format: 'cartIcon',
                // "imageType": "PRIMARY",
                url: 'https://spartacus-dev0.eastus.cloudapp.azure.com:9002/medias/?context=bWFzdGVyfGltYWdlc3wxNDQwfGltYWdlL2pwZWd8aW1hZ2VzL2gxNS9oZmYvODc5NzMzMDQ0MDIyMi5qcGd8ODU0ZWQwMjY5OWE5OTBlZjc0ZGFhZTU4ZWYwNDk4ODFmZmM1ZTg2ZjIxOWFiZTBkZmU0NDBmMDBiNTYyMzdlYg'
            }
        },
        GALLERY: []
    },
    nameHtml: 'Photosmart E317 Digital Camera',
    //nameForUrl: 'photosmart-e317-digital-camera',
    baseOptions: [],
    purchasable: true,
    averageRating: 4.5,
    stock: {
        /*
        'isValueRounded': false,
        'stockLevel': 314,
        'stockLevelStatus': 'inStock'*/
    },
    description: 'Get point and shoot simplicity plus crisp, true-to-life photos with this stylish and easy-to-use camera.<br/><br/>Get close in with 4x digital zoom, review via the clear 3.8 cm LCD then print great 10 × 15 cm photos and enlargements up to poster size.',
    availableForPickup: true,
    url: '/electronics-spa/products/300938',
    numberOfReviews: 22,
    manufacturer: 'HP',
    categories: [
        {
            code: '576',
            name: 'Digital Compacts',
            url: '/Open-Catalogue/Cameras/Digital-Cameras/Digital-Compacts/c/576'
        },
        {
            code: 'brand_1',
            name: 'HP',
            url: '/Brands/HP/c/brand_1'
        }
    ],
    priceRange: {}//,
    //configurable: false
};

export class MyCurrentProductService {
    getProduct(scopes?: (ProductScope | string)[] | ProductScope | string): Observable<Product> {
        console.log('My product service is called!');
        return of(PRODUCT);
    }
}

在app module里,用MyCurrentProductService覆盖掉SAP Spartacus标准的CurrentProductService:


image.png


运行时测试,我任意点开一个产品主数据的明细页面,都会调用我自己的CurrentProductService,显示硬编码的数据:

image.pngimage.png



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8494 0
SAP Spartacus注入自定义的CurrentProductService
SAP Spartacus注入自定义的CurrentProductService
7 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10316 0
如何自定义SAP Spartacus 产品明细的url pattern
如何自定义SAP Spartacus 产品明细的url pattern
8 0
SharePoint 部件通过EditorPart自定义属性面板
需求:编写一个新闻展示的WebPart,要求可以分类,类别是从WebService中获取的字符串,要求可以在属性中勾选分类,显示该分类的信息,分类可能会增加。我要做的就是动态生成属性中的新闻类别,至于新闻展示就很简单了。
682 0
为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI 为什么打开一个 product 明细页面,也调用了 12 次?
12 0
Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理)
Maven自定义上传第三方包到3rd party(第三方无依赖jar和本地扩展类加入maven统一管理) 注:如果图片太小,则可以下载查看,CSDN,不提供点击放大! 1:用浏览器登陆nexus服务器(此处为本地): http://localhost:8081/nexus/ admin admin123 2:第三方依赖加入: Log in到nexus中,如下图: 3:手动设
4321 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6565 0
+关注
2628
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载