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

如何将CSV文件转换为EDI 832目录文件?求分步操作指导

从CSV转换为EDI 832目录文件的分步操作流程

1. 先明确EDI 832的核心结构与交易伙伴规范

  • 拆解X12 832的必选段:ISA(交换头)、GS(功能组头)、ST(交易集头)、BIG(目录开始段)、LIN(商品明细行)、CTP(定价信息)、PID(产品描述)、SE(交易集尾)、GE(功能组尾)、IEA(交换尾)
  • 把CSV字段和832字段做一一映射,比如:
    • CSV的商品ID → LIN段02位(需加标识符,UPC码用UP、内部SKU用IN)
    • CSV的单价 → CTP段02位(同时指定货币代码,如USD)
    • CSV的供应商ID → BIG段02位
  • 关键提醒:必须拿到交易伙伴的832实施规范文档,不同企业对字段要求、可选段使用差异极大,比如部分要求添加折扣字段(CTP03)、PID段用特定描述类型

2. 清洗与结构化CSV数据

  • 清理无效数据:删除空行、商品ID/单价为空的记录,统一数值格式(比如单价保留两位小数)
  • 提取全局重复数据:将所有商品共用的供应商ID、目录日期单独提取,作为BIG段的固定内容,避免重复生成
  • 给CSV列添加映射标记,方便后续转换快速对应,比如表头备注:product_id → LIN02(UP)

3. 选择转换方案(二选一)

方案A:无代码工具转换

  • 使用本地EDI转换工具(如Altova MapForce、EDIValidator),导入CSV文件和832标准模板
  • 通过拖拽完成字段映射,设置段重复规则(比如LIN/CTP/PID段对应CSV每一行商品)
  • 配置分隔符:默认832用~作为段分隔符、*作为元素分隔符、:作为子元素分隔符,需和伙伴确认是否一致
  • 生成测试文件后,用工具内置校验功能检查格式合规性

方案B:自定义脚本转换(Python示例)

  • 用pandas读取CSV,手动拼接EDI段(或用pyedi库简化操作),核心代码示例:
import pandas as pd

# 读取清洗后的CSV
df = pd.read_csv("cleaned_catalog.csv")
edi_segments = []

# 构造ISA段(参数必须和交易伙伴确认)
edi_segments.append("ISA*00*          *00*          *ZZ*YOUR_VENDOR_ID*ZZ*BUYER_PARTNER_ID*240520*1430*U*00401*000000001*0*P*>")
# 构造GS段
edi_segments.append("GS*PR*YOUR_VENDOR_ID*BUYER_PARTNER_ID*20240520*1430*1*X*004010")
# 构造ST段
edi_segments.append("ST*832*0001")
# 构造BIG段(取CSV第一行的供应商ID和当前日期)
edi_segments.append(f"BIG*20240520*1430*{df['vendor_id'].iloc[0]}*CAT_20240520*")

# 遍历CSV生成商品明细段
for line_num, (_, row) in enumerate(df.iterrows(), start=1):
    # LIN段:行号 + 商品标识类型 + 商品ID
    edi_segments.append(f"LIN*{line_num}*UP*{row['product_id']}")
    # CTP段:定价类型 + 单价 + 货币代码
    edi_segments.append(f"CTP*01*00*{row['unit_price']:.2f}*USD")
    # PID段:描述类型 + 商品描述
    edi_segments.append(f"PID*F01*00*{row['product_desc']}")

# 构造收尾段
total_segments = 3 + len(df) * 3  # ST+BIG+所有明细段的数量
edi_segments.append(f"SE*{total_segments}*0001")
edi_segments.append("GE*1*1")
edi_segments.append("IEA*1*000000001")

# 写入EDI文件,用~连接所有段
with open("output_832.edi", "w", encoding="utf-8") as f:
    f.write('~'.join(edi_segments))
  • 注意:ISA/GS段中的发送方/接收方ID、日期时间、版本号(00401)必须和交易伙伴完全一致,否则对方无法解析

4. 验证与交付

  • 用EDI校验工具检查生成文件是否符合X12 4010标准,重点核查段顺序、字段长度、分隔符
  • 发送测试文件给交易伙伴,请求验证格式是否符合要求
  • 根据反馈调整映射规则或段内容,直到对方确认接收无误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:46:08