1

PrestaShop サイトを運営しており、Google AdWords およびコンバージョン トラッキング機能と統合したいと考えています。PrestaShop コードは Smarty 3 にあります。

これで、Google の JS コードを tpl ファイルの末尾に配置できることがわかりました: order-confirmation.tpl。Googleコードは次のとおりです。

<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 を使用しており、{literal} タグの間に JS ブロック全体を含めようとしました。または中括弧をスペースで囲むだけでなく、スペースなしで、何でも動作するようです。

また、同じコンバージョン値が、googleadservices へのリンクのパラメーターであるセクションにあり、現在は 0 に設定されていますが、$total 値もそこに移動したいと考えています。

4

3 に答える 3

1

オブジェクトを呼び出す必要があったようですgetOrderTotal:$cart

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

最初のパラメーターは、税金を含む合計を取得するかどうかです。2 番目のパラメーターは、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;
于 2012-08-30T10:55:56.027 に答える
0

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>
于 2013-07-30T06:29:08.137 に答える
0

order-confirmation.tpl に到着したときに変数が null に設定されて$cart->getOrderTotal()いるため、残念ながらこの方法では機能しません。$cart別の方法を見つけなければなりません...

あまりスマートではない方法を見つけましたが、これまでのところ仕事をしています。id_cart パラメータを指定して 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> 
于 2013-05-13T14:11:40.027 に答える