首页 > 解决方案 > 使用附加数据扩展 Spartacus NGRX 存储

问题描述

对于我们的 Spartacus 项目,我们需要在结帐时引入额外的数据属性:我们有这样的案例,用户需要为每个产品选择一种交付模式。

在理想的世界中,选择后,选定的交付模式将保存在 NGRX 商店和后端中,以保持此处定义的数据绑定原则:https ://sap.github.io/spartacus-docs/连接到其他系统/#component-data-binding

预期数据/用户流:

  1. 用户转到结帐和交付模式步骤
  2. 进行自定义 OCC 调用以加载每种产品支持的交付模式(取决于产品类型和进一步的客户特定逻辑)
  3. 显示购物车项目,并通过包含可用交付模式的下拉菜单进行增强
  4. 用户选择一种交付方式
  5. 选择的交付模式存储在 NGRX 商店的购物车条目中并保存在后端
  6. 新的购物车总数是根据所选交付模式的成本计算的
  7. 新的购物车总数存储在 NGRX 商店的购物车中并保存在后端
  8. 用户点击 continue 进入 Review Order Step
  9. 购物车项目与先前选择的交付模式一起列出

经过对现有代码的一些分析,我们deliveryModeorderEntry. 这似乎在 spartacus 中的任何地方都没有使用,但可以通过遵循这个stackoverflow 答案这个来使步骤 9 工作。

关于此流程的问题:

Slack 频道中似乎有几个答案,但关于扩展 ngrx 商店的可用答案很少,即使对我们来说,这似乎是一项非常正常的任务.. :-/

任何想法、意见或支持将不胜感激。:-)

标签: spartacus-storefront

解决方案


这似乎是一件很难完成的事情,因为在 spartacus 中不支持每种产品的交付模式。但是一些想法:

  • 您可以扩展核心 CartEntry 类(适配器、连接器、外观等)以包括添加到购物车的条目的交付模式。您可能需要全部更改以包括交付模式设置。所有这些都是公开的,因此您可以根据需要修改它们,包括商店。

  • 利用多个购物车为每个购物车提供一个产品并以这种方式设置交付模式。但这在我看来会很麻烦。

就价格计算而言,我假设 OCC 调用返回总价格。对购物车条目的调用是否包括每个条目的交付模式成本?


推荐阅读