ian wrote: Going to a website and "checking out" all the parts for a project seems...well, like a silly extra step.
I am not sure what you mean??? The only time it goes to a website is when you want to place an order from a build list (IE I'm out of parts time to order new ones).
It has to get the current prices to find out what sourcing would be the best. Prices do change so it can't just keep that info from the invoice.
My BOMs (AKA part lists) don't say where to get the part only what part I need to construct an object.
It isn't just pricing either. In the end it will check stock and use a backup source (that might be more expensive) if there is nothing at the lowest cost one (this isn't in the code base yet).
Let me explain the logic of the cost finder a bit here:
PART A (LDO) :
Manufacture 1 (Ti) - > Source A, B, C
Manufacture 2 (ST) -> Source D, E
You file the Ti and ST LDO together. So all that maters is what the price is for A, B, C, D, E.
Let's say source D requires 60 units to buy but is cheapest. E requires 80 units to buy but is second cheapest. A is cheapest for 1 unit.
You ask for 10 units, it selects source A. You ask for 58 units it selects source D and buys 60 units, because rounding up is cheaper.
If D is out of stock and you ask for 50 units maybe it even buys E at 80 units rather than A. B and C might just be backup for quantity 1 sourcing.
You can't know any of this until you know how many you are going to order. You might get the cost info once and that might be good enough if the prices aren't moving around but out of stock handling requires you to go to the web every time so is designed to go to the web every time you want to source parts for when I add handling for out of stock parts. Plus it just makes the costing more accurate.