Шаг 4. Размещение компонентов

Компоненты модуля нужно обязательно установить в публичной части сайта, чтобы выводился город пользвоателя и была возможность его смены. Подробнее о компонентах модуля

В первую очередь нужно установить компонент «Город + popup» именно он обеспечивает показ окна смены города и связь с другими комопнентами модуля - вывод города, вывод информации о доставке, вывод геозависимых сообщений.

Здесь приведен код которыйвам нужно просто скопировать и вставить в шаблон сайта. 
Комопнент «Город + popup»  размещаем в подвале сайта и скрывем вывод города или размещаем в шапке сайта. Ниже пример для размещения в шапке сайта.

Если вы сами не владеете соответствующим навыками, напишите нам на почту, указанную внизу страницы, поможем бесплатно.

<? $APPLICATION->IncludeComponent( "bxmaker:geoip.city",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CITY_SHOW" => "Y",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "N",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "N",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город",
        "SEARCH_SHOW" => "Y",
        "FAVORITE_SHOW" => "Y",
        "CITY_COUNT" => "30",
        "FID" => "1",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "POPUP_LABEL" => "МЫ ДОСТАВЛЯЕМ ПО ВСЕЙ РОССИИ!",
        "INPUT_LABEL" => "Введите название города...",
        "MSG_EMPTY_RESULT" => "Ничего не найдено"
    ),
    false
); ?>


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

Дальше делать не обязательно, минимум сделан.


Если вам нужно вывести в нескольких местах город, то можно разместить этот же компонент в подвале сайта, а в нужных местах использовать компонент «Вывод города»


<?php $APPLICATION->IncludeComponent( "bxmaker:geoip.city.line", 
    ".default", 
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "CITY_LABEL" => "Ваш город:",
        "QUESTION_SHOW" => "Y",
        "QUESTION_TEXT" => "Ваш город<br/>#CITY#?",
        "INFO_SHOW" => "Y",
        "INFO_TEXT" => "<a href=\"#\" rel=\"nofollow\" target=\"_blank\">Подробнее о доставке</a>",
        "BTN_EDIT" => "Изменить город"
    ),
    false
);?>


Вы можете указать у нужных тегов класс js-bxmaker__geoip__city-name-global , в который автоматически подставится город  и при клике по которому, ппоявится окно для смены города, на странице обязательно должен быть размещен компонент bxmaker:geoip.city (Город + popup)


Далее в карточке товара можно вывести варианты доставки товара до города пользователя - название, сроки, стоимость.
Компонент можно вывести сколько угодно раз на странице для разных товаров, например даже в списке товаров.  Важно  передать идентификатор товара. 

Также если вы размещаете компонент в карточке товара, у которого етсь торговые предложения, то в момент смены торгового предложения нужно в javascript вызвать метод перезагрузки блока. Подробнее об этом написнао в разделе JS классы модуля


// Для размещения  на странице, в шаблокне сайта и тд.. где нет родительского компонента

<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
   false
); ?>

// Для размещения в шаблоне карточки товара, в области которая является шаблоном другого компоненте, например bitrix:catalog.element

<? $APPLICATION->IncludeComponent( "bxmaker:geoip.delivery",
    ".default",
    array(
        "COMPONENT_TEMPLATE" => ".default",
        "CACHE_TYPE" => "A",
        "CACHE_TIME" => "3600",
        "COMPOSITE_FRAME_MODE" => "A",
        "COMPOSITE_FRAME_TYPE" => "AUTO",
        "PRODUCT_ID" => "8441",
        "IMG_SHOW" => "Y",
        "PROLOG" => "Способы доставки в ваш город - #CITY#",
        "EPILOG" => "Бесплатная доставка от 5000 руб."
    ),
    $component
); ?>




Для вывода геозависимых сообщений,  например разные номера телефон для разных городов и регионов, нужно использовать комопнент «Геозависимые сообщения».  Сообщеняия могут быть разных типов, здесь написнао как добавить геозависимое сообщение.  

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


//В административном разделе тип сообщения - PHONE, тип может быть и любой другой, под ваши задачи
//для вывода указываем тип PHONE
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'));

// для вывода в шаблоне кэшируемого компонента
$APPLICATION->IncludeComponent('bxmaker:geoip.message', '', array('TYPE' => 'PHONE'), $component);


Если вы размещаете комопненты в шаблоне других компонентов, то для редактирования параметров проще сначала разместить в публичной части сайта на странице, задать парамтеры, сохранить и затем скопировать код и вставить в шаблон, указав в качестве 3го параметра $component.