优化
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import { findPricedOrderRouteAcrossOrigins } from './orders.mjs'
|
||||
|
||||
const MODULE = 'order-inbound-status-fixtures'
|
||||
const OPTIONS = { scenario: 'manual-order-inbound-status-matrix', deploymentBlocker: true }
|
||||
const MERCHANT_USERNAME = process.env.MERCHANT_TEST_USERNAME || 'merchant_admin'
|
||||
@@ -64,19 +66,22 @@ async function loadFixtureInputs(context, token) {
|
||||
const profile = context.apiSuccess(MODULE, '读取 IT 测试客户资料', profileResponse)
|
||||
const domesticResponse = await merchantGet(context,
|
||||
'/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=DOMESTIC', token)
|
||||
const domestic = rows(context.apiSuccess(MODULE, '读取国内收货仓', domesticResponse))[0]
|
||||
const domesticPage = context.apiSuccess(MODULE, '读取国内收货仓', domesticResponse)
|
||||
const receivings = rows(domesticPage).filter((item) => item?.status === 'ACTIVE')
|
||||
const destinationResponse = await merchantGet(context,
|
||||
'/api/merchant/v1/warehouses?page=1&size=200&status=ACTIVE&warehouseType=FBA', token)
|
||||
const destination = rows(context.apiSuccess(MODULE, '读取 FBA 目的仓', destinationResponse))[0]
|
||||
if (!profile?.id || !domestic?.id || !destination?.id) throw new Error('状态样本缺少客户或仓库基础数据')
|
||||
const channelResponse = await merchantGet(context,
|
||||
`/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=${query(domestic.id)}`, token)
|
||||
const channels = context.apiSuccess(MODULE, '读取可下单渠道', channelResponse)
|
||||
const channel = Array.isArray(channels)
|
||||
? channels.find((item) => Array.isArray(item.pricingTaxModes) && item.pricingTaxModes.length > 0)
|
||||
: null
|
||||
if (!channel) throw new Error('状态样本缺少带计价税制的可用渠道')
|
||||
return { tenantId: id(profile.id), customerName: profile.tenantName || 'IT 测试客户', domestic, destination, channel }
|
||||
const destinations = rows(context.apiSuccess(MODULE, '读取 FBA 目的仓', destinationResponse))
|
||||
if (!profile?.id || receivings.length === 0 || destinations.length === 0) throw new Error('状态样本缺少客户或仓库基础数据')
|
||||
const priced = await findPricedOrderRouteAcrossOrigins({
|
||||
receivings, destinations,
|
||||
loadChannels: (receiving) => merchantGet(context,
|
||||
`/api/merchant/v1/first-leg/pricing/channels?originWarehouseId=${query(receiving.id)}`, token),
|
||||
estimate: (body) => merchantRequest(context, 'POST', '/api/merchant/v1/first-leg/pricing/estimate', body, token),
|
||||
})
|
||||
if (!priced.receiving || !priced.priced) throw new Error('状态样本缺少真实可计价的仓库/渠道/目的仓组合')
|
||||
return { tenantId: id(profile.id), customerName: profile.tenantName || 'IT 测试客户',
|
||||
domestic: priced.receiving, destination: priced.priced.destination, channel: priced.priced.channel,
|
||||
pricingTaxMode: priced.priced.pricingTaxMode }
|
||||
}
|
||||
|
||||
function orderPayload(context, fixture, target) {
|
||||
@@ -94,7 +99,7 @@ function orderPayload(context, fixture, target) {
|
||||
receivingWarehouseId: fixture.domestic.id, receivingWarehouseName: fixture.domestic.warehouseName,
|
||||
channelCode: fixture.channel.channelCode, channelName: fixture.channel.channelName,
|
||||
carrierId: null, carrierName: null, taxMode: 'BUY_DECLARATION',
|
||||
pricingTaxMode: fixture.channel.pricingTaxModes[0], containerMode: 'LCL', customsInspection: false,
|
||||
pricingTaxMode: fixture.pricingTaxMode, containerMode: 'LCL', customsInspection: false,
|
||||
destinationType: 'FBA', amazonWarehouseCode: fixture.destination.warehouseCode,
|
||||
shipmentId, referenceId,
|
||||
sender: { companyName: fixture.customerName, contactName: 'IT 测试联系人', phone: '13800138000',
|
||||
|
||||
Reference in New Issue
Block a user