You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PrestaShop Smarty的header.tpl中获取订单总价配置Bing Ads脚本?

在PrestaShop Smarty模板中获取订单总价用于Bing Ads部署

没问题,我来帮你搞定这个事儿——毕竟要给Bing Ads传正确的转化数据,订单总价的获取得精准才行~

首先得明确:订单总价只有在订单确认/成功页面才能拿到有效数据,因为其他页面(比如首页、产品页)不存在已完成的订单对象。所以我们需要在header.tpl里添加带判断的脚本,避免在非订单页面报错,同时正确传入订单总价。

具体实现步骤:

  1. 先判断是否存在订单对象
    在PrestaShop的订单确认页,系统会自动把订单对象传递给Smarty模板,变量名为$order。我们得先判断这个变量是否存在,再加载Bing Ads脚本,不然非订单页面会报错。

  2. 选对合适的总价变量
    根据你的需求,有两个常用的总价变量可选:

    • {$order->total_paid}:用户实际支付的最终总价(包含运费、税费、折扣等所有调整项),这是最常用的转化价值字段。
    • {$order->total_paid_tax_excl}:不含税的订单总价,如果你需要统计税前金额可以用这个。
  3. 替换后的完整脚本
    将这段代码添加到你的header.tpl文件中:

    {if isset($order)}
    <script>
      window.uetq = window.uetq || [];
      window.uetq.push({ 
        'gv': {$order->total_paid}, 
        'gc': 'EUR'
      });
    </script>
    {/if}
    

针对PrestaShop 1.7+的补充说明

如果你用的是PrestaShop 1.7及以上版本,也可以用数组式的变量写法(和对象式效果完全一致):

{if isset($order)}
<script>
  window.uetq = window.uetq || [];
  window.uetq.push({ 
    'gv': {$order.total_paid}, 
    'gc': 'EUR'
  });
</script>
{/if}

额外提醒

  • 千万别漏了{if isset($order)}这个判断,否则在非订单页面Smarty会抛出变量不存在的错误。
  • 确保'gc'字段的货币代码和你的店铺默认货币一致,这里你用的是EUR,如果是其他货币要对应修改。

内容的提问来源于stack exchange,提问作者Luxm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:22:49