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

Roll Up Product SKUs:如何保留唯一基础SKU并合并全部变体SKU

SKU重复合并落地方案

核心逻辑

利用基础SKU的命名规则完成自动分组,将同组重复基础SKU下的变体统一迁移到留存主SKU后,删除冗余基础SKU即可。

执行步骤

  • 分组规则匹配:用正则提取所有基础SKU中id.后固定的5位数字作为唯一分组标识,所有带有相同5位数字的基础SKU归为同一待合并组。
  • 留存主SKU定位:每组内默认选取id.后5位数字无额外字母后缀的原始SKU作为留存主SKU;若不存在则取组内创建时间最早的SKU作为主SKU。
  • 变体批量迁移:将组内其他所有重复基础SKU挂载的全部变体SKU,父关联字段统一修改为留存主SKU的ID。
  • 冗余数据删除:全量校验变体关联关系无遗漏、无错误后,批量删除同组内除主SKU外的所有重复基础SKU。

注意事项

  • 操作前必须完成全量SKU数据备份,避免误操作导致数据丢失。
  • 可先抽取10~20组不同规模的SKU组做小范围测试,验证逻辑正确后再执行全量操作。

参考代码(Python处理CSV场景)

import re
from collections import defaultdict
import pandas as pd

# 读取SKU数据
sku_df = pd.read_csv("your_sku_list.csv")
# 分组正则:匹配id.后5位数字
group_reg = re.compile(r"id\.(\d{5})")
# 筛选基础SKU和变体SKU
base_sku = sku_df[sku_df["sku_type"] == "base"].copy()
variant_sku = sku_df[sku_df["sku_type"] == "variant"].copy()

# 为基础SKU打分组标签
base_sku["group_key"] = base_sku["sku_id"].apply(lambda x: group_reg.search(x).group(1) if group_reg.search(x) else None)
# 按分组聚合
sku_groups = base_sku.groupby("group_key")

for group_key, group_data in sku_groups:
    # 定位主SKU:无后缀的原始SKU
    main_sku_row = group_data[group_data["sku_id"].str.contains(r"id\.\d{5}$")]
    if not main_sku_row.empty:
        main_sku_id = main_sku_row.iloc[0]["sku_id"]
    else:
        # 兜底取最早创建的
        main_sku_id = group_data.sort_values("create_time").iloc[0]["sku_id"]
    # 待删除的冗余基础SKU ID
    del_base_ids = group_data[group_data["sku_id"] != main_sku_id]["sku_id"].tolist()
    # 迁移变体
    variant_sku.loc[variant_sku["parent_sku"].isin(del_base_ids), "parent_sku"] = main_sku_id
    # 删除冗余基础SKU
    sku_df = sku_df[~sku_df["sku_id"].isin(del_base_ids)]

# 合并结果导出
sku_df = pd.concat([sku_df[sku_df["sku_type"] == "base"], variant_sku], ignore_index=True)
sku_df.to_csv("merged_sku_list.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:45:08