u
This commit is contained in:
@@ -137,6 +137,42 @@ export async function importOrders({
|
||||
}
|
||||
};
|
||||
|
||||
const carrierMap = new Map();
|
||||
try {
|
||||
const carriers = await store.carrier.list(googleAuthId);
|
||||
for (const c of carriers) {
|
||||
if (c.name) {
|
||||
carrierMap.set(c.name.trim().toLowerCase(), c.id);
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
log.warn('Could not list carriers:', err.message);
|
||||
}
|
||||
|
||||
const resolveCarrierId = async (name) => {
|
||||
const cleanName = (name || '').trim() || 'Standard';
|
||||
const key = cleanName.toLowerCase();
|
||||
if (carrierMap.has(key)) return carrierMap.get(key);
|
||||
|
||||
try {
|
||||
const carrier = await store.carrier.create(googleAuthId, {
|
||||
name: cleanName,
|
||||
hasPackages: true,
|
||||
});
|
||||
carrierMap.set(key, carrier.id);
|
||||
return carrier.id;
|
||||
} catch (err) {
|
||||
const list = await store.carrier.list(googleAuthId).catch(() => []);
|
||||
const found = list.find((c) => c.name.trim().toLowerCase() === key);
|
||||
if (found) {
|
||||
carrierMap.set(key, found.id);
|
||||
return found.id;
|
||||
}
|
||||
log.warn(`Could not create carrier "${cleanName}":`, err.message);
|
||||
return null;
|
||||
}
|
||||
};
|
||||
|
||||
const processManifest = async (m) => {
|
||||
const orderNumber = cleanValue(m.nr ?? m.cAuftragsNr);
|
||||
if (!orderNumber || existingOrderNumbers.has(orderNumber)) {
|
||||
@@ -282,18 +318,21 @@ export async function importOrders({
|
||||
|
||||
if (!isSelbstabholer) {
|
||||
const trackingCode = cleanValue(m.trackingCode ?? m.tracking_code ?? m.cTracking);
|
||||
const carrier = cleanValue(m.carrier ?? m.cCarrier);
|
||||
const carrierName = cleanValue(m.carrier ?? m.cCarrier) || 'Standard';
|
||||
const carrierId = await resolveCarrierId(carrierName);
|
||||
const shippingState = isShipped ? 'shipped' : 'draft';
|
||||
|
||||
await store.shipping.create(googleAuthId, {
|
||||
manifestId: shipment.id,
|
||||
type: shippingType || 'standard',
|
||||
state: shippingState,
|
||||
trackingCode: trackingCode || undefined,
|
||||
carrier: carrier || undefined,
|
||||
warehouseId: defaultWarehouseId || undefined,
|
||||
});
|
||||
shippingsImported++;
|
||||
if (carrierId) {
|
||||
await store.shipping.create(googleAuthId, {
|
||||
manifestId: shipment.id,
|
||||
carrierId,
|
||||
type: shippingType || 'standard',
|
||||
state: shippingState,
|
||||
trackingCode: trackingCode || undefined,
|
||||
warehouseId: defaultWarehouseId || undefined,
|
||||
});
|
||||
shippingsImported++;
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
log.warn(`Failed to create shipment/shipping for order ${orderNumber}:`, err.message);
|
||||
|
||||
Reference in New Issue
Block a user