En estos momentos estoy integrando una tienda online (Prestashop) de un cliente con el comparador de precios Kelkoo. Después de crear una url, donde pudieran sacar la información de los productos que nos interesaba de la tienda para su plataforma, tuve que integrar el pixel de Tradedouble. Según su documentación estos son los pasos a seguir.

El primer cambio es hacer en el archivo order-confirmation.php y lo puedes encontrar en el directorio principal donde has instalado Prestashop (/order-confirmation.php). Tienes que añadir estas dos líneas de código:

$smarty->assign('ID_ORDER',$order->id);
$smarty->assign('TOTAL_PAID',$order->total_paid);

El segundo cambio hay que hacerlo en el archivo order-confirmation.tpl que lo encontrarás en el directorio themes// donde <xxxx> es el nombre del tema que usas para tu sitio (normalmente es themes/prestashop/). Aquí tendrás que añadir el pixel de Tradedoubler:

<img class="hiddenSpellError" alt="" />src="http://tbs.tradedoubler.com/report?organization=12345&amp;event=6789&amp;orderNumber={$ID_ORDER}&amp;orderValue={$TOTAL_PAID}¤cy=EUR" /&gt;

El único problema es que está verificado para la versión 1.3, por tanto en la versión 1.4.4.0 no funciona el punto 1, por lo que las variables $ID_ORDER y $TOTAL_PAID salen vacías.

 

Solución:

Vamos a controllers/OrderConfirmationController.php y buscamos la función  displayContent() y le añadimos lo siguiente, antes de mostrar la plantilla.


$order = new Order((int)($this->id_order));
self::$smarty->assign(array(
'ID_ORDER'=>$order->id,
'TOTAL_PAID'=>$order->total_paid
));

El resultado sería el siguiente:


public function displayContent()
{

$order = new Order((int)($this->id_order));
self::$smarty->assign(array(
'ID_ORDER'=>$order->id,
'TOTAL_PAID'=>$order->total_paid
));

parent::displayContent();
self::$smarty->display(_PS_THEME_DIR_.'order-confirmation.tpl');

}

Espero que estas líneas os sirvan de ayuda. Cualquier comentario es bien recibido.