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

完整源代码如下:
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:

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


网友评论