前面的ok了, 绑定与角色

This commit is contained in:
yml
2026-05-03 20:58:18 +08:00
parent dd2192b6ae
commit 0f0253bffe
30 changed files with 1900 additions and 409 deletions
@@ -120,15 +120,18 @@ export async function syncConfiguredFulfillmentBindings(profileMap = {}) {
continue
}
const matchShopId = resolveBindingMatchShopId(binding)
const bindingConfig = resolveBindingRuntimeConfig(binding)
await upsertSkuFulfillmentBinding({
skuCode: binding.skuCode,
provider: binding.provider,
platform: binding.platform,
shopId: binding.shopId,
shopId: matchShopId,
profileId: profile.id,
enabled: binding.enabled,
priority: binding.priority,
configJson: JSON.stringify(binding.config || {}),
configJson: JSON.stringify(bindingConfig),
createdAt: timestamp,
updatedAt: timestamp,
})
@@ -145,7 +148,7 @@ export async function syncConfiguredFulfillmentBindings(profileMap = {}) {
await upsertProductMatchRule({
provider: binding.provider,
platform: binding.platform,
shopId: binding.shopId,
shopId: matchShopId,
externalItemId,
externalSkuCode,
externalSkuName,
@@ -159,3 +162,30 @@ export async function syncConfiguredFulfillmentBindings(profileMap = {}) {
})
}
}
function resolveBindingMatchShopId(binding = {}) {
if (String(binding.provider || '').trim() === 'khhao' && String(binding.platform || '').trim() === 'kuaishou') {
return String(binding.khhaoShopId || binding.shopId || '').trim()
}
return String(binding.shopId || '').trim()
}
function resolveBindingRuntimeConfig(binding = {}) {
const baseConfig = isPlainObject(binding.config) ? { ...binding.config } : {}
if (String(binding.provider || '').trim() === 'khhao' && String(binding.platform || '').trim() === 'kuaishou') {
baseConfig.kuaishouShop = {
...(isPlainObject(baseConfig.kuaishouShop) ? baseConfig.kuaishouShop : {}),
shopId: String(binding.shopId || '').trim(),
shopName: String(binding.shopName || '').trim(),
khhaoShopId: String(binding.khhaoShopId || '').trim(),
}
}
return baseConfig
}
function isPlainObject(value) {
return Object.prototype.toString.call(value) === '[object Object]'
}