淺談SAP CRM和Hybris Commerce裡的價格架構折扣
最近Jerry做了一個和價格折扣相關的原型專案,把學到的知識記錄下來,以備將來查閱。
在這個原型專案裡,我們用React-Native開發了一個移動應用,使用者可以在手機上瀏覽SAP Hybris Commerce裡的產品,然後下單。假設Jerry購買成功後,在朋友圈分享一張包含自己個人資訊的二維碼。Jerry的好友掃描二維碼之後,到Hybris Commerce裡下單購買同樣的產品之後,Jerry就會收到一張優惠券。
這個場景其實和瑞幸咖啡的推廣模式類似,我們也希望通過這個原型專案,證明SAP的產品,也能執行這些在國內很熱門的網際網路式的營銷場景。
冷冷的冬夜,一盞孤燈,在女神的陪伴下,程式設計師靜靜地寫著程式碼,這就是程式設計師的平淡生活。
Pricing(定價)在SAP任何產品裡都從來不是一個簡單的話題,無論是客戶在實際業務處理中對定價策略使用場景的變化多端,還是SAP產品裡定價引擎本身實現的複雜程度,都超出了很多從業者的想象。
Jerry認識的一位在SAP德國總部工作的同事,從大學畢業起就在SAP ERP裡做Pricing實現,做了20多年,從ERP Pricing一直做到現在的S/4HANA Pricing,而且將一直做下去,如果不出意外的話,我估計他做Pricing會做到在SAP退休。從這位同事身上,Jerry很容易聯想起“德國製造”,“工匠精神”,“精益求精”這些關鍵詞。
正所謂“沒有對比就沒有傷害”,同這些Pricing專家相比,Jerry對基於ABAP實現的SAP產品內的Pricing的掌握程度,僅僅停留在出了問題後,知道從哪裡設定斷點開始除錯。這次在SAP Hybris Commerce上使用其Pricing功能,過程也是各種磕磕絆絆,還好得到了Kevin,Jonathan和Kate同學的大力幫助,這裡表示感謝。
Pricing到底是什麼?當一個新的業務文件(銷售訂單,服務訂單,報價單)被建立出來時,我們期望系統能夠基於已有的配置,針對某個特定的客戶,自動計算出正確的價格資訊,包括總價(Gross Price),折扣(Discount),額外費用(Surcharge)等等。
以基於ABAP技術棧實現的SAP CRM Pricing為例,“已有的配置”,在CRM裡稱為condition record,實際就是Pricing相關的各種配置表的條目。專案實施的時候,顧問根據某企業實際的計價場景,維護不同的condition record,在執行時,計價引擎會按照不同的優先順序處理這些記錄,有點類似ABAP程式語言裡CASE ... WHEN XXX. WHEN YYY. WHEN OTHERS.這種處理思想。
如上圖所示,SAP CRM裡引入了一個叫做Pricing Procedure的邏輯概念,作為計價引擎的輸入,統一關聯了condition record等計價相關的資訊。
通過銷售組織,分銷渠道,部門,Document Pricing Procedure和Customer Pricing Procedure這五個引數可以唯一確定一個Pricing Procedure:
上面的配置頁面其實就是Pricing Procedure determination這個函式的五個輸入引數,輸出則就是匹配的Pricing procedure:
再來看Hybris Commerce的Pricing設計。在SAP官網上是這樣介紹的:
由此可見,Hybris Commerce的Pricing引擎工作原理和SAP CRM類似,即預先在系統配置好滿足各種條件的PriceRow(即SAP CRM的condition record), 然後在執行時,根據訂單欄位的實際內容,找到匹配的PriceRow.
SAP官網上給出的Pricing引擎工作流程圖:
最後介紹Jerry在這個原型專案中用到的幾種Hybris Commerce裡常見的維護價格折扣的方法。
- 價格折扣組
在我們的原型專案裡,給使用者設計了一系列的任務。當使用者完成了這些任務後,我們的React-Native應用會呼叫Hybris Commerce API,將這個使用者分配到Hybris一個特定的使用者折扣組裡,組內使用者在特定的時間段裡可以享受某種購物優惠。
在BackofficeCustomer Discount Groups裡建立折扣組:
在Discount選單裡維護一條8折的折扣記錄:
新建一條PriceRow,將上述的Customer Discount Group和8折的折扣記錄關聯起來:
最後建立一個user Group,id為ambassador_discount, 這個組裡的所有使用者都能享受20%的折扣。
把之前建立的Customer Discount Group分配給這個User group:
當使用者完成任務時,呼叫下圖這個Commerce API,將其分配到折扣組裡:
原價130.65元的商品,8折就是省26.13元. 下單時,觀察到省掉了26.13元,說明8折優惠生效了。
2. 使用Hybris Commerce的Promotion Rule實現價格折扣
新建一條Promotion Rule(促銷規則):
Promotion的條件,設定成僅當客戶購買Hybris商城裡的數碼相機時,才觸發該促銷規則:
再新增一條觸發規則,這條規則和上面的規則邏輯上是AND的關係,即兩條同時滿足,才能享受折扣。
這條規則的型別是Qualifying coupons,即使用者必須持有id為jerrycoupon的優惠券。
如果這兩條規則都滿足,在Actions區域維護優惠資訊:享受10%的優惠
同樣,當使用者在我們的React-Native應用裡同其好友互動,完成了我們指定的任務後,React-Native應用呼叫Hybris Commerce的Coupon API,將jerrycoupon這個優惠券分配給該使用者。
這樣該使用者能在My Coupons介面看到自己完成任務後贏得的這個優惠券:
最後下單時,購買這個3607元的數碼相機,節省了10%也就是360.7元。
在Hybris Commerce裡要實現價格折扣,方法當然不僅限於本文介紹的這兩種方式。要實現折扣效果,除了Price Row之外,我們還可以利用更加直接的DiscountRow,將產品和Discount記錄關聯起來。
最後同樣能實現折扣效果:
希望這篇文章能幫助大家對SAP產品的Pricing設計和使用場景有個最基礎的認識,感謝閱讀。如果對我們開發的這個SAP Hybris Commerce同微信整合的原型感興趣,可以聯絡Jerry.
更多閱讀
- 從產品展示頁面談談Hybris的特有概念和設計結構
- 從產品展示頁面談談Hybris系列之二: DTO, Converter和Populator
- 從產品展示頁面談談Hybris系列之三:Hybris Service層介紹
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2671135/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SAP CRM WebClient UI和Hybris Commerce的懶載入機制WebclientUI
- SAP Hybris Commerce裡的資料庫表資料庫
- SAP Commerce(原Hybris)的訂單處理框架和SAP CRM One Order框架框架
- SAP Commerce(原Hybris)的一些架構圖,持續更新架構
- Hybris service layer和SAP CRM WebClient UI架構的橫向比較WebclientUI架構
- SAP ABAP和Hybris Commerce的Sample資料
- SAP ABAP Netweaver和Hybris Commerce的部署策略
- SAP Commerce Cloud 裡的 Solr 架構簡介CloudSolr架構
- Hybris產品主資料的價格折扣維護
- SAP Hybris Commerce的JSP tag和SAP BSP tag的比較JS
- SAP Commerce Cloud 架構概述Cloud架構
- SAP Commerce(SAP Hybris)學習資料彙總
- ABAP Netweaver, Hybris Commerce和SAP 雲平臺的登入認證
- SAP Netweaver和Hybris Commerce啟動後執行的預設操作
- SAP Hybris Commerce啟用customer coupon的前提條件
- SAP Hybris Commerce product讀取的除錯截圖除錯
- SAP UI5應用和Hybris Commerce的國際化(internationalization)支援UI
- SAP CRM WebClient UI和Hybris的controller是如何被呼叫的WebclientUIController
- 關於 Hybris (SAP Commerce Cloud)產品的客戶群Cloud
- SAP MM 採購價格裡的階梯價格
- SAP CRM WebClient UI和Hybris backoffice UI開發的相同點WebclientUI
- SAP Hybris和ABAP Netweaver裡的DAO(Data access object)Object
- InnoDB架構淺談架構
- 如何在Hybris commerce裡建立一個media物件物件
- SAP Commerce Cloud 裡的 jsapps 和 jsapps-ssr 容器CloudJSAPP
- SAP Commerce Cloud 裡的 User 模型和 Restriction 的關係Cloud模型REST
- SAP ABAP, Fiori, Android和Hybris裡的非同步操作Android非同步
- CRM, C4C和SAP Hybris的資料庫層設計資料庫
- 淺談伺服器價格不同的原因伺服器
- ABAP的OPEN SQL和Hybris Commerce的Flexible Search簡介SQLFlex
- SAP Commerce Cloud 裡的 Media 概念簡述Cloud
- CRM和C4C裡的組織架構 - Organizational Structure架構Struct
- 【淺談架構14/100】架構的緣起與目標架構
- SAP Commerce Cloud B2C Accelerator 架構設計概述Cloud架構
- 使用程式碼獲得Hybris Commerce裡顯示的產品圖片
- 容器、微服務和網際網路架構淺談微服務架構
- 淺談CRM系統的選型和實施
- SAP CRM WebUI, CRM Fiori和C4C裡的Direct NavigationWebUINavigation