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

WP All Import 多仓库库存求和更新WooCommerce商品库存问题求助

问题根因
  • 原有代码逻辑不符合需求:当前代码是将商品原有库存与_custom_stock_placeholder字段值相加,没有读取两个仓库对应的wh1stock、wh2stock字段值,无法实现双仓库库存求和。
  • 字段映射逻辑错误:未在WP All Import中正确将XML的两个仓库库存字段导入到商品自定义字段中,代码无法读取到对应仓库的库存数值。
  • 缺少库存状态同步:仅更新_stock字段不同步_stock_status字段,会导致WooCommerce前端库存状态显示异常。
解决方案

1. 替换主题functions.php中的原有代码

使用以下代码替换你之前添加的库存计算代码:

add_action('pmxi_saved_post', 'calculate_total_warehouse_stock', 20, 1);
// 优先级设置为20,确保WP All Import完成所有字段导入后再执行库存计算
function calculate_total_warehouse_stock($product_id) {
    // 读取两个仓库的库存值,强制转换为整数避免字符串拼接错误
    $wh1_stock = (int) get_post_meta($product_id, 'wh1stock', true);
    $wh2_stock = (int) get_post_meta($product_id, 'wh2stock', true);
    
    // 计算总库存
    $total_stock = $wh1_stock + $wh2_stock;
    
    // 更新WooCommerce官方库存字段
    update_post_meta($product_id, '_stock', $total_stock);
    // 同步更新库存状态
    $stock_status = $total_stock > 0 ? 'instock' : 'outofstock';
    update_post_meta($product_id, '_stock_status', wc_clean($stock_status));
    
    // 若不需要保留两个仓库的单独库存数据,可取消注释以下两行删除冗余字段
    // delete_post_meta($product_id, 'wh1stock');
    // delete_post_meta($product_id, 'wh2stock');
}

2. 调整WP All Import导入配置

在导入任务的「自定义字段」设置环节,添加两组字段映射:

  • 第一组:自定义字段名称填wh1stock,值选择XML数据源中对应的wh1stock字段
  • 第二组:自定义字段名称填wh2stock,值选择XML数据源中对应的wh2stock字段

注意:不要在导入配置中直接给_stock(WooCommerce默认库存字段)赋值,避免导入值覆盖计算后的总库存。

3. 确认WooCommerce配置

  • 检查WooCommerce后台「设置-产品-库存」中「启用库存管理」选项已开启
  • 商品级别也需要开启库存管理功能
验证方法

选择单个测试商品,在XML中设置两个仓库的库存为非零数值,执行单次导入测试,导入后查看商品编辑页的库存数值,确认等于两个仓库库存之和即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:00