Commit 58beae7e134c9e15a3c1129296146082b2bc9eb8
1 parent
8b1425bb
fix bug
Showing
1 changed file
with
20 additions
and
0 deletions
Show diff stats
scripts/amazon_xlsx_to_shoplazza_xlsx.py
| @@ -468,6 +468,26 @@ def main(): | @@ -468,6 +468,26 @@ def main(): | ||
| 468 | if not variants: | 468 | if not variants: |
| 469 | continue | 469 | continue |
| 470 | 470 | ||
| 471 | + # 确保父ASIN对应的变体在列表最前面 | ||
| 472 | + parent_variant = None | ||
| 473 | + other_variants = [] | ||
| 474 | + for v in variants: | ||
| 475 | + if v.get("ASIN") == spu_id: | ||
| 476 | + parent_variant = v | ||
| 477 | + else: | ||
| 478 | + other_variants.append(v) | ||
| 479 | + | ||
| 480 | + # 重新排序:父ASIN在前,其他在后 | ||
| 481 | + if parent_variant: | ||
| 482 | + variants = [parent_variant] + other_variants | ||
| 483 | + else: | ||
| 484 | + # 如果找不到父ASIN对应的变体,打印错误日志 | ||
| 485 | + print( | ||
| 486 | + f"WARN: Parent ASIN not found in variants: SPU={spu_id}, " | ||
| 487 | + f"variant_count={len(variants)}, first_ASIN={variants[0].get('ASIN') if variants else 'N/A'}", | ||
| 488 | + flush=True, | ||
| 489 | + ) | ||
| 490 | + | ||
| 471 | # 统一变体标题:如果与主商品不一致,改为与主商品一致 | 491 | # 统一变体标题:如果与主商品不一致,改为与主商品一致 |
| 472 | main_title = variants[0].get("商品标题") or "" | 492 | main_title = variants[0].get("商品标题") or "" |
| 473 | for v in variants: | 493 | for v in variants: |