2012-08-30 1 views
1

저는 PrestaShop 사이트를 운영 중이며 Google 애드워즈 및 전환 추적 기능과 통합하려고합니다. PrestaShop 코드는 Smarty 3에 있습니다.Google 애드워즈 전환 추적 (자바 스크립트) 코드를 PrestaShop/Smarty 페이지에 추가

이제 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으로 설정되어 있지만 총계 값도 여기에 올리겠습니다. 나는 $cart 객체에 getOrderTotal 전화를했다처럼

답변

1

는 같습니다 : 당신이 세금이나하지에 총을 얻으려면

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

첫 번째 매개 변수입니다.

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; 
0

내가 주문 confirmation.tpl에 도착하면 $cart 변수가 널 (null)로 설정되어 있기 때문에 $cart->getOrderTotal()이 방법을 작동하지 않습니다 두려워 : 두 번째 매개 변수는 Cart.php의 상수이다. 우리는 다른 방법을 찾아야 만합니다 ...

나는 현명하지는 않지만 지금까지 일을했습니다. id_cart 매개 변수를 사용하여 카트 정적 메서드 getTotalCart를 호출해야합니다. 문제는이 매개 변수에 현명한 변수가 없다는 것입니다. 내가 찾은 유일한 방법은 요청 URI에서 가져 오는 것입니다.

{$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> 

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

그런 다음이 매개 변수를 사용하여 getTotalCart의 메소드를 호출

그래서 먼저 cart_id이 방법 (사용 regex_replace)를 얻을
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> 
관련 문제