This commit is contained in:
seb
2026-10-17 05:10:25 +02:00
parent 988b4848cf
commit 7197a6ddb7
28 changed files with 1172 additions and 166 deletions

View File

@@ -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);