Показать сообщение отдельно
  #3 (permalink)  
Старый 08.03.2022, 23:17
Интересующийся
Отправить личное сообщение для karnager Посмотреть профиль Найти все сообщения от karnager
 
Регистрация: 14.06.2019
Сообщений: 16

Нашел еще вот такое решение:

function(){  
var prods = {{ecommerce.items}};  
var i;
var sum = 0;   
if (!prods) { return; }
   for (i = 0; i < prods.length; i++) {    
    sum +=parseInt((prods[i].quantity))
}   
return sum; 
}


Только проблема заключается в том, что массив может иметь два формата. Либо items:

items: [
      {
        id: 10793,
        name: "Товар №1",
        sku: 10793,
        price: 24900,
        stocklevel: null,
        quantity: 1
      },
      {
        id: 13372,
        name: "Товар №2",
        sku: 13372,
        price: 700,
        stocklevel: null,
        quantity: 1
      }
    ]
  },


Либо products:

products: [
      {
        id: 10793,
        name: "Товар №1",
        sku: 10793,
        price: 24900,
        stocklevel: null,
        quantity: 1
      },
      {
        id: 13372,
        name: "Товар №2",
        sku: 13372,
        price: 700,
        stocklevel: null,
        quantity: 1
      }
    ]
  },


И вот как написать универсальный код для того, чтобы считало quantity и для products [] и для items [], нет идей, потому как в var prods подставляю или ecommerce.items или ecommerce.products
Ответить с цитированием