From b88f812ceb51f598574d4d9568033ffa7105f2a5 Mon Sep 17 00:00:00 2001 From: huangyujie <27665451@qq.com> Date: Wed, 25 Mar 2026 15:17:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(pdd):=20=E6=97=A0=E8=A7=84=E6=A0=BC?= =?UTF-8?q?=E5=8F=91=E5=93=81=20sku=5Flist=20=E4=B8=8D=E4=BC=A0=20spec=5Fi?= =?UTF-8?q?d=5Flist=20=E4=B8=8E=20spec=5Fdetail=5Flist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- .../service/external/pdd/ExternalPddPublishService.java | 4 ++-- .../service/external/pdd/PddGoodsAddParamBuilder.java | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddPublishService.java b/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddPublishService.java index 77b72371..ae7d17d5 100644 --- a/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddPublishService.java +++ b/service/src/main/java/cn/qihangerp/service/external/pdd/ExternalPddPublishService.java @@ -15,7 +15,7 @@ import java.util.List; /** * 拼多多发布:POP 凭证仅来自本次请求的 {@link ExternalGoodsUpsertRequest#getPddPopAuth()};不依赖 {@code o_shop}。 - * 可选自动拉取类目规则与 spec.id;图书等 {@code input_max_spec_num=0} 类目可走无规格单 SKU({@code spec_id_list} 为字面量 0)。 + * 可选自动拉取类目规则与 spec.id;图书等 {@code input_max_spec_num=0} 类目可走无规格单 SKU({@code sku_list} 项不传 {@code spec_id_list}/{@code spec_detail_list})。 * * @author guochengyu */ @@ -108,7 +108,7 @@ public class ExternalPddPublishService { specAuto = true; } else if (PddOpenApiSupport.isNoSpecBookCatRule(ar.getCatRuleRaw()) && skuRows.size() == 1) { noSpecBookPublish = true; - autoDetail = "类目 input_max_spec_num=0:拼多多无规格发品(单 sku_list,spec_id_list=\"0\",未调用 spec.id.get)"; + autoDetail = "类目 input_max_spec_num=0:拼多多无规格发品(单 sku_list,不传 spec_id_list/spec_detail_list,未调用 spec.id.get)"; log.info("[PDD] no-spec book publish shopId={} outGoodsId={}", req.getShopId(), req.getOutGoodsId()); } else if (PddOpenApiSupport.isNoSpecBookCatRule(ar.getCatRuleRaw())) { log.info("[PDD] publish skipped shopId={} outGoodsId={} reason=no-spec-requires-single-sku skuCount={}", diff --git a/service/src/main/java/cn/qihangerp/service/external/pdd/PddGoodsAddParamBuilder.java b/service/src/main/java/cn/qihangerp/service/external/pdd/PddGoodsAddParamBuilder.java index fc1db536..0e0d178b 100644 --- a/service/src/main/java/cn/qihangerp/service/external/pdd/PddGoodsAddParamBuilder.java +++ b/service/src/main/java/cn/qihangerp/service/external/pdd/PddGoodsAddParamBuilder.java @@ -152,7 +152,7 @@ public class PddGoodsAddParamBuilder { /** * 拼多多「无规格」发品(如图书 {@code input_max_spec_num=0}):仅一条 {@code sku_list}, - * {@code spec_id_list} 固定为 {@code "0"},{@code spec_detail_list} 为空,根级 {@code is_sku=false},不调用 {@code spec.id.get}。 + * SKU 对象不传 {@code spec_id_list}、{@code spec_detail_list};根级 {@code is_sku=false},不调用 {@code spec.id.get}。 *

调用方须保证过滤后仅 1 条有效 SKU。

*/ public String buildParamJsonNoSpecBook(OGoods goods, List skus, ExternalGoodsUpsertRequest req, @@ -234,8 +234,6 @@ public class PddGoodsAddParamBuilder { sku.put("price", singleFen); sku.put("quantity", qty); sku.put("weight", row.getWeightGram() != null ? row.getWeightGram() : 1000L); - sku.put("spec_id_list", "0"); - sku.put("spec_detail_list", new JSONArray()); sku.put("thumb_url", StringUtils.hasText(row.getSkuImageUrl()) ? row.getSkuImageUrl() : carousel.get(0)); if (StringUtils.hasText(row.getOuterErpSkuId())) { sku.put("out_sku_sn", row.getOuterErpSkuId());