ссылается на переменную item
"Uncaught (in promise) ReferenceError: item is not defined at cartProduct (cart_04.js:13:8)"
Deadorik, ну вот и делайте вывод. Not defined - не определена. Значит нужно определить переменную, прежде чем использовать.
Почему так происходит?
Потому что в стандарте чётко написано
Module code is always strict mode code.
Пока не используете модули, js выполняется в нестрогом режиме. Можно не объявлять переменные перед использованием. В модулях уже всё по-взрослому: сначала объявили переменную, потом ее использовали.
for (let item of json) {
А вообще, сразу и всегда привыкайте писать в строгом режиме, потому что есть еще места, где код всегда так выполняется. Например, в объявлении класса.