添加谷歌AdWords转换跟踪(JavaScript)的代码转换成的PrestaShop / Sma

2019-07-31 06:14发布

我运行一个的PrestaShop网站,并希望将其与谷歌AdWords和与转换跟踪功能集成。 所述的PrestaShop代码是在Smarty的3。

现在我发现,我可以把谷歌的JS代码在TPL文件的末尾:订单confirmation.tpl。 下面是谷歌的代码:

<script type="text/javascript"> 
/* <![CDATA[ */ 
var google_conversion_id = <my id>; 
var google_conversion_language = "en"; 
var google_conversion_format = "3"; 
var google_conversion_color = "ffffff"; 
var google_conversion_label = "<my label>"; 
var google_conversion_value = {$total}; 
/* ]]> */ 
</script> 
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"> 
</script> 
<noscript> 
<div style="display:inline;"> 
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/<id>/?value=0&amp;label=<label>&amp;guid=ON&amp;script=0"/> 
</div> 
</noscript>

问题是供给JS变量google_conversion_value与总次序值的内容。

我使用Smarty的3,我尝试了包括{}文字标签之间的整个JS块,或不那么就与周围空间中括号,没有空格,任何事情似乎工作。

另外,相同的转换价值是在部分的链接googleadservices一个参数,它是当前设置为0,但我想在$总价值去那里了。

Answer 1:

它看起来像我不得不打电话getOrderTotal$cart对象:

var google_conversion_value = {$cart->getOrderTotal(false, Cart::BOTH_WITHOUT_SHIPPING)};

第一个参数是,如果你想获得总与税与否。 第二个参数是Cart.php一个常数:

const ONLY_PRODUCTS = 1;
const ONLY_DISCOUNTS = 2;
const BOTH = 3;
const BOTH_WITHOUT_SHIPPING = 4;
const ONLY_SHIPPING = 5;
const ONLY_WRAPPING = 6;
const ONLY_PRODUCTS_WITHOUT_SHIPPING = 7;
const ONLY_PHYSICAL_PRODUCTS_WITHOUT_SHIPPING = 8;


Answer 2:

恐怕$cart->getOrderTotal()因为不以这种方式工作$cart的订单confirmation.tpl到达时,变量被设置为null。 我们必须找到另一种方式...

我找到了一种方法是不是很聪明,但做的工作为止。 我们必须调用与id_cart参数车静态方法getTotalCart。 问题是,我们没有这个参数的任何Smarty的变种。 我发现的唯一办法就是从请求URI得到它。

因此,首先得到cart_id这种方式(使用regex_replace):

{assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}

然后调用getTotalCart方法与此参数:

{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}

因此,完整的代码是:

<script type="text/javascript"> 
    /* <![CDATA[ */ 

    {assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}

    {literal}
    var google_conversion_id = <my id>; 
    var google_conversion_language = "en"; 
    var google_conversion_format = "3"; 
    var google_conversion_color = "ffffff"; 
    var google_conversion_label = "<my label>"; 
    var google_conversion_value = {/literal}{$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}{literal};{/literal}
    /* ]]> */ 
</script> 


Answer 3:

这似乎为我的Prestashop v1.5.4工作

<script type="text/javascript">
/* <![CDATA[ */
{assign var='id_cart' value={$request_uri|regex_replace:"/.*id_cart=([\d]*).*/":"$1"}}
{assign var='total_cart' value={$cart->getTotalCart($id_cart)|regex_replace:"/[\D]+.*/":""}}
{literal}
var google_conversion_id = YOUR_CONVERSION_ID;
var google_conversion_language = "en"; // or your language iso
var google_conversion_format = "3"; // or your format
var google_conversion_color = "ffffff";
var google_conversion_label = "YOUR_CONVERSION_LABEL";
var google_conversion_value = {/literal}{$total_cart}{literal};{/literal}
/* ]]> */
</script>
<script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="//www.googleadservices.com/pagead/conversion/YOUR_CONVERSION_ID/?value={$total_cart}&amp;label=YOUR_CONVERSION_LABEL&amp;guid=ON&amp;script=0"/>
</div>
</noscript>


文章来源: Add Google AdWords Conversion Tracking (javascript) code into a PrestaShop / Smarty page