首页 > TAG信息列表 > hybris
hybris搭建B2C站点
1.解压hybris安装包,命令行切换到platform目录,依次运行如下命令: setantenv.bat (linux: . ./setantenv.sh) ant build 在运行ant build 过程中会选择开发模式还是生产模式,默认是开发模式,回车即可。 ant build命令运行完成后,会在bin同级目录下创建5如何在 SAP Hybris WCMS cockpit 里创建新的 website
首先使用如下 url,登录 SAP Hybris CMS cockpit: https://localhost:9002/cmscockpit/login.zul 看到系统已有的 WebSite 列表: 点击 + 按钮,创建一个新的 website: 从新建 site 向导里,选择一个 site 模板: 维护基本的 site 属性: 给这个 website 分配 base store: 选择 store 后,该SAP Commerce开发之如何找到某个页面对应的JSP实现页面
For example here below is the product detail page of Hybris Storefront. The requirement is to figure out which JSP page has implemented this UI. In some other SAP product it is quite straightforward to achieve. For example in CRM WebClient UI, simply pre如何查看CRM WebUI,C4C和Hybris里的页面技术信息
CRM 在WebClient UI页面上按F2,就能看到页面的技术信息, 可以找到当前页面是哪一个BSP component实现的: C4C 在浏览器url里添加debugMode=true,然后按住Ctrl加上鼠标右键,即可弹出同上图CRM WebClient UI作用类似的技术明细页面: Hybris 同样的需求,比如下图这个产品明细界面,我想知BSP和JSP里的UI元素ID生成逻辑
CRM WebClient UI WebClient UI渲染出来的DOM元素的这些C#_W#格式的id是在哪行ABAP代码被生成出来的? 参考我的博客WebClient UI element ID generation logic Hybris 既然是JSP,和同样基于服务器端渲染的BSP的套路一样。Hybris的应用开发人员不用重复造轮子,直接在JSP页面里使用ycCRM WebUI and Hybris的Product页面标题实现
CRM Controller只需实现IF_BSP_WD_HISTORY_STATE_DESCR~GET_STATE_DESCRIPTION方法: 上图在ABAP调试器里观察到的这个字符即出现在最终页面上。 Hybris Product明细页面的pageTitle字段绑定到Model的{pageTitle}字段上: 调试器里观察到的pageTitle的值: 最后的效果:Hybris ECP里Customer对应的数据库表
SAP CRM里Account明细页面: SAP C4C里Account明细页面: 在Hybris storefront注册一个帐号: 注册成功之后能在backoffice里看到成功生成的customer,里面的Customer ID是自动生成的,类似ABAP里的uuid. 在Hybris Administration console里使用flexible search试图去查询该customer: 查UI Component in CRM WebUI and Hybris
Hybris A component is an element in a content slot that is used to present content to customers. Components can be navigation bars, banners, site logos, search boxes, mini carts, and so on. CRM WebClient UI 以Hybris UI为例,这是end user看到的product search和seSAP CRM呼叫中心polling and C4C notification polling
CRM CRM interaction center call poll and Hybris backend office pool CRM Interaction center poll design and Hybris backoffice C4C 打开C4C,即使什么都不干,也能观察到Chrome network里这些http请求: 注意请求发起者是NotifierHelper。这些请求用来干什么的?就是定时把C4C后SAP Hybris platform和Netweaver的缓存(Cache)设计机制
Hybris Cache (1 )The Hybris Cache is a part of the Hybris persistence layer. (2) It improves the performance of a single server node by reducing the amount of database queries. (3) It transparently stores search results, item attributes, and item instanceHybris里类似ABAP Netweaver的DDIC - 如何做data type的extension
ABAP里客户做二次开发时,当其business requirement需要新的字段添加到已有数据类型上时,一般采用append structure的方式增强SAP标准的数据类型。 之前说到每个extension都有其local的object, 比如extension specific的data type在resources folder下面的这个XML里定义. XML的naminSAP ABAP, Fiori, Android和Hybris里的异步操作
ABAP 其实ABAP的编程范式相对其他语言比较简单,没有太多异步操作。除了STARTING NEW TASK可以实现异步调用。 Use ABAP Multi-Thread programming to deal with a real performance issue: https://blogs.sap.com/2017/02/10/use-abap-multi-thread-programming-to-deal-with-a-realSAP Hybris platform和Netweaver的缓存(Cache)设计机制
Hybris Cache (1 )The Hybris Cache is a part of the Hybris persistence layer. (2) It improves the performance of a single server node by reducing the amount of database queries. (3) It transparently stores search results, item attributes, and item instanFiori extension hook和Hybris的template
Fiori extension hook 类似ABAP里的BAdI definition,即SAP预留了一些增强的hook,application或者partner/customer可以实现自己的增强逻辑。 See my blog An example of End to End extension on CRM Fiori application – part3 https://blogs.sap.com/2015/06/20/an-exampleSAP Hybris Commerce,CRM和C4C的登录语言选择
三个产品都有登录语言的选择:CRM C4C: Hybris: 看到tomcat log里加载的是zk-label_en.propeties: 以前做Fiori的时候,我们知道UI5是从浏览器的语言设置里determine语言的: navigator.languages 里存储的是我在Chrome 语言设置里配的4个language+region组合,ui5会取第一个作为locSAP Hybris Commerce的页面路由实现
登录Hybris前台,在product catalog里选择Digital camera: 点击某个product进入detail页面: 注意detail page这个url: 这个detail page的route和我们做Fiori时的思路很像: 这个detail url https://localhost:9002/yacceleratorstorefront/electronics/en/Open-Catalogue/CamerasSAP Hybris和Netweaver的集群模式以及集群模式下工作需要解决的问题
Hybris支持cluster mode的部署,不同节点间通过局域网使用UDP进行通信。 而SAP Netweaver经典的3层layer里就提到Application layer也支持multiple node: 比如在AG3用tcode SM53查看,发现其是由3个node组成: Cache invalidation 无论Hybris,还是Netweaver,都面临一个需要解决SAP Hybris Commerce里的数据库表
在Hybris storefront注册一个帐号: 成功之后能在backoffice里看到成功生成的customer,里面的Customer ID是自动生成的,类似ABAP里的uuid. 在console里使用flexible query试图去查询该customer: 查询到一条记录: 该记录的uuid和backoffice里看到的一致: 查看flexible query对应的SQLSAP UI5应用和Hybris Commerce的国际化(internationalization)支持
WebUI,UI5和Hybris的i18n support都是一个套路,developer在代码里不应hard code基于某一种特定language的text,而是用place holder代替。 CRM的tcode SOTR_EDIT UI5则是i18n properties文件 Hybris和UI5一样: Server log里能观察到是哪一个properties文件被加载: 要获取更多JerryHybris Administration console功能一览
Platform的tenant视图,点击View按钮查看tenant明细: 比如数据库DB url,以及该tenant上有哪些extension处于enabled状态: 配置页面:所有在此处修改的配置都仅仅在memory里生效,重启之后会丢失。因此需要持久化的属性修改,需要在local.properties或者project.properties里完成。 系统变服务人员在Hybris ASM手动分配coupon给某个客户
用户Jerry登录storefront,在My Coupon里没有发现任何可用的coupon: 在登录Storefront的url最后加上&asm=true,进入ASM界面-Assisted Service Mode: 输入agent的用户名和密码登录: 成功登录后,点击Customer View按钮: 点击promotion按钮: 在Customer Coupon区域发现很多可以分配的Coujava-静态方法中的Spring context null
我正在尝试在Spring MVC-Hybris Application中使用spring应用程序上下文,但是它始终为null. public class FlexSelector{ protected static final ApplicationContext ctx = Registry.getApplicationContext(); protected static final PropertiesReader getPropertiesReader(){CRM, C4C和SAP Hybris的数据库层设计
SAP的product都是DB provider无关的。 CRM大家都很熟悉了,application developer最多用Open SQL直接操作表。 Netweaver里支持的DB provider在这张表的DBMS里能看到: C4C的application developer 在ABAP后台的workbench里指定BO node的persistence table。 Hybris Hybris里也有和CR如何在Hybris commerce里创建一个media对象
进入backoffice的Media中心, 首先新建一个文件夹,用于存放即将创建的media对象: 取名为jerryimage: 然后创建一个新的media对象,取名jerryproductimage: 上传图片: 选择这个media对象存放的文件夹: 从staged catalog同步到online catalog: 同步成功: 要获取更多Jerry的原创文章,请java-从hybris hMC Action中以编程方式检索Spring bean
我已经为我的hMC编写了自定义的SaveAction,我想在此操作中使用一些服务,例如modelService. 我想以编程方式进行此操作,而不是通过在我的spring xml文件中声明它,因为我的自定义SaveAction本身不是spring bean. 这是我想要的示例: public class MySaveAction extends GenericItemSav