You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在X-Cart 5.5中获取客户结账时使用的优惠券信息

获取X-Cart 5.5结账流程中客户使用的优惠券信息

1. 从已生成的订单对象提取

客户完成结账后,订单实例会关联已应用的优惠券数据,直接调用对应方法即可获取:

  • 优惠券代码:
$couponCode = $order->getCouponCode();
  • 优惠券类型、折扣值及实际抵扣金额:
$coupon = $order->getCoupon();
if ($coupon) {
    // 类型:固定金额(C)/百分比(P)
    $couponType = $coupon->getType();
    // 折扣数值:固定金额为具体金额,百分比为0-100的数值
    $discountValue = $coupon->getValue();
    // 订单实际享受的折扣金额
    $appliedDiscount = $order->getDiscount();
}

2. 结账过程中通过钩子实时捕获

如果需要在客户输入并验证优惠券后立即获取信息,利用X-Cart的钩子机制:

  • 注册钩子(自定义模块的main.php中):
public static function init()
{
    static::listenEvent('coupon.add', static::class . '::handleCouponAdd');
}

public static function handleCouponAdd(\XLite\Core\Event $event)
{
    $coupon = $event->getArgument('coupon');
    if ($coupon) {
        $code = $coupon->getCode();
        $type = $coupon->getType();
        $value = $coupon->getValue();
        // 此处可添加自定义逻辑,比如记录日志、同步数据等
    }
}
  • 常用钩子:coupon.add(优惠券添加成功触发)、checkout.review.before(结账审核页加载前触发,优惠券已生效)

3. 直接查询数据库

针对批量或历史数据,可直接查询X-Cart的数据库表:

  • 核心表说明:
    • xc_coupons:存储优惠券基础信息,包含code(优惠券码)、type(类型)、value(折扣值)等字段
    • xc_order_coupons:关联订单与优惠券,通过order_id可找到对应优惠券ID
  • 示例SQL(查询指定订单的优惠券信息):
SELECT c.code, c.type, c.value, o.discount
FROM xc_order_coupons oc
JOIN xc_coupons c ON oc.coupon_id = c.coupon_id
JOIN xc_orders o ON oc.order_id = o.order_id
WHERE o.order_id = 123; -- 替换为目标订单ID

内容的提问来源于stack exchange,提问作者Gary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 02:23:26