main #61

Merged
longbot merged 12 commits from zhuotianyuan/API:main into main 2026-01-23 09:13:11 +00:00
3 changed files with 27 additions and 8 deletions
Showing only changes of commit 86fd31ac12 - Show all commits

View File

@ -393,6 +393,7 @@ export class ShopyyAdapter implements ISiteAdapter {
tracking_number: f.tracking_number || '',
shipping_provider: f.tracking_company || '',
shipping_method: f.tracking_company || '',
date_created: typeof f.created_at === 'number'
? new Date(f.created_at * 1000).toISOString()
: f.created_at || '',

View File

@ -1211,6 +1211,7 @@ export interface ShopyyOrder {
// 时间戳信息
// ========================================
// 订单创建时间
date_paid?: number | string;
created_at?: number | string;
// 订单添加时间
date_added?: string;

View File

@ -142,6 +142,7 @@ export class OrderService {
errors: []
};
console.log('开始进入循环同步订单', result.length, '个订单')
console.log('开始进入循环同步订单', result.length, '个订单')
// 遍历每个订单进行同步
for (const order of result) {
try {
@ -329,16 +330,33 @@ export class OrderService {
this.logger.debug('订单状态为 AUTO_DRAFT,跳过处理', siteId, order.id)
return;
}
// 这里其实不用过滤不可编辑的行为,而是应在 save 中做判断
// if(!order.is_editable && !forceUpdate){
// this.logger.debug('订单不可编辑,跳过处理', siteId, order.id)
// return;
// }
// 自动转换远程订单的状态(如果需要)
// 检查数据库中是否已存在该订单
const existingOrder = await this.orderModel.findOne({
where: { externalOrderId: String(order.id), siteId: siteId },
});
// 自动更新订单状态(如果需要)
await this.autoUpdateOrderStatus(siteId, order);
if(existingOrder){
// 矫正数据库中的订单数据
const updateData: any = { status: order.status };
if (this.canUpdateErpStatus(existingOrder.orderStatus)) {
updateData.orderStatus = this.mapOrderStatus(order.status as any);
}
// 更新订单主数据
await this.orderModel.update({ externalOrderId: String(order.id), siteId: siteId }, updateData);
// 更新 fulfillments 数据
await this.saveOrderFulfillments({
siteId,
orderId: existingOrder.id,
externalOrderId:order.id,
fulfillments: fulfillments,
});
}
const externalOrderId = String(order.id);
// 这里的 saveOrder 已经包括了创建订单和更新订单
let orderRecord: Order = await this.saveOrder(siteId, orderData);
// 如果订单从未完成变为完成状态,则更新库存
// 如果订单从未完成变为完成状态,则更新库存
if (
orderRecord &&
orderRecord.orderStatus !== ErpOrderStatus.COMPLETED &&
@ -347,7 +365,6 @@ export class OrderService {
await this.updateStock(orderRecord);
// 不再直接返回,继续执行后续的更新操作
}
const externalOrderId = String(order.id);
const orderId = orderRecord.id;
// 保存订单项
await this.saveOrderItems({