Magento2 访客添加商品到购物车到添加地址 到支付下单,整个是数据库表执行流程,画出流程图表

以下是 Magento 2 访客下单全流程的数据库表执行流程图,展示了从添加商品到购物车到支付完成的完整过程:

详细流程说明:

  1. 添加商品到购物车
    • quote 表:创建购物车主记录(is_active=1customer_id=NULL
    • quote_item 表:添加购物车商品项(qtyprice 等)
    • quote_id_mask 表:生成访客购物车唯一标识(用于前后端关联)
  2. 添加地址
    • quote_address 表:写入配送地址(address_type=shipping)和账单地址(address_type=billing
    • 触发税费计算更新 tax_order_aggregated_created 等税务相关表
  3. 选择配送方式
    • quote_shipping_rate 表:存储可选的配送方式及费用
    • 更新 quote_address 中的运费金额(shipping_amount
  4. 选择支付方式
    • quote_payment 表:存储支付方法(如 checkmo)和支付详情
    • 更新 quote 表中的支付状态(payment 字段)
  5. 下单支付
    • sales_order 表:创建订单主记录(increment_id 生成订单号)
    • sales_order_address 表:从 quote_address 复制地址数据
    • sales_order_item 表:从 quote_item 复制商品数据
    • sales_order_payment 表:从 quote_payment 复制支付数据
  6. 库存更新
    • cataloginventory_stock_item 表:扣减库存数量(qty 字段)
    • cataloginventory_stock_status 表:更新库存状态
  7. 订单后处理
    • sales_invoice 表:生成发票记录(如配置自动开票)
    • sales_order_status_history 表:记录订单状态变更
    • email 相关表:发送订单确认邮件

关键转换点:

重要字段说明:

  1. quote 表
    • is_active=1:购物车有效状态
    • converted_at:订单生成时间(下单后更新)
    • reserved_order_id:预占订单号
  2. sales_order 表
    • status:订单状态(pending/processing 等)
    • state:订单工作流状态
    • customer_id:NULL(访客订单)
  3. 状态生命周期

访客订单特殊处理:

  1. 无用户关联
    • customer_id 在 quote/sales_order 中均为 NULL
    • 使用 customer_email 字段存储邮箱地址
  2. 购物车保留
    • 下单后 quote.is_active 设为 0(非删除)
    • 系统 cron 定期清理过期购物车
  3. 订单查看
    • 通过订单号和账单邮箱验证身份
    • 数据存储在 sales_order 而非客户订单历史

发表评论