登录Hybris前台,在product catalog里选择Digital camera:
![](https://img.haomeiwen.com/i2085791/46fb35442b38eed4.png)
点击某个product进入detail页面:
![](https://img.haomeiwen.com/i2085791/138d3760f1c75635.png)
注意观察PDP(product detail page)这个url:
![](https://img.haomeiwen.com/i2085791/ca73b1a26148a895.png)
这个detail page的route和我们做Fiori时的思路很像:
![](https://img.haomeiwen.com/i2085791/d3ec9bb1bc3a551e.png)
![](https://img.haomeiwen.com/i2085791/43ad3139d9bd08bc.png)
这个detail url https://localhost:9002/yacceleratorstorefront/electronics/en/Open-Catalogue/Cameras/Digital-Cameras/Digital-Compacts/DSC-H20/p/1978440_blue的响应请求是在这个folder的这个controller下面处理的:
web/src/controllers/pages/ProductPageController.java
![](https://img.haomeiwen.com/i2085791/7b1b2a54e0a6987f.png)
根据SpringMVC提供的注解@RequestMapping, 在runtime时当前产品的编号会被自动赋值给变量productCode, 然后通过类似CRM WebUI BOL layer->Genil layer->DB layer的方式把对应product的数据取出来,最后填充给model变量。这个model变量最后用于在JSP UI上显示数据。
![](https://img.haomeiwen.com/i2085791/863734dd4a120199.png)
以这张图为例:
![](https://img.haomeiwen.com/i2085791/bd0e85e62686cc9e.png)
最后变量productCode注入的值是1978440_blue, 对不?
在backoffice的products 下搜索 “1978440_green”,可以看到搜索结果中“1978440_green”就是productCode(Article Number)
![](https://img.haomeiwen.com/i2085791/e1433a0440fdaac0.png)
这个product是个特殊的product,如果搜索结果中点"1978440",然后跳到“Variants” tab,会看到其他几个颜色的product都是“Product Variants”。这种product叫VariantProduct,它的base product即"1978440"虽然有productcode但是不会出现在前端,只有它的color variant product才能被展示和购买:
![](https://img.haomeiwen.com/i2085791/c664b93ea0437737.png)
原来Hybris的product也有variant的概念。和CRM和ERP里的Product Model一样:
一个例子就是咖啡机,有不同颜色,商用型,家用型,可选择带1个附件还是2个。
更多Jerry的原创文章,尽在:"汪子熙":
![](https://img.haomeiwen.com/i2085791/7cc33388ba14e967.png)
网友评论