mameyugo;

, 0 comentarios, 900 lecturas, por: Jose Manuel Muras Rodrigo

Lo primero que tenemos que saber es que no se puede borrar el dato ya registrado en analytics lo que se puede hacer es modificarlo.

Por lo que parece el proposito del post es inviable, pues resulta que no del todo, ya que lo que suele interesar no es el numero de pedidos sino la suma de las transacciones, ya que realmente nos da lo mismo tener 10 pedidos de 60 EUR que 15 de 40 a efectos de ganancias, ya que los dos nos dan 600 EUR al día. Ya se que no es lo mismo en muchos otros aspectos.

La solucion nos la da el propio analitics ya sea mediante acceso al API o haciendo una llamada sencilla por url con parametros, haremos un pedido negativo con los campos de totales y las cantidades en negativo, OJO! no poner el precio unitario del producto en negativo, menos por menos es más.

	<?php 
$url='http://www.google-analytics.com/collect';
$conexion='?v=1'.'&cid=555';

// si ponemos cancelar a 0 envia el pedido de nuevo con los datos actuales,
// es comodo para la edicion de pedidos
$cancelar=1;

$pedido=array(
    'pedido_id' =>  123456,
    'total'     =>  60,
    'envio'     =>  10,
    'impuestos' =>  0,

);
$settings=(object)array(
    'google_analytics_universal'    =>  'UA-4534534-75',
    'google_analytics'              =>  ''
    );
if($settings->google_analytics_universal){
    $conexion1=$conexion.'&tid='.$settings->google_analytics_universal;
    echo 'hay universal<br>';
}
if($settings->google_analytics){
    $conexion2=$conexion.'&tid='.$settings->google_analytics;
    echo 'hay normal<br>';
}

$parameters1='&t=transaction'.
'&ti='.$pedido['pedido_id'];//.//        // transaction ID. Required.
//'&ta=westernWear'.//  // Transaction affiliation.
if($cancelar){
    $parameters1.='&tr=-'.$pedido['total'].//        // Transaction revenue.
    '&ts=-'.$pedido['envio'].//        // Transaction shipping.
    '&tt=-'.$pedido['impuestos'];//        // Transaction tax.
}else{
    $parameters1.='&tr='.$pedido['total'].//        // Transaction revenue.
    '&ts='.$pedido['envio'].//        // Transaction shipping.
    '&tt='.$pedido['impuestos'];//        // Transaction tax.
}
$parameters1.='&cu=EUR';

if(isset($conexion1)){
    $this->llama($url.$conexion1.$parameters1);
}
if(isset($conexion2)){
    $this->llama($url.$conexion2.$parameters1);
}

$productos=array(
    0   =>  array(
        'nombre'        =>  'producto 1',
        'precio'        =>  '25',
        'cantidad'      =>  '2',
        'producto_id'   =>  123,
        'categoria'     =>  'categoria 1'
    )
);
foreach ($productos as $producto) {
    $parameters='&t=item'.
    '&ti='.$pedido['pedido_id'].
    '&in='.urlencode($producto['nombre']).
    '&ip='.$producto['precio'];
    if($cancelar){
        $parameters.='&iq=-'.$producto['cantidad'];
    }else{
        $parameters.='&iq='.$producto['cantidad'];
    }
    $parameters.='&ic='.$producto['producto_id'].
    '&iv='.urlencode($producto['categoria']).
    '&cu=EUR';

    if(isset($conexion1)){
        $this->llama($url.$conexion1.$parameters);
    }
    if(isset($conexion2)){
        $this->llama($url.$conexion2.$parameters);
    }
}
?> 
Unete!