cd D:\chengma\cmautobuypython-munittesttools.tests.test_export_thirdparty_catalog_xlsxpythontools\export_thirdparty_catalog_xlsx.py"D:\chengma\全部店铺拼多多商品"--output-dir"D:\chengma\全部店铺拼多多商品\catalog_csv"
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
基本信息
要解决什么
D:\chengma\全部店铺拼多多商品下的 20 个第三方 ERP 导出 XLSX 含蝦皮商品、SKU、店铺、图片和 PDD 来源链接。工作簿的工作表维度错误地标为A1,现有openpyxl导入器无法正常读取。需要先将每个 XLSX 独立转换为后续商品目录入库可用的规范 CSV,供人工核对和下一步接口导入;本任务不提交接口、不写入线上或本地业务数据库。做什么 / 不做什么
做:
goods_id的行保���蝦皮数据,留空 PDD/关联字段并写入校验码;不猜测规格。不做:
/api/v1/integrations/catalog/batches,不导入任何 CSV。已确认实现方案
新增
tools/export_thirdparty_catalog_xlsx.py:使用zipfile + lxml.etree.iterparse流式读取xl/worksheets/sheet*.xml,以首行标题映射字段;每个来源 SKU 行生成一行 UTF-8 BOM CSV。输出字段按后续商品目录入库需要组织:shopee_goods_id、shopee_title、shopee_shop_name、shopee_image_url、shopee_main_sku_code;shopee_sku_id、shopee_sku_code、spec_raw、color、size、advice、parse_ok;pdd_goods_id、pdd_goods_url、association_shopee_goods_id、association_pdd_goods_id;仅当来源 URL 能提取到数字
goods_id时生成规范 URLhttps://mobile.yangkeduo.com/goods.html?goods_id=<id>和关联;不合格行写validation_code。颜色/尺码仅根据明确的变种属性标题确定,无法判断时保持空值、parse_ok=false且保留spec_raw。预计修改:
tools/export_thirdparty_catalog_xlsx.pytools/requirements-thirdparty-catalog-export.txttools/tests/test_export_thirdparty_catalog_xlsx.py(或项目既有测试目录)docs/task/<工单号>-第三方商品工作簿导出规范csv.md(完成后归档)风险和回退
验收标准
pinduoduo 域名/yangkeduo 域名子目录,不修改源 XLSX。A1但实际包含完整数据的 XLSX。mobile.pinduoduo.com/mobile.yangkeduo.com来源 URL 提取 PDDgoods_id并生成规范 URL。validation_code。验证方式
预期:测试通过;每个源工作簿输出一个同名 CSV,控制台输出每个文件行数和 PDD URL 校验统计;无任何 HTTP 提交或数据库写入。
实施完成,待验收
71fabb1(转换器、依赖和自动化测试)b8537fa(docs/task/280-第三方商品工作簿导出规范csv.md)D:\chengma\全部店铺拼多多商品规范CSV,20 个 XLSX 对应 20 个 CSV,保留原子目录结构。goods_id;4,730 行标记PDD_GOODS_ID_MISSING,30 行标记PDD_URL_HOST_INVALID。这些行仍保留蝦皮数据,但不生成 PDD 关联。python -m unittest tools.test_export_thirdparty_catalog_xlsx -v(3 项通过)、python -m py_compile tools\export_thirdparty_catalog_xlsx.py、实际转换和 CSV 二次核对。本任务未调用商品目录接口,未写入本地或线上数据库,等待验收后再进行下一步导入工单。