Matomo

  • Posts: 210
  • Thank you received: 21
2 years 7 months ago #340406

-- url of the page with the problem -- : aunumis.com
-- HikaShop version -- : 4.5.0
-- Joomla version -- : 3.10.6
-- PHP version -- : 7.4

Bonjour,

Google Analytics ayant été déclaré non conforme avec les RGPD européens, je me suis tourné vers Matomo.

La solution est simple à mettre en œuvre mais hélas, si il existe des des plugins pour beaucoup de plateformes différentes, je n'ai rien trouvé pour Hikashop.

Cordialement,
Patrick

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
2 years 7 months ago #340431

Bonjour,

Nous étions justement en train de travailler sur un plugin pour Matomo pour la prochaine version d'HikaShop.
Si vous voulez le béta tester, vous pouvez utiliser notre formulaire de contact pour faire la demande:
www.hikashop.com/support/contact-us.html
Merci de fournir l'URL de ce sujet en référence dans votre message.

Please Log in or Create an account to join the conversation.

  • Posts: 210
  • Thank you received: 21
2 years 7 months ago #340687

Bonjour,

Le plugin fonctionne parfaitement mais j'ai remarqué un comportement étrange.
Je ne sais pas si ça vient de Matomo :

Sur le site, le paiement des commandes se fait par virement bancaire.
Les commandes restent donc en status " créée" jusqu'à réception du virement.

Là, le vendeur passe la commande en "validée" puis "expédiée".

Dans le suivi de Matomo, les ventes apparaissent comme "abandonnées" même après changement de status .
J'ai anonymisé le suivi, donc Matomo ne dépose aucun cookie.

Merci d'avance,
Cordialement,
Patrick

Please Log in or Create an account to join the conversation.

  • Posts: 82863
  • Thank you received: 13372
  • MODERATOR
2 years 7 months ago #340688

Bonjour,

Dans le menu Système>Statuts de commande, vous avez une colonne "matomo" qui permet de configurer les statuts à prendre en compte pour l'envoi des données de la commande à matomo.
Donc à partir du moment où le plugin voit la commande passer dans un de ces statuts, il envoie les informations de la commande à matomo.
Il n'y a pas d'annulation ou d'abandon pour les commandes.

Ne serait-ce pas plutôt le panier qui serait vidé ?
Dans le fichier plugins/system/matomo/matomo.php, vous avez une fonction getCartJS qui va envoyer les informations du panier courant à matomo sur chaque page affichée:

private function getCartJS() {
		$cartClass = hikashop_get('class.cart');
		$cart = $cartClass->getFullCart();

		$js = '';
		if(!empty($cart)) {
			$total = 0;
			if(!empty($cart->total->prices[0]->price_value_with_tax))
				$total = $cart->total->prices[0]->price_value_with_tax;
			if(!empty($cart->products)) {
				$config = hikashop_config();
				$group = $config->get('group_options', 0);
				foreach($cart->products as $k => $product) {
					if(empty($product->cart_product_quantity) || substr($k,0,1) === 'p')
						continue;
					if($group && $product->cart_product_option_parent_id)
						continue;
					$js .= "
_paq.push(['addEcommerceItem',
	'(".$product->product_id.') '.$product->product_code."', // (Required) productSKU
	".json_encode(strip_tags($product->product_name)).", // (Optional) productName
	".$this->getProductCategories($product)."
	".round(@$product->prices[0]->price_value_with_tax, 2).", // (Recommended) price
	".$product->cart_product_quantity." // (Optional, defaults to 1) quantity
]);
					";
				}
			}
			$js .= "_paq.push(['trackEcommerceCartUpdate', ".round($total,2)."]);";
		}
		return $js;
	}
Donc il possible qu'à la fin de la commande il voit un panier vide et ce serait cela qui génèrerait un "panier abandonné" ?
Peut être faudrait-il modifier le code de cette façon:
private function getCartJS() {
		$cartClass = hikashop_get('class.cart');
		$cart = $cartClass->getFullCart();

		$js = '';
		if(!empty($cart)) {
			$total = 0;
			if(!empty($cart->total->prices[0]->price_value_with_tax))
				$total = $cart->total->prices[0]->price_value_with_tax;
			if(!empty($cart->products)) {
				$config = hikashop_config();
				$group = $config->get('group_options', 0);
				foreach($cart->products as $k => $product) {
					if(empty($product->cart_product_quantity) || substr($k,0,1) === 'p')
						continue;
					if($group && $product->cart_product_option_parent_id)
						continue;
					$js .= "
_paq.push(['addEcommerceItem',
	'(".$product->product_id.') '.$product->product_code."', // (Required) productSKU
	".json_encode(strip_tags($product->product_name)).", // (Optional) productName
	".$this->getProductCategories($product)."
	".round(@$product->prices[0]->price_value_with_tax, 2).", // (Recommended) price
	".$product->cart_product_quantity." // (Optional, defaults to 1) quantity
]);
					";
				}
				if(!empty($js))
					$js .= "_paq.push(['trackEcommerceCartUpdate', ".round($total,2)."]);";
			}
		}
		return $js;
	}
(la ligne
$js .= "_paq.push(['trackEcommerceCartUpdate', ".round($total,2)."]);";
n'est envoyée que si il y des produits dans le panier.
Si vous pouvez faire la modification et voir ce que cela donne de votre coté...

Please Log in or Create an account to join the conversation.

  • Posts: 210
  • Thank you received: 21
2 years 7 months ago #340705

Bonjour
Merci pour votre réponse.
Je vais tester ça et je vous tiens au courant.

Cordialement
Patrick

Please Log in or Create an account to join the conversation.

  • Posts: 210
  • Thank you received: 21
2 years 7 months ago #340706

Bonjour,

Effectivement, dans la configuration système -> Statuts de commande je n’avais pas validé "created".
Donc, Matomo devait voir ça comme un abandon de commande.

Je vous tiens au courant.
Merci !

The following user(s) said Thank You: nicolas

Please Log in or Create an account to join the conversation.

Time to create page: 0.069 seconds
Powered by Kunena Forum