Отслеживание заказа

#
Отслеживание заказа
Модуля отслеживания или функционала - без разницы особой - на hostcms нет такого как реализовано на сервисе http://mister-tvister.ru (пример: http://clip2net.com/s/2ipqO).

Данный функционал считаю очень полезным, так как позволяет проводить анализ на КАЧЕСТВО трафика и соответственно благодаря такому функционалу - намного легче определять какие пути продвижения дают эффект, а какие нет и на которые не стоить тратить своё время.

Надеюсь вы серьезно отнесетесь к данному вопросу, так как это один из ключевых моментов в пользу HostCms.
#
Re: Отслеживание заказа
FrostVS, подобная функциональность очень легко добавляется руками

Где-то в общем для всего сайта месте, например, в макете (а еще лучше в bootstrap.php или main_classes.php) при каждом запросе мы смотрим в реферрер и в сессию. В сессии мы храним значение реферрера, т.е. если у нас в сессия уже создана, и соответствующий элемент массива $_SESSION существует, то мы считаем, что у пользователя это просмотр уже как минимум второй страницы на сайте. Если сессия не создана или нужный нам элемент не объявлен, то получаем значение referrer и сохраняем его в сессию.

А в момент сохранения заказа просто добавляем эту информацию в комментарий к заказу - это делается изменением кода обработчиков ПС.

Вместо сессии можно (и, наверное, даже нужно) использовать куку.

Для HostCMS 5 я реализовывал такую штуку, могу попробовать выдрать пример, (если у меня доступы к тому проекту еще остались), для HostCMS не писал, но принцип тот же.
Заказов не беру. Консультирую редко.
#
Re: Отслеживание заказа
РУками это если есть мозги, а в программировании ни бум, бум ((
Вот с кукой наверное лучше и добавлять то нужно не в комент заказчика эти данные, а в отдельное поле (например источник), хотя конечно можно и в коментарий - после если вдруг что коментария заказчика.
Если для hostcms5 осталась ещё такая штука - попробуйте выдрать тот пример, если у вас доступы остались.
#
Re: Отслеживание заказа
FrostVS писал(а):
Вот с кукой наверное лучше и добавлять то нужно не в комент заказчика эти данные, а в отдельное поле (например источник), хотя конечно можно и в коментарий — после если вдруг что коментария заказчика.

Если мне не изменяет память, до добавлялось это в поле техникал инфо.
И в письме, приходящем к админу магазина приписывалась referrer-ссылка, и отдельными строками поисковик и поисковый запрос, по которому юзер пришел. Реализовано было на редакции Корпорация, хотя, если нам достаточно просто url referrer в явном виде, то можно на любой.
Доступы к коду проверю на днях.

Вам именно под v.5, да?
Заказов не беру. Консультирую редко.
#
Re: Отслеживание заказа
Да, сейчас с 5 работаем. Со временем может на 6 и перейдем, а сейчас пока так. Спасибо вам за ваше время, которое вы уделяете мне.
#
Re: Отслеживание заказа
Ну что же, я не забыл про свое обещание, и доступы у меня еще не протухли
А посему вот вам копипейст с работающего решения.

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

Для начала нам нужен код, который будет перехватывать данные о входе пользователя на сайт. На сайте, откуда я скопировал пример, он подключается в каждом макете, до доктайпа и тега <html>, но логичнее было бы вынести его еще выше - в main_classes.php, чтобы повысить процент отлова, да просто чтобы было удобнее.
// запускаем сессию, если ее нет
if (session_id() == '')
{
    @session_start();
}
// если в сессии еще не сохранен enter_url, то вероятнее всего, мы только что в первый раз вошли на сайт
if (!isset($_SESSION['enter_url']))
{
    
    // определим alias текущего сайта
    $current_alias = '';    
    $site = &singleton('site');
    $alias = $site->GetCurrentAlias(CURRENT_SITE);
    $alias_row = $site->GetAlias($alias);
    if ($alias_row)
    {
        $current_alias = $site->GetCurrentAlias($alias_row['site_id']);
    }
    // хотя вообще-то можно было просто сложить HTTP_HOST и REQUEST_URI
    
    // зададим enter_url сессии
    $_SESSION['enter_url'] = 'http://' . $current_alias . to_str($_SERVER['REQUEST_URI']);
    
    // сохраним в сессию реферрер
    $_SESSION['referrer'] = to_str($_SERVER['HTTP_REFERER']);

    // если у нас редакция с модулем "Счетчик" и модуль активен
    // то попытаемся определить поисковик, с которого пришел пользователь,
    // и поисковый запрос, по которому он пришел
    if (class_exists('counter'))
    {
        $counter = &singleton('counter');
        
        $search_query = $counter->IsSearchSystem(to_str($_SERVER['HTTP_REFERER']));
        if ($search_query)
        {
            $_SESSION['search_system'] = $search_query['search_system'];
            $_SESSION['search_query'] = $search_query['search_query'];
        } else
        {
            // если запрос и поисковик определить не удалось
            if ($_SESSION['referrer'] == '')            
            {
                // и если реферрер пуст,
                
                // то скорее всего пользователь набрал адрес руками или пришел по закладке в избранном.
                $_SESSION['typein_traffic'] = 'Адрес сайта набран вручную, или выбран из закладок браузера';
            }
        }
    }
}


Теперь, если дело дошло до оформления заказа, то нам надо сохранить эту информацию в заказ.
На сайте-доноре кода она сохранялось в поле "Данные об отправлении". Просто потому что это поле там было не нужно ни для чего другого.

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

Найдите в коде обработчика вызов метода ProcessOrder().
Обычно он окружен условием вида
// Если заказ еще не был оформлен
if ($_SESSION['last_order_id'] == 0)
{
   /* Оформляем заказ */
   $order_id = $shop->ProcessOrder($shop_id, $site_users_id, $system_of_pay_id, $order_row);
}


Прямо над этим условием вставьте следующий код:
if (isset($_SESSION['enter_url']))
{
    $order_row['shop_order_sending_info'] .= "\n" . 'Страница входа на сайт: ' . $_SESSION['enter_url'];

    if (isset($_SESSION['search_system']))
    {
        $order_row['shop_order_sending_info'] .= "\n" . 'Источник - ' . $_SESSION['search_system'];

        if (isset($_SESSION['search_query']))
        {
            $order_row['shop_order_sending_info'] .= "\n" . 'Поисковый запрос: ' . $_SESSION['search_query'];
        }
    } elseif (isset($_SESSION['typein_traffic']))
    {
        $order_row['shop_order_sending_info'] .= "\n" . 'Источник ' . $_SESSION['typein_traffic'];
    }

    if (isset($_SESSION['referrer']))
    {
        $order_row['shop_order_sending_info'] .= "\n" . 'Referrer: ' . $_SESSION['referrer'];
    }
}


Вот и все.
У вас должно получится примерно следующий результат: http://floomby.ru/s1/Aty8k/full/
Заказов не беру. Консультирую редко.
#
Re: Отслеживание заказа
Спасибо Большое. Надо обязательно сохранить, так как у меня далеко не Бизнес. Жаль, что только в бизнес эта фишка работает ((

Взгляните пожалуйста - http://clip2net.com/s/2j7az
#
Re: Отслеживание заказа
FrostVS писал(а):
Жаль, что только в бизнес эта фишка работает

FrostVS, читайте мое сообщение внимательнее
Kotoff писал(а):
Решение будет работать на любой редакции, но для получения дополнительных плюшек в виде определения поисковой системы и запроса, по которому пришел пользователь требуется редакция не ниже чем Бизнес.

То чего вам достаточно как раз таки будет работать даже в Халяве.
Заказов не беру. Консультирую редко.
#
Re: Отслеживание заказа
Тогда не понимаю каких ещё дополнительных плюшек)) Ну ладно - спасибо за код, будем пробовать. Надеюсь не только мне помогли.
#
Re: Отслеживание заказа
FrostVS писал(а):
Тогда не понимаю каких ещё дополнительных плюшек
FrostVS, да прочитайте же вы наконец мои слова до конца!
Kotoff писал(а):
для получения дополнительных плюшек в виде определения поисковой системы и запроса, по которому пришел пользователь требуется редакция не ниже чем Бизнес.

Первая дополнительная плюшка - это строка "источник: yandex.ru" на моем скриншоте
Вторая дополнительная плюшка - это строка "поисковый запрос: НАСОС АГРЕГАТ КМ 80-65-160" на моем скриншоте.
В редакциях ниже чем Бизнес этих двух строк (и _только_ этих двух строк) не будет.

Еще непонятные для вас моменты остались?
Заказов не беру. Консультирую редко.
Авторизация