Expanding every order item in the outer FROM changes the result to item grain. That is useful for product analysis, but an order report often needs one row per parent. A correlated subquery reads each parent's array and returns a single value or a new array for that parent.
EXISTS (SELECT 1 FROM UNNEST(items) AS item WHERE ...) tests whether a basket contains a match. ARRAY(SELECT ... FROM UNNEST(items) ...) builds a filtered array; a parent with no matching items receives an empty array. A scalar aggregate such as SUM returns NULL when there are no input rows, so use COALESCE when the report defines an empty basket total as zero.
Keep the subquery attached to the current row's items. An unrelated scan of all orders can accidentally give every parent the same result. Check an empty basket and a multi-item basket before trusting a parent-grain report.