我正在尝试通过GTM在商品结帐/收益页面上整合Google商家代码。 Google Merchant代码为:
<script>
window.renderOptIn = function() {
window.gapi.load('surveyoptin', function() {
window.gapi.surveyoptin.render(
{
"merchant_id": 12345678,
"order_id": "ORDER_ID",
"email": "CUSTOMER_EMAIL",
"delivery_country": "COUNTRY_CODE",
"estimated_delivery_date": "YYYY-MM-DD"
});
});
}
</script>
代码需要一些变量(order_id,email,delivery_country,estimated_delivery_date)。但是这些变量值只能通过Magento / Php代码检索为: var gmorderid =&#34; loadByIncrementId($ this-&gt; getOrderId()) - &gt; getId(); ?&GT;&#34 ;;
var gmcemail = "<?php echo Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId())->getCustomerEmail(); ?>";
var gmcountry = "<?php echo Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId())->getBillingAddress()->getCountry(); ?>";
var gmdate = "<?php echo date('Y-m-d', strtotime('+5 days',Mage::getModel('core/date')->timestamp())); ?>";
</script>
我已经尝试通过php echo语句将这些变量放在GTM代码中,如上所示。但是当触发GTM标记时,php代码将转换为计划文本。作为一个解决方案,我在页面html中定义了变量,并在GTM代码中插入这些变量,如:
"order_id": gmorderid, //doesnot work. Variable shown as plan text when the code is executed
"order_id'":'+ gmorderid +'"', // also doesnot work, Variable shown as plan text when the code is executed
"order_id'":'+ {{gmorderid}} +'"', // GTM variable format, this also doesnot work
如何在上面的GTM google商家代码中使用这些变量值,以便GTM代码获取打开页面时所需的所有值?
答案 0 :(得分:0)
您应该将值保存在全局JavaScript变量或dataLayer中,然后使用GTM JavaScript变量或dataLayer变量检索这些值。
例如,使用您的后端创建全局JavaScript变量order_number并为其指定值12345。
然后在GTM中使用JavaScript变量类型创建一个新变量。此变量应从order_number全局JS变量获取值。假设您将此GTM变量命名为CJS - order_number。
现在您创建自定义HTML标记并使用刚刚创建的GTM JS变量来从order_number全局JS变量传递所需的值。您可以使用{{CJS - order_number}}之类的双花括号表示法来执行此操作。此表示法仅适用于内部GTM变量。
答案 1 :(得分:0)
在Magento (在GTM代码段之后添加js)
dataLayer.push({
'order_id': '<?php echo $this->getOrderId(); ?>',
'email': '<?php echo Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId())->getCustomerEmail(); ?>',
'delivery_country': '<?php echo Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId())->getBillingAddress()->getCountry(); ?>',
'estimated_delivery_date': '<?php echo date('Y-m-d', strtotime('+5 days',Mage::getModel('core/date')->timestamp())); ?>'
});
在Google跟踪代码管理器中: