When a SKU is missing from the price book, the estimating engine doesn't drop the row or error — it returns a material literally named 'undefined (3636DHW)' with a price of zero. Two problems in one row, handled separately: the builder gets a red warning naming the SKUs, and the customer-facing list drops the row and falls through to an honest count ('1 window').
Also called: undefined on the quote · product not found · line priced at zero · missing SKU
- 1isUnresolvedMaterial() flags a row with an empty name, a name starting with 'undefined', or a ProductNotFound price error.
- 2The Summary tab shows a red banner: 'N products aren't in your price book — priced at $0', naming each SKU.
- 3Customer-facing opening lists skip the row entirely rather than print an error message wearing a product's clothes.
A live customer portal was showing an openings line that read 'undefined' with a part number after it. One row, two separate failures: the price book had no entry for that window, so the line was priced at $0 and the estimate was short by a real window — and the word itself was printed to a paying customer. Unpriced lines are now called out to the builder as a shortfall to fix, and are never shown to the customer. Before this they were an error nowhere; a $0 line just sat quietly in a real estimate.
- Missing SKUs silently pricing at zero and shorting the quote
- Internal error text reaching a paying customer
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →