Как получить ключи из products внутри компонента? По идее, их вроде бы надо объявить в props
А чо не объявили-то?
вылетает ошибка
Очень информативно. Для ясновидящих.
products: [];
Уверены, что тут должна быть точка с запятой? Возможно, вместо того, чтобы обламывать зубы на использовании фреймворков, вам следует изучить основы языка?
Так, теперь что делать:
1. Указываете ключ из products в props, его же используете в шаблоне:
Vue.component('cart-item', {
props: [ 'product', 'productKey' ],
template:'<div>{{ product }} {{ productKey }}</div>',
});
2. Также несколько иначе будет выглядеть ваш v-for:
<cart-item
v-for="(product, key) in products"
:product="product"
:product-key="key"
:key="key"
></cart-item>
UPD. Возможно, стоит сделать products массивом по получении данных, и ключи - свойствами элементов массива. Тогда не придётся передавать в компонент дополнительный параметр.