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

Magento2:添加商品至购物车时获取简单产品SKU的方法咨询

获取可配置产品对应简单SKU的快速方法

嗨,针对你遇到的问题——添加可配置产品到购物车时捕获对应简单产品的SKU,这里有几个快速可行的方案:

方案1:监听购物车更新事件,从Customer Data中提取

Magento的customer-data模块会在购物车更新后自动同步数据,你可以通过监听相关事件来获取最新的购物车项信息:

// 监听购物车数据更新事件
$(document).on('customer-data-reload', function() {
    // 获取购物车数据
    const cartData = customerData.get('cart')();
    // 取最新添加的购物车项(默认是列表最后一项)
    const latestItem = cartData.items[cartData.items.length - 1];
    if (latestItem) {
        const simpleSku = latestItem.product_sku;
        console.log('当前添加的简单产品SKU:', simpleSku);
        // 这里可以插入你需要的后续业务逻辑
    }
});

这个方法属于非侵入式扩展,不需要修改核心文件,适合快速验证需求。

方案2:修改catalog-add-to-cart.js的成功回调

既然你已经定位到catalog-add-to-cart.js,可以直接在添加购物车的成功回调里,主动请求购物车section数据并提取SKU:

找到文件中ajaxSubmit方法的done回调段,新增以下代码(保留原有逻辑):

.done(function (response) {
    // 保留原有成功逻辑
    if (response.backUrl) {
        window.location = response.backUrl;
        return;
    }
    // 新增:请求购物车section数据
    $.ajax({
        url: '/customer/section/load/?sections=cart&update_section_id=true',
        type: 'GET',
        success: function(sectionData) {
            const cartItems = sectionData.cart.items;
            const latestItem = cartItems[cartItems.length - 1];
            if (latestItem) {
                const simpleSku = latestItem.product_sku;
                console.log('简单产品SKU:', simpleSku);
                // 执行你的业务逻辑
            }
        }
    });
    // 保留原有其他逻辑...
})

这种方法直接嵌入添加购物车的流程,时效性更强,适合需要立即使用SKU的场景。如果是Magento 2.4+版本,建议通过自定义模块覆盖原JS文件,而非直接修改核心代码。

小提示

如果你的场景需要更精准的判断(比如区分多次添加的同类型产品),可以结合产品ID或选项信息进一步筛选购物车项,确保拿到的是当前选择尺寸对应的SKU。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:26:28