Как во вложенный объект добавить объект?
dataLayer является массивом. Обращаться к его элементам надо по индексу.dataLayer[0].ecommerce.add.products.push({ name: 'name'; price: 0 });
не работает из-за add, пишет что нет такого метода или он невалиден
Покажите код? Почему он думает, что это - метод? add - это свойство объекта  ecommerce
Если вам в массив products надо добавить, то вотdataLayer.ecommerce.add.products.push({name:00, price:00})
Кстати, обратите внимание, что не {name:00; price:00}, а {name:00, price:00}