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

如何在Shopware 6结账完成页集成额外JS上报订单至第三方服务

Shopware 6结账完成页第三方订单数据上报集成方案

一、代码放置位置

你可以将第三方上报代码直接添加到现有Google Ads追踪代码所在的layout_head_javascript_tracking_google_ads_after_finish代码块内,或在该块之后新增独立代码块。推荐和现有追踪逻辑放在同一区域,便于后续维护。

如果第三方上报不需要依赖Google Ads的启用状态,建议将代码放在{% if swagData.active and swagData.conversionLabel %}判断之外,确保无论Google Ads是否启用,订单数据都能正常上报。

二、Twig变量获取订单信息

所需的三类订单数据可直接通过Shopware预定义的Twig变量获取,注意使用escape('js')避免JavaScript语法错误:

  • 订单编号:page.order.orderNumber
  • 订单总额:根据需求选择page.order.amountNet(订单净额,不含税费)或page.order.amountTotal(订单总额,含税费)
  • 货币类型:context.currency.shortName(如USD、EUR等标准货币代码)

三、完整示例代码

{% sw_extends '@Storefront/storefront/page/checkout/finish/index.html.twig' %}

{% block layout_head_javascript_tracking_google_ads_after %}
    {{ parent() }}
    
    {% block layout_head_javascript_tracking_google_ads_after_finish %}
        {# 原有Google Ads转化追踪代码 #}
        {% if swagData.active and swagData.conversionLabel %}
        <script>
            window._tmGoogleAdsFns.push(function () {
                gtag('event', 'conversion', {
                    'send_to': '{{ swagData.conversionId }}/{{ swagData.conversionLabel|escape('js') }}',
                    'value': '{{ page.order.amountNet|escape('js') }}',
                    'currency': '{{ context.currency.shortName|escape('js') }}',
                    'transaction_id': '{{ page.order.orderNumber|escape('js') }}'
                });
            });
        </script>
        {% endif %}

        {# 新增第三方服务订单上报代码 #}
        <script>
            // 替换为第三方服务的实际上报逻辑
            function reportOrderToThirdParty(orderNumber, orderAmount, currency) {
                // 示例:发送请求到第三方API
                fetch('https://第三方服务接口地址', {
                    method: 'POST',
                    headers: {
                        'Content-Type': 'application/json'
                    },
                    body: JSON.stringify({
                        order_number: orderNumber,
                        total_amount: orderAmount,
                        currency: currency
                    })
                });
            }

            // 确保订单数据存在时执行上报
            if ({{ page.order is defined ? 'true' : 'false' }}) {
                reportOrderToThirdParty(
                    '{{ page.order.orderNumber|escape('js') }}',
                    '{{ page.order.amountTotal|escape('js') }}',
                    '{{ context.currency.shortName|escape('js') }}'
                );
            }
        </script>
    {% endblock %}
{% endblock %}

注意事项

  • 替换示例中的第三方服务接口地址和上报逻辑为实际需求
  • 根据第三方平台要求选择使用amountNet或amountTotal
  • 若第三方上报需要异步执行,可参考Google Ads的写法,将逻辑放入合适的异步队列中(如果有)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:00:09