Не совсем понятно, как setTimeout подойдет в решении этой проблемы. Вы же не ожидаете, что пользователь не покинет вкладку за этот месяц?
На мой взгляд, целесообразнее сохранить в localStorage дату создания корзины. Затем при помощи скрипта проверять, прошло ли с момента создания корзины 30 дней. Если да, то корзину очистить.