Конечно же вы используете рекламу своих товаров и хотите отслеживать, по какому источнику рекламы пришел к вам заказ. При переходе из всех источников к ссылке на товар добавляются utm-метки, по которым, как раз и видно, из какого источника пришел покупатель.
При входе пользователя с utm-меткой на сайт необходимо эту метку где-то сохранить. Для этих целей подходят или куки (если пользователь дал вам согласие на их использование), или сессия пользователя. Рассмотрим вариант с куками, т.к. он более надежный (вариант проверки согласился ли пользователь на использование куков оставлю вне этого поста).
В обработчиках событий сайта добавляем обработчик подключения пролога "OnBeforeProlog":
$eventManager = \Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler('main', 'OnBeforeProlog', array('initEvents', 'OnBeforeProlog')); class initEvents { const UTMS = [ 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'utm_position', 'utm_matchtype', 'utm_placement', 'utm_network', ]; function OnBeforeProlog() { $context = Application::getInstance()->getContext(); $request = $context->getRequest(); $isAdminSection = $request->isAdminSection(); if (!$isAdminSection) { foreach (self::UTMS as $key) { if(isset($_GET[$key]) && strlen($_GET[$key])>0){ $cookie = new \Bitrix\Main\Web\Cookie($key, $_GET[$key]); $cookie->setDomain(домен сайта); Application::getInstance()->getContext() ->getResponse()->addCookie($cookie); setcookie($key, $cookie->getValue(), time()+60 * 60 * 24 * 30, '/',$cookie->getDomain()); //если по какой-то причине не сработало сохранение в куки в формате D7 } } } } }
После этого создадим в свойствах заказа все необходимые метки (для всех типов пользователей). Самое главное, символьный код свойства должен совпадать с названием нужной метки.
Далее в событии начала сохранения заказа добавляем сохранение этих меток (при их наличии) в заказ:
$eventManager->addEventHandler('sale','OnSaleOrderBeforeSaved',array('initEvents','saleOrderBeforeSaved')); function saleOrderBeforeSaved(Main\Event $event) { /** @var \Bitrix\Sale\Order $order */ $order = $event->getParameter("ENTITY"); /** @var \Bitrix\Sale\PropertyValueCollection $propertyCollection */ $propertyCollection = $order->getPropertyCollection(); $propsData = []; /** * Перебираем свойства и изменяем нужные значения * @var \Bitrix\Sale\PropertyValue $propertyItem */ foreach ($propertyCollection as $propertyItem) { $propCode = $propertyItem->getField("CODE"); if(in_array($propCode,self::UTMS)){ if(isset($_COOKIE[$propCode]) && strlen($_COOKIE[$propCode])>0){ $propertyItem->setValue($_COOKIE[$propCode]); } } } }
Разработка сайта
Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...
Сопровождение сайта
Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение
Работы по сайту
Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.