У вас вызывается функция при нажатии на кнопку:
<button id="toCart" onclick = "addToCart()">Добавить в корзину</button>
Однако объявление этой функции находится внутри цикла и не попадает в область глобальной видимости.
// Добавление товаров в корзину
for(let j; j < products.length; i++) {
function addToCart(j) {
cart.push(products[j]);
console.log(cart)
};
}
Поэтому при нажатии на кнопку выбрасывается ошибка "нет такой функции".
Скорее всего тут просто перепутаны местами строки. Должно быть:
// Добавление товаров в корзину
function addToCart(j) {
for(let j; j < products.length; i++) {
cart.push(products[j]);
console.log(cart)
};
}