使用 multiCartService.createCart 后如何设置活动购物车

How to set active cart after using multiCartService.createCart

如何使用 multiCartService.createCart 服务将新创建的购物车设置为活动购物车?

我有这个快速订购场景,当点击添加到购物车按钮时,它会将我的快速订购表中的商品添加到当前购物车中。但是,由于某种原因,当它是新登录的用户时,在加载快速订购页面期间未定义活动购物车,因此我使用了 multiCartService 中的“createCart”方法来创建一个新购物车,这样当我从它将添加到新购物车中的快速订购单。

示例:

this.multiCartService
            .createCart({ userId: this.userCurrent })
            .pipe(take(1))
            .subscribe(
              (success) => {
                
              },
              (error) => {}
            );

但是,在创建购物车并添加商品后,它将转到购物车页面以显示添加的商品,但在 OOTB ActiveCartService.getActive() 上它导致未定义,这意味着没有活动的购物车然后购物车页面是空的。但是,如果您通过浏览器刷新购物车页面,项目将会出现。

我还在使用 Spartacus 1.5 版

请指教。谢谢

您是否尝试调度 SetActiveCartId 事件?哦,这在 1.5 中还不存在。

您需要升级!

我们能够找出缺失的内容。我们只需要使用 extraData 将新创建的购物车设置为 active 为 true。

将此添加到创建购物车

extraData: {active: true}

示例:

this.multiCartService
            .createCart({ userId: this.userCurrent,  extraData: {
              active: true,
            }, })