Сохранение товаров в localstorage

У меня есть две страницы html: products(1) и card_products(2) к (1) подключен js файл

var buyButtons = document.querySelectorAll('.buyButton');

buyButtons.forEach(function (buyButton) {
    buyButton.addEventListener('click', function () {
        var productContainer = this.parentNode;
        var productName = productContainer.querySelector('.name_product').innerText;
        var productPrice = productContainer.querySelector('.price_product').innerText;
        var productImage = productContainer.querySelector('.image_product').getAttribute('src');
        var productQuantity = 1;

        var productData = {
            name: productName,
            price: productPrice,
            image: productImage,
            quantity: productQuantity,
        };

        var cart = JSON.parse(localStorage.getItem('cart')) || [];
        var found = false;

        cart.forEach((item) => {
            if (item.name === productData.name) {
                item.quantity += productData.quantity;
                found = true;
                alert("Есть совпадение");
            }
        });

        if (!found) {
            cart.push(productData);
        }

        localStorage.setItem('cart', JSON.stringify(cart));
    });
});

Все сохраняется корректно, как вы видите если добавить такой же товар снова то идет увеличение количества. Далее в (2) js файл

var count = 1;

var counterElement = document.getElementById('counter');

var positive = document.getElementById('Button_1');
positive.addEventListener('click', function () {
    count += 1;
    counterElement.innerText = count;

});
var negative = document.getElementById('Button_2');
negative.addEventListener('click', function () {
    if (count - 1 == 0) {
        alert('Число должно быть больше нуля.');
    } else {
        count -= 1;
        counterElement.innerText = count;
    }
});

var buyButtons = document.querySelectorAll('.buyButton');


buyButtons.forEach(function (buyButton) {
    buyButton.addEventListener('click', function () {

     var productContainer = this.parentNode;
        var productName = productContainer.querySelector('.name_card').innerText;
        var productPrice = productContainer.querySelector('.price_card').innerText;
        var productImage = productContainer.querySelector('.image_card').getAttribute('src');

        var productData = {
            name: productName,
            price: productPrice,
            image: productImage,
            quantity: count,
        }; 

        var cart = JSON.parse(localStorage.getItem('cart')) || [];

        var found = false;

        cart.forEach((item) => {
            console.log(item.name);
            console.log(productData.name);

            if (item.name === productData.name) {
                item.quantity += count;
                found = true;
                alert("Есть совпадение");
            }
        });

        if (!found) {
            cart.push(productData);
        } 

        localStorage.setItem('cart', JSON.stringify(cart));
        
    });
});

Все то же самое но есть кнопка увеличения количества все работает корректно но циклом forEach при поиске такого же названия код находит совпадение лишь если я уже раннее добавил объект конкретно с этой страницы но если я его добавил в (1) странице совпадения не находит и добавляет новый объект(также работает и наоборот). Смотрел через консоль может названия немного отличаются или тип разный но нет идеально совпадают. Возможно это как то связано с тем что к (1) подключен первый js файл без второго а ко (2) подключен второй js файл без первого. Также не знаю важно или нет у обоих функция:

document.addEventListener('DOMContentLoaded', function ()

Как вы видите просто добавляется новый объект:

введите сюда описание изображения


Ответы (0 шт):