feat(fulfillment): 增加统一结算与多渠道人工履约
This commit is contained in:
@@ -378,8 +378,11 @@ export function scanAdminManualSkus(payload: { fromDate: string; toDate: string
|
||||
|
||||
export function saveAdminManualConfig(payload: {
|
||||
skuKey: string
|
||||
platformKey: string
|
||||
creditQuantity: number
|
||||
channels: Array<{
|
||||
platformKey: string
|
||||
creditQuantity: number
|
||||
enabled?: boolean
|
||||
}>
|
||||
canonicalProductId?: number | null
|
||||
enabled?: boolean
|
||||
note?: string
|
||||
@@ -493,6 +496,7 @@ export function fetchAdminManualFulfillmentPending(
|
||||
|
||||
export function confirmAdminManualFulfillment(payload: {
|
||||
orderItemId: number
|
||||
platformKey: string
|
||||
costFen?: number
|
||||
payeeName?: string
|
||||
note?: string
|
||||
|
||||
@@ -2,7 +2,9 @@ import { apiDelete, apiGet, apiPost } from '@/lib/http'
|
||||
|
||||
/** 待分类队列(按内部 SKU 聚合)。 */
|
||||
export type PendingChannelGroup = {
|
||||
internal_sku: string
|
||||
group_key: string
|
||||
scope_type: 'internal_sku' | 'source_sku'
|
||||
internal_sku: string | null
|
||||
sku_name: string
|
||||
providers: string[]
|
||||
shop_ids: string[]
|
||||
@@ -30,7 +32,7 @@ export type ChannelRule = {
|
||||
id: number
|
||||
match_key_type: 'internal_sku'
|
||||
match_key: string
|
||||
channel: 'work_order' | 'affiliate_dash' | 'third_party_voucher' | 'manual'
|
||||
channel: 'work_order' | 'affiliate_dash' | 'third_party_voucher' | 'manual' | 'on_account'
|
||||
priority: number
|
||||
enabled: boolean
|
||||
is_fallback: boolean
|
||||
@@ -145,6 +147,7 @@ export type VoucherConsumeChannel =
|
||||
| 'affiliate_dash'
|
||||
| 'work_order'
|
||||
| 'manual'
|
||||
| 'on_account'
|
||||
| 'third_party_voucher'
|
||||
export type VoucherConsumeMode =
|
||||
| 'manual'
|
||||
@@ -261,7 +264,7 @@ export function retryPendingCarriers(payload: { internalSku: string }) {
|
||||
)
|
||||
}
|
||||
|
||||
export function deletePendingChannelGroup(payload: { internalSku: string }) {
|
||||
export function deletePendingChannelGroup(payload: { groupKey: string }) {
|
||||
return apiPost<DeletePendingChannelGroupResult>(
|
||||
'/api/v1/admin/fulfillment/pending/delete',
|
||||
payload,
|
||||
@@ -269,14 +272,20 @@ export function deletePendingChannelGroup(payload: { internalSku: string }) {
|
||||
}
|
||||
|
||||
export function assignChannelByInternalSku(payload: {
|
||||
groupKey?: string
|
||||
internalSku: string
|
||||
mappedInternalSku?: string
|
||||
channel: string
|
||||
note?: string
|
||||
}) {
|
||||
return apiPost<{ updated: number; carrierFailed: number; ruleCreated: boolean }>(
|
||||
'/api/v1/admin/fulfillment/assign',
|
||||
payload,
|
||||
)
|
||||
return apiPost<{
|
||||
updated: number
|
||||
carrierFailed: number
|
||||
ruleCreated: boolean
|
||||
channelSaved: boolean
|
||||
draftProductId: number | null
|
||||
carrierFailures: Array<{ orderItemId: number; reason: string; message: string }>
|
||||
}>('/api/v1/admin/fulfillment/assign', payload)
|
||||
}
|
||||
|
||||
export function assignChannelToItems(payload: {
|
||||
|
||||
Reference in New Issue
Block a user