refactor(fulfillment): 固化 91 中文名→英文 SKU 权威映射表
91 继续用中文编码;解析优先查内置常量表,配置仅作临时覆盖,Admin 改为展示权威表。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -2,6 +2,11 @@ import { getAffiliateDashConfig } from '../../platforms/affiliate-dash/config.js
|
||||
import type { JsonObject } from '../../../types/json.js'
|
||||
import { getAffiliateDashWallet } from '../../platforms/affiliate-dash/order-service.js'
|
||||
import { listAffiliateDashProducts } from '../../platforms/affiliate-dash/product-service.js'
|
||||
import {
|
||||
AFFILIATE_DASH_SKU_MAPPING,
|
||||
mergeAffiliateDashSkuMapping,
|
||||
} from '../../platforms/affiliate-dash/sku-mapping.js'
|
||||
import { matchAffiliateDashSku } from '../../fulfillment/product-resolution-service.js'
|
||||
import {
|
||||
getAffiliateDashSourceConfig,
|
||||
hasAffiliateDashConfig,
|
||||
@@ -15,6 +20,7 @@ export function getAdminAffiliateDashConfig() {
|
||||
|
||||
return {
|
||||
source,
|
||||
builtinSkuMapping: { ...AFFILIATE_DASH_SKU_MAPPING },
|
||||
effective: mapEffectiveAffiliateDashConfig(effective),
|
||||
}
|
||||
}
|
||||
@@ -25,15 +31,17 @@ export async function updateAdminAffiliateDashConfig(payload: JsonObject = {}) {
|
||||
|
||||
return {
|
||||
source: saved,
|
||||
builtinSkuMapping: { ...AFFILIATE_DASH_SKU_MAPPING },
|
||||
effective: mapEffectiveAffiliateDashConfig(effective),
|
||||
}
|
||||
}
|
||||
|
||||
/** 按 91 商品编码(productNo)测试 sku 映射命中。 */
|
||||
/** 按 91 商品编码(productNo)测试 sku 映射命中(权威表 + 增量覆盖,含归一化)。 */
|
||||
export function matchAdminAffiliateDashSku(payload: JsonObject = {}) {
|
||||
const productNo = String(payload.productNo || payload.product_no || '').trim()
|
||||
const source = getAdminEditableAffiliateDashConfig()
|
||||
const sku = productNo ? String(source.skuMapping[productNo] || '').trim() : ''
|
||||
const mapping = mergeAffiliateDashSkuMapping(source.skuMapping)
|
||||
const sku = productNo ? matchAffiliateDashSku(mapping, productNo) : ''
|
||||
|
||||
return {
|
||||
productNo,
|
||||
@@ -72,6 +80,8 @@ function mapEffectiveAffiliateDashConfig(config: ReturnType<typeof getAffiliateD
|
||||
hasAppKey: Boolean(config.appKey),
|
||||
hasAppSecret: Boolean(config.appSecret),
|
||||
hasCallbackSecret: Boolean(config.callbackSecret),
|
||||
skuMappingCount: Object.keys(config.skuMapping).length,
|
||||
skuMappingCount: Object.keys(mergeAffiliateDashSkuMapping(config.skuMapping)).length,
|
||||
builtinSkuMappingCount: Object.keys(AFFILIATE_DASH_SKU_MAPPING).length,
|
||||
overlaySkuMappingCount: Object.keys(config.skuMapping || {}).length,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user