Я работаю над проектом Shopware 6, и мне нужно интегрировать дополнительный код JavaScript на страницу оформления заказа/завершения, чтобы сообщить о покупке сторонней службе или платформе.
Существующий код уже включает JavaScript для отслеживания конверсий с помощью Google Ads, но мне нужно добавить отдельную логику, чтобы передавать детали покупки в другой сервис.
Вот соответствующий код:
{% 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 %}
{% 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 %}
{% endblock %}
{% endblock %}
Детали покупки, которые мне нужно отправить, включают:
Может ли кто-нибудь подсказать мне, как правильно интегрировать дополнительный код JavaScript в существующий шаблон ветки?
Я не уверен, где именно разместить код и как получить доступ к деталям заказа с помощью переменных ветки.
Как поясняется в вопросе, существующий код включает JavaScript для отслеживания конверсий с помощью Google Ads. Принимая во внимание, что я хочу добавить код JavaScript на страницу успешной проверки (/checkout/finish), чтобы сообщить о покупке.
По сути, вы делаете то же самое, что уже сделано в вашем коде выше. Добавьте еще один {% block %}
, а внутри добавьте свой <script>
с помощью специального скрипта, отправляющего данные. Если файл выше уже расширен в вашей теме/плагине, вы можете сделать это прямо там. Если нет, расширьте шаблон еще раз.
Создайте новый файл с именем index.html.twig
в каталоге <plugin root>/src/Resources/views/storefront/page/checkout/finish/
.
Содержимое файла index.html.twig
:
{% sw_extends '@Storefront/storefront/page/checkout/finish/index.html.twig' %}
{% block layout_head_javascript_tracking_google_ads_after %}
{{ parent() }}
{% block block_name %}
<script>
// Write your code here
</script>
{% endblock %}
{% endblock %}
Используйте {{ dump(page.order) }}
, чтобы получить все переменные, доступные на этой странице.
Номер заказа - {{ page.order.orderNumber }}
Общая сумма (брутто) - {{ page.order.amountTotal }}
Общая сумма (нетто) - {{ page.order.amountNet }}
Валюта - {{ context.currency.shortName }}
Дополнительная документация, которая поможет вам:
Кажется, вы уже добавили JavaScript в шаблон. Что именно не работает?