SAP Spartacus 基于行项目的订单取消功能(order cancel)实现

进入Order History页面:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


http://localhost:4200/electronics-spa/en/USD/my-account/order/00001075


点击 Cancel Items:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


这个按钮会路由到一个 cancel 页面去:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


选择要cancel的行项目:

SAP Spartacus 基于行项目的订单取消功能(order cancel)实现

SAP Spartacus 基于行项目的订单取消功能(order cancel)实现

selector:cx-cancel-order


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


点击Continue按钮后的处理函数:continue($event)


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


continue函数里,进行另一个路由跳转:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


这说明Commerce Cloud 订单取消是基于行项目的:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现



form 的提交请求按钮,没有具体实现,类型为submit,因此需要去最上层,找到form的实现:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


cx-cancel-order-confirmation节点下面,有form节点:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


cx-cancel-order-confirmation


下图第26行的submit函数,即submit按钮点击后的处理函数。


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


cancer-order-confirmation.component.ts


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


this.userOrderService.cancelOrder


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


CancelOrderConfirmationComponent里的实现代码:

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));
    }

SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


订单取消成功后,状态变为Cancelled:


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


An invoice has been sent by email.


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现

SAP Spartacus 基于行项目的订单取消功能(order cancel)实现



SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


cancellationAndReturn

SAP Spartacus 基于行项目的订单取消功能(order cancel)实现


SAP Spartacus 基于行项目的订单取消功能(order cancel)实现

上一篇:使用了SAP Spartacus的一个在线网站:乐高Storefront


下一篇:钉钉宜搭培训进企业,国潮品牌掀起低代码学习热潮