SAP Spartacus 基于行项目的订单取消功能(order cancel)实现
進(jìn)入Order History頁(yè)面:
http://localhost:4200/electronics-spa/en/USD/my-account/order/00001075
點(diǎn)擊 Cancel Items:
這個(gè)按鈕會(huì)路由到一個(gè) cancel 頁(yè)面去:
選擇要cancel的行項(xiàng)目:
selector:cx-cancel-order
點(diǎn)擊Continue按鈕后的處理函數(shù):continue($event)
continue函數(shù)里,進(jìn)行另一個(gè)路由跳轉(zhuǎn):
這說(shuō)明Commerce Cloud 訂單取消是基于行項(xiàng)目的:
form 的提交請(qǐng)求按鈕,沒(méi)有具體實(shí)現(xiàn),類(lèi)型為submit,因此需要去最上層,找到form的實(shí)現(xiàn):
cx-cancel-order-confirmation節(jié)點(diǎn)下面,有form節(jié)點(diǎn):
cx-cancel-order-confirmation
下圖第26行的submit函數(shù),即submit按鈕點(diǎn)擊后的處理函數(shù)。
cancer-order-confirmation.component.ts
this.userOrderService.cancelOrder
CancelOrderConfirmationComponent里的實(shí)現(xiàn)代碼:
save() {const orderCode = this.form.value.orderCode;const entries = this.form.value.entries;const inputs = Object.keys(entries).filter((entryNumber) => entries[entryNumber] > 0).map((entryNumber) => ({orderEntryNumber: Number(entryNumber),quantity: entries[entryNumber],}));this.form.reset();this.userOrderService.cancelOrder(orderCode, {cancellationRequestEntryInputs: inputs,});this.userOrderService.getCancelOrderSuccess().pipe(first(Boolean)).subscribe(() => this.afterSave(orderCode));}訂單取消成功后,狀態(tài)變?yōu)镃ancelled:
An invoice has been sent by email.
cancellationAndReturn
更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的SAP Spartacus 基于行项目的订单取消功能(order cancel)实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 福彩3d计算公式特准 3d直选100%中
- 下一篇: 关于 SAP Spartacus OAu