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é...