diff --git a/apps/backend/src/services/fulfillment/product-resolution-service.ts b/apps/backend/src/services/fulfillment/product-resolution-service.ts index cc91f5cd..11f4bd12 100644 --- a/apps/backend/src/services/fulfillment/product-resolution-service.ts +++ b/apps/backend/src/services/fulfillment/product-resolution-service.ts @@ -298,13 +298,23 @@ function resolveDouyinMashidaItemCandidate({ const fulfillmentRoute = resolveFulfillmentRoute({ productName: productTitle, internalSku, - preferredExecutorKey: douyinSkinMatch ? FULFILLMENT_EXECUTOR_KEYS.DOUYIN_MASHIDA_SKIN : '', + // 命中皮肤 → 皮肤自动发货;未命中 → **显式**回落人工(接单平台)。 + // 不依赖全局 `unmatchedExecutorKey`:线上/联调环境该值可能是空串(dev 库就是空串), + // 那样未命中的抖音订单会既不建任务、也不进人工,等于静默漏单。 + preferredExecutorKey: douyinSkinMatch + ? FULFILLMENT_EXECUTOR_KEYS.DOUYIN_MASHIDA_SKIN + : FULFILLMENT_EXECUTOR_KEYS.MANUAL_DISPATCH, candidates: [ { executorKey: FULFILLMENT_EXECUTOR_KEYS.DOUYIN_MASHIDA_SKIN, available: Boolean(douyinSkinMatch), reason: douyinSkinMatch ? '' : '内部 SKU 未命中皮肤商品映射', }, + { + executorKey: FULFILLMENT_EXECUTOR_KEYS.MANUAL_DISPATCH, + available: true, + reason: '接单平台/人工兜底', + }, ], })