Ton store est maintenant correct, donc t'as seconde erreur se situe ailleur.
Pour répondre à ta question : "Pourquoi il faut que j'importe Vue,Vuex dans mon CartStore alors que je l'ai défini dans mon main.js ?"
Tu importes effectivement ton vuex dans ton main mais après ton import de store.
1 => importation de vuex
2 => importation du store
3 => utilisation du vue.use(vuex)
Donc à ce moment la ton store ne connait pas encore Vuex.
Je sais pas si tu t'es posé la question mais, pourquoi tu utilises render: h => h(require('./App')) et pas un simple import d'App ?
C'est parce que l'import va se faire en priorité avant toute action tandis que le render se fera après ton import de vuex.
ça va t'éviter d'avoir cette même erreur dans ton app lorsque tu vas importer ton store et ainsi tu ne seras pas obligé d'importer une fois de plus ton vuex.