最终付款金额由商品价、数量、运费、优惠券、税费、平台服务费六部分实时叠加生成;其中运费和税费需手动配置或调用接口补全,price字段必须设为“动态获取”以确保规格变更时价格同步更新。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认下单前的金额构成
用Zion做多商品下单时,最终付款金额不是简单把购物车里所有商品单价相加,而是由商品价、数量、运费、优惠券、税费、平台服务费六部分实时叠加生成。其中运费和税费在Zion中不自动计算,必须手动配置规则或调用外部接口补全。
设置购物车数据模型
进入「数据模型」→「新建表」→ 表名填 cart,字段至少包含:account_账户(关联用户ID)、product_product(关联商品ID)、amount(整数,默认1)、price(小数,取自商品表实时价格)、status(布尔值,是否勾选结算)。
【price字段必须设为“动态获取”,不能填固定值】否则用户修改商品规格(如尺码/颜色)后,price不会同步更新,导致金额算错。
构建下单金额计算逻辑
在「流程编排」中新建一个「计算订单总额」动作,按顺序执行以下三步:
① 调用远程数据:查询当前用户购物车中 status = true 的全部记录;
② 添加「循环处理」节点:对每条记录执行 price × amount,结果存入临时变量 item_total;
③ 添加「聚合求和」节点:将所有 item_total 相加,输出为 order_subtotal。
这一步做完后,order_subtotal 就是不含运费和优惠的纯商品金额。它会随购物车勾选项实时刷新,不需要手动触发重算。
运费与优惠叠加处理
方法一:静态运费——在「流程编排」中直接写死一个数字(如 35),与 order_subtotal 相加得 final_amount;
方法二:条件运费——添加判断:若 order_subtotal ≥ 999,则运费 = 0;否则运费 = 48;
方法三:API对接——调用你自己的运费计算服务,传入收货地编码+商品总重+体积,返回 real_freight,再与 order_subtotal 相加。
优惠券逻辑必须放在运费之后计算,否则满减门槛可能因运费未计入而误判。例如满300减50,要基于 order_subtotal + freight 才能正确触发。
显示与提交订单
在下单页组件中,绑定「文本」组件的数据源为 final_amount,格式设为「¥#.00」;
点击「提交订单」按钮时,行为设为:创建新 order 表记录 → 字段填入 account_账户、order_subtotal、freight、coupon_discount、final_amount、status=unpaid;
提交成功后,立即调用「清空购物车」动作,删除所有 status = true 的 cart 记录。











