changeмог произойти только в delivery, а в number ещё нет, поэтому let number пока что равен undefined. У Вас наверняка в инпутах при инициализации уже будет какое-то value, вот это value и присвойте переменнымvar delivery = $('#delivery input').val() || 0;
number = $('#number').val() || 0;
document.body.scrollHeight, способов несколько. Гуглите.
changeкак раз таки будет срабатывать при изменение состояния инпута, то есть когда будет focus или blur. Автора скорее всего интересует событие input