Как получить новый объект с посчитанными суммами?
const out = items.reduce((acc, {id, price}) => {
  const key = obj[id]
  if (key) { // проверяем что элемент с таким id нас вообще интересует
    if (acc[key]) { // если он встречался ранее, то добавляем к текущему значению
      acc[key] += price
    } else { // иначе запоминаем с текущей ценой
      acc[key] = price
    }
    acc.total += price // и всегда добавляем к total
  }
  return acc
}, { total: 0 })
Наскоро, так:
const output = Object.fromEntries(Object.values(obj).map(name => [name, 0]));

items.forEach(({ id, price }) => {
  if (!Object.hasOwn(obj, id)) return;
  output[obj[id]] += price;
});

output.total = Object.values(output).reduce((acc, c) => acc + c);
// { first: 80000, second: 80000, total: 160000 }