Проверьте UTM-теги в URL magento

Я пишу пользовательский код для magento, чтобы отслеживать UTM-теги в URL, и если заказ был размещен, мне нужно сохранить его в базе данных с URL-адресом реферера. Это мой код:

        <controller_action_predispatch>
<observers>
<refersource>
<type>singleton</type>
<class>refersource/observer</class>
<method>controllerActionPredispatch</method>
</refersource>
</observers>
</controller_action_predispatch>

В этом обозревателе я проверю, присутствует ли в URL-адресе тег utm, если это так, я сохраню теги и URL-адрес ссылки на сеанс клиента.

protected $_allowed_tags = array('utm_source','utm_medium','utm_term','utm_content','utm_campaign','refer_url');

public function controllerActionPredispatch($observer)
{

$params = Mage::app()->getRequest()->getParams();
$reffer_url = Mage::helper('core/http')->getHttpReferer();

if($reffer_url && strstr($reffer_url,'mysite') === false){
$utm_exist = false;
if ((isset($params['utm_source']) && $params['utm_source']) ||
(isset($params['utm_medium']) && $params['utm_medium']) ||
(isset($params['utm_content']) && $params['utm_content']) ||
(isset($params['utm_campaign']) && $params['utm_campaign'])
) {
$utm_exist = true;
}

if($utm_exist){
$params['refer_url'] = $reffer_url;
Mage::getSingleton('customer/session')->setReferrerData(serialize($params));
}
}
}

Следующий наблюдатель проверит, был ли размещен заказ, и сохранит данные для заказа.

       <sales_order_place_after>
<observers>
<refersource>
<type>singleton</type>
<class>refersource/observer</class>
<method>salesOrderPlaceAfter</method>
</refersource>
</observers>
</sales_order_place_after>

public function salesOrderPlaceAfter($observer)
{
$referrer_data = unserialize(Mage::getSingleton('customer/session')->getReferrerData());

if($referrer_data){
$order = $observer->getEvent()->getOrder();
if($referrer_data && is_array($referrer_data)){
foreach($referrer_data as $tag=>$value){
if(in_array($tag,$this->_allowed_tags)){
$order->setData($tag,$value);
}
}
$order->save();
}
Mage::getSingleton('customer/session')->unsReferrerData();
}
}

Необходимый файл уже создан в sales_flat_order. Все отлично работает, но есть некоторые проблемы. Когда мы видим в Google Analytics, мы видим пример около 50 заказов, которые сделали с этими UTM тегами и видим URL рефералов. Но в базе данных мы видим только 2-4 заказа с информацией о тэгах utm.

Кто-нибудь может объяснить, почему это происходит? благодарю вас!

1

Решение

Привет, мы используем это расширение для хранения информации:

http://www.magentocommerce.com/magento-connect/acquisition-source-grabber.html

если вы хотите, вы можете редактировать расширение. Мы сделали некоторые изменения, чтобы сохранить операционную систему, браузер его легко .. это расширение работает для вас.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]