В общем хочу загрузить из файла местоположения.
Открыл документацию — предлагают заливать файл такого вида
CODE;PARENT_CODE;TYPE_CODE;NAME.RU.NAME;EXT.YAMARKET.0;EXT.ZIP.0
kl00001;;REGION;Калининградская область;10857;
kl00011;kl00001;CITY;Калининград;22;236020
kl00021;kl00001;SUBREGION;Гусевский район;;
kl00022;kl00021;CITY;Гусев;20138;238050
kl00031;kl00001;SUBREGION;Балтийский район;;
kl00032;kl00031;CITY;Приморск;20578;238510
kl00033;kl00031;CITY;Балтийск;10858;238520
kl00041;kl00001;SUBREGION;Зеленоградский район;;
kl00042;kl00041;CITY;Зеленоградск;20139;238326
kl00051;kl00001;SUBREGION;Краснознаменский район;;
kl00052;kl00051;CITY;Краснознаменск;20140;238730
kl00061;kl00001;SUBREGION;Неманский район;;
kl00062;kl00061;CITY;Неман;20141;238710
kl00071;kl00001;SUBREGION;Гвардейский район;;
kl00072;kl00071;CITY;Неман;20136;238210
kl00081;kl00001;SUBREGION;Багратионовский район;;
kl00082;kl00081;CITY;Багратионовск;20135;238420
Создал страну с кодом np
потом загрузил файл с тестовым содержимым
CODE;PARENT_CODE;TYPE_CODE;NAME.RU.NAME
npr1;np;REGION;test area 1
npr2;np;REGION;test area 2
В принципе закинуло эти записи — но он не в ветке страны — а просто в списке местоположений. То есть родителем для них никого нет.
Но я же код родителя указал.
В чем может быть причина?
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Импорт местоположений
Импорт местоположений |
Загрузка местоположений в систему, а также очистка существующих выполняется на странице Магазин > Настройки > Местоположения > Импорт местоположений.
На закладке Импорт местоположений осуществляется импорт местоположений в систему в соответствии с заданными параметрами:
-
Источник местоположений — выбирается источник загрузки местоположений: с удаленного сервера или из файла.
При загрузке местоположений с сервера необходимо отметить нужные вам страны, области и/или регионы для загрузки.
Примечание: для местоположений 2.0 на сервере хранится отдельная обновленная база, отличная от базы местоположений
старой схемы.
Курс Магазин до конвертации (до версии 15.0).Подробнее…
Причем серьезно расширена база для России (местоположения можно загружать вплоть до улиц).При загрузке местоположений из файла следует с помощью кнопки Добавить файл указать файл с данными, а также заранее вручную создать необходимые
типы местоположений
Создадим, например, тип местоположения Улица. В форме создания (редактирования) типа обязательно указываем символьный код, названия для всех языков интерфейса и задаем индекс сортировки для определения положения нового типа в списке:Подробнее…
и
внешние сервисы.
Управление внешними сервисами, необходимыми для работы с кодами местоположений, осуществляется на странице Магазин > Настройки > Местоположения > Внешние сервисы.Подробнее…
-
Почтовые индексы (ZIP-коды) — при отмеченной опции автоматически для местоположений будут заполнены почтовые индексы.
Примечание: на данный момент индексы загружаются только для России (используется база данных ФИАС).
- Коды Яндекс.Маркет — при отмеченной опции для местоположений будут заполнены коды Яндекс.Маркет, которые нужны при интеграции с Яндекс.Маркетом и расширяют возможности по доставке.
-
Загружать местоположения до — выбирается до какого типа местоположений (включительно) осуществлять загрузку данных.
Примечание: загрузка до улиц возможна только для России.
- Набор местоположений — выбирается набор местоположений, который нужно загрузить: стандартный (только крупные регионы и города) или расширенный (полный импорт с учетом мелких городов, сел и т.д.).
- Не загружать округа — при отмеченной опции местоположения типа Округ не будут загружаться в систему. Таким образом, местоположения типа Область будут дочерними непосредственно для местоположений типа Страна.
-
Удалить все существующие местоположения — при отмеченной опции будут удалены все существующие местоположения в системе.
Обратите внимание! В этом случае местоположения будут удалены, даже если они фигурируют в адресах существующих заказов.
- Длина шага, секунды — указывается длина одного шага в секундах.
- Поддерживать структурную целостность — при отмеченной опции будет поддерживаться структурная целостность местоположений. Таким образом, если некоторое местоположение А уже есть в системе, а затем импортируется более крупное по отношению к нему местоположение Б, то автоматически имеющееся местоположение А будет привязано к новому местоположению Б.
Запуск процесса импорта осуществляется по кнопке Начать импорт.
Важно! Загрузка местоположений — это достаточно длительный процесс, который в зависимости от количества загружаемых данных и мощности вашего хостинга может занять от нескольких минут до нескольких часов. Поэтому импорт данных рекомендуется выполнять в период минимальной нагрузки на сервер.
На закладке
Очистить список местоположений
выполняется очистка всех имеющихся в системе местоположений:
Важно! Не рекомендуется очищать местоположения на рабочем проекте. Будут удалены все местоположения, даже если они фигурируют в адресах
существующих заказов
Местоположения также будут удалены и в заказах, что вызовет некорректную работу, например, служб доставки.
.
Документация по теме: |
- Пример файла для загрузки местоположений
Назад в раздел
Подписаться на новые материалы раздела:
Проблемы со стоимостями доставки
- Внимательно ознакомьтесь с разделом документации “Особенности расчета стоимости доставки”: в нем указано как считается вес и габариты заказа. Проверьте заданы ли размеры и вес у товаров заказа, если нет, обратите внимание какие габариты по умолчанию заданы в настройках модуля.
- Убедитесь, что вы сравниваете стоимость по одному и тому же тарифу: разные тарифы могут отличаться по стоимости и сравнивать их “в лоб” нельзя.
- Проверьте, что у отправителя по умолчанию указано корректное местоположение, а также что при проверке в ЛК вы выбираете этот же населенный пункт.
- Проверьте не указаны ли наценки в настройках обработчика службы доставки, либо его профилях: их нужно учеть при сверке. Равно как и Правила работы с корзиной, модифицирующие посчитанную стоимость доставки, если такие есть на вашем сайте.
- Убедитесь, что вы работаете с “боевыми” данными для авторизации, на основном сервере DPD.
- Проверьте, что используется именно Автоматизированный обработчик службы доставки, как указано в разделе документации “Настройка”.
- Проверьте, что добавлен отправитель по умолчанию и у него указано корректное местоположение (город, либо село, деревня и т.п.).
- Убедитесь, что был произведен Импорт внешних данных.
- Убедитесь, что вы указываете корректное местоположение получателя: город, село, деревню, а не район, область или страну: расчет стоимости доставки через АПИ DPD возможен исключительно до конкретного населенного пункта.
- Проверьте какие размеры и вес указаны у товаров заказа: при тяжелых, либо крупноразмерных товарах может оказаться, что доставка данного заказа невозможна ни одним из активных тарифов.
- Проверьте, что в настройках модуля в селекторе “Укажите тарифы которые НЕ будут использоваться при расчетах” отмечены не все тарифы, попробуйте временно убрать это ограничение по тарифам.
- Попробуйте отключить тестовый режим, если он был включен.
- Сбросьте кеш Битрикса (как вариант, при использовании файлового кеша сотрите со всем содержимым папку /bitrix/cache/ipol.dpd/ через Управление структурой в админке Битрикса).
- Если используется самописное, либо существенно модифицированное оформление заказа, создайте тестовую страницу с штатным компонентом оформления заказа bitrix:sale.order.ajax с шаблоном .default и проверьте расчет доставки на ней.
Есть несколько вариантов решения, в зависимости от требований.
- Чтобы добавить фиксированное количество дней к сроку доставки, используйте опцию модуля “Увеличить срок доставки на (дн.)”.
- Чтобы установить фиксированную стоимость доставки для любых заказов, вне зависимости от их содержимого и местоположения получателя, используйте опцию модуля “Стоимость доставки по умолчанию”.
- Задать наценку в %, либо фиксированную, можно в настройках обработчика службы доставки, либо ее профилях. Учтите, что эти наценки реализует сам Битрикс, а не модуль, применяются они последовательно (если указаны и в обработчике, и в профиле — применятся обе). Использование % наценки может привести к появлению копеек в стоимости доставки. Округление опцией модуля “Округлять до единиц” не поможет, поскольку наценки Битрикс применяет уже после получения рассчитанной стоимости доставки от модуля.
- Можно воспользоваться Правилами работы с корзиной в Рабочий стол -> Маркетинг -> Товарный маркетинг -> Правила работы с корзиной. Обратите внимание на Приоритет применимости и Индекс сортировки у ваших правил, убедитесь, что они применяются когда необходимо и не “перебивают” другие правила. Ознакомьтесь с документацией Битрикса https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=8425&referer1=clman2lesson
- Через обработчик события модуля onCalculate (см. раздел документации “События модуля (для программистов)”) можно реализовать изменение стоимости и срока доставки по практически любой логике. Учтите, что для его реализации потребуется помощь программиста.
Проблемы в оформлении заказа
- Убедитесь, что в Параметрах авторизации в настройках модуля указаны корректные данные, тестовый режим отключен (либо для него указаны полученные от сотрудников DPD тестовые авторизационные данные).
- Проверьте, что добавлен отправитель по умолчанию и у него указано корректное местоположение (город, либо село, деревня и т.п.).
- Проверьте, что в настройках модуля в селекторе “Укажите тарифы которые НЕ будут использоваться при расчетах” отмечены не все тарифы, попробуйте временно убрать это ограничение по тарифам.
- Убедитесь, что был произведен Импорт внешних данных.
- Проверьте настройки свойства заказа с типом Местоположение [LOCATION]: у него должна быть обязательно отмечена галка “Использовать как местоположение для расчета стоимости доставки”.
- Выберите для тестов небольшой, малогабаритный товар (например, размером порядка 10 * 10 * 10 см и весом 1 кг), местоположением получателя указывайте крупные города. Если для него служба доставки отображается и доставка рассчитывается, проверьте какие размеры и вес указаны у товаров заказа: при тяжелых, либо крупноразмерных товарах может оказаться, что доставка данного заказа невозможна ни одним из активных тарифов.
- Проверьте активность у службы доставки и ее профилей.
- Проверьте, что используется именно Автоматизированный обработчик службы доставки, как указано в разделе документации “Настройка”.
- Проверьте выставленные ограничения у службы доставки и ее профилей.
- Проверьте доступность службы доставки в настройках платежных систем.
- Убедитесь, что на сервере установлена PHP библиотека SOAP, руководствуясь пояснениями в разделе документации “Включение функционала”.
- Новый компонент: В параметрах компонента оформления заказа bitrix:sale.order.ajax необходимо поставить опцию “Когда рассчитывать доставки с внешними системами расчета” в “Рассчитывать сразу”. Учтите, что это увеличит время генерации страницы.
- Старый компонент: В параметрах компонента оформления заказа bitrix:sale.order.ajax необходимо поставить галочку “Рассчитывать стоимость доставки сразу”.
За выбор местоположений (региона доставки) на странице оформления заказа отвечает классификатор местоположений Битрикса: Рабочий стол -> Магазин -> Настройки -> Местоположения -> Список местоположений. Именно из его содержимого покупатель выбирает населенный пункт, куда требуется доставка заказа. Модуль Интеграции с DPD никак не меняет и не расширяет этот классификатор.
Внимательно изучите пояснения в разделе документации “Настройка”, блоки “Местоположения” и “Импорт внешних данных”.
Если вы производили Импорт местоположений и добавились новые населенные пункты (допустим, по РФ были только города, а загрузили классификатор до сёл включительно), либо импортировали поддерживаемую модулем страну, которой ранее не было, необходимо произвести Импорт внешних данных.
- Убедитесь, что вы выбираете местоположения поддерживаемой модулем страны: населенные пункты РФ, Беларуси, либо Казахстана. Работа с другими странами на данный момент не поддерживается.
- Обязательно сбросьте кеш: либо очистите весь кеш Битрикса через Рабочий стол -> Настройки -> Настройки продукта -> Автокеширование -> Очистка файлов кеша. Либо, при использовании файлового кеша, сотрите со всем содержимым папку /bitrix/cache/ipol.dpd/ через Управление структурой в админке Битрикса.
- Выполните Импорт внешних данных, следуя пояснениям в разделе документации “Настройка”, блоки “Импорт внешних данных” и “Местоположения”.
Воспользуйтесь функционалом Ограничений. Ограничения по местоположению и многие другие типы ограничений можно настроить на вкладке Ограничения у обработчика службы доставки, либо конкретного профиля. Это штатные возможности Битрикса. Рекомендуем следовать документации Битрикса https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=7330&LESSON_PATH=3912.4580.4828.3071.7330
Чаще всего причиной подобных ошибок является не указанный Отправитель по умолчанию, либо у него не выбрано Местоположение в адресе, либо не задан терминал сдачи отправлений.
Убедитесь, что в настройках модуля DPD Рабочий стол -> Настройки -> Настройки продукта -> Настройки модулей -> Интеграция с DPD на вкладке “Отправитель” все настроено корректно. Сверьтесь с разделом документации “Настройка”, блок “Отправитель”.
Это ошибка Битрикса. При применении изменений все сохранится корректно.
Проблемы с виджетом пунктов самовывоза
Кнопка открытия виджета пунктов самовывоза прикрепляется модулем сразу же после текста со сроком доставки. Фактически, срок доставки, тариф, кнопка открытия виджета и служебные инпуты модуля (в них хранится информация о выбранном тарифе, точке выдачи и т.п.) — это единое целое и к шаблону компонента оформления заказа (обычно bitrix:sale.order.ajax) от самого компонента все это поступает как значение срока доставки.
-
Проверьте, что срок доставки выводится. Иногда разработчики шаблонов компонента оформления заказа его убирают (отмечаем, что на стандартных шаблонах компонента оформления заказа bitrix:sale.order.ajax срок доставки выводится всегда), это и является причиной “пропадания” кнопки.
-
Если используется самописное, либо существенно модифицированное оформление заказа, создайте тестовую страницу с штатным компонентом оформления заказа bitrix:sale.order.ajax с шаблоном .default и проверьте сохраняется ли проблема на ней. Если нет, вам следует обратиться к разработчикам кастомизированного оформления заказа для дальнейшей диагностики.
-
Иногда блок со сроком доставки визуально скрывают от покупателя через CSS стили, вместе с этим “пропадает” и кнопка открытия виджета. Как вариант решения, в этом случае можно добавить в шаблон страницы оф. заказа “бутафорскую” кнопку открытия виджета, которая будет “кликать” на штатную кнопку с помощью JS, например так: BX.fireEvent( document.querySelector(’.DPD_openTerminalSelect’), ‘click’);
Данные о точках самовывоза виджет загружает по AJAX запросу, при открытии виджета.
-
Убедитесь, что выключен Режим правки в Панели администрирования сайта (ползунок в правом верхнем углу). При включенном режиме правки ядро Битрикса добавляет компонентам на странице сайта свою “обвязку” для возможности настройки и редактирования. Виджет точек самовывоза это тоже компонент. Включение режима правки “ломает” содержимое ответа на AJAX запрос виджета: к JSON с данными о точках самовывоза Битрикс добавляет свой HTML. Выключите режим правки, либо игнорируйте проблему: обычные покупатели доступа к режиму правки не имеют и с этой проблемой не столкнутся в принципе.
-
Откройте страницу мой.сайт/bitrix/components/ipol/ipol.dpdPickup/ajax.php . Вы должны увидеть что-то подобное
Если вы видите шаблон сайта и форму авторизации, проверьте права доступа на папку компонента виджета /bitrix/components/ipol/ipol.dpdPickup/ и все ее содержимое: скорее всего для незарегистрированных пользователей закрыт доступ к ней.
-
Откройте консоль браузера (F12), переключитесь на вкладку Network. Откройте виджет пунктов самовывоза. В консоли появится запрос к /bitrix/components/ipol/ipol.dpdPickup/ajax.php . Обратите внимание на его Status: должен быть 200. Если Status 302 и т.п., кликните на запрос в консоли браузера и посмотрите вкладку Headers: скорее всего запрос был перенаправлен на другой URL. Проблема возникает, если в перенаправленном запросе отличается регистр символов (например, все строчные), т.к. в названии компонента ipol.dpdPickup есть как строчные, так и заглавные буквы. В этом случае обратитесь к поддержке вашего сайта для корректировки правил редиректов, либо добавления исключения редиректов для папки компонента виджета ПВЗ.
-
Проверьте нет ли JS ошибок в консоли браузера, возникающих непосредственно после открытия виджета ПВЗ. Если есть, их следует устранить.
-
Проверьте настройки свойства заказа “Адрес доставки” (или аналогичного по смыслу), открыв нужное свойство в Рабочий стол -> Магазин -> Настройки -> Свойства заказа -> Список свойств. Свойство должно быть активное, не служебное, строкового типа, а на его вкладке настроек “Привязка свойства” в “Службы доставки” либо не отмечено ничего, либо выбраны и профили службы доставки DPD, помимо прочего.
-
Убедитесь, что в настройках модуля DPD Рабочий стол -> Настройки -> Настройки продукта -> Настройки модулей -> Интеграция с DPD на вкладке “Получатель” в опции “Cвойство, куда будет сохранен выбранный пункт самовывоза” для каждого типа плательщика выбрано соответствующее свойство заказа, куда будет подставляться адрес выбранной точки самовывоза.
-
Если используется самописное, либо существенно модифицированное оформление заказа, создайте тестовую страницу с штатным компонентом оформления заказа bitrix:sale.order.ajax с шаблоном .default и проверьте сохраняется ли проблема на ней. Если нет, вам следует обратиться к разработчикам кастомизированного оформления заказа для дальнейшей диагностики.
Проблемы в административной части
-
Если заказ был оформлен клиентом, с публичной страницы оформления заказа (обычно это компонент bitrix:sale.order.ajax), выполните рекомендации из раздела помощи “Проблемы с виджетом пунктов самовывоза” / “Адрес выбранной точки самовывоза не подставляется в “Адрес доставки””.
-
Если заказ оформлен менеджером из админки сайта, либо создан каким-либо скриптом, для такого сценария выбора пункта самовывоза на карте и последующего сохранения его адреса в свойство заказа Битрикса не предусмотрено. Выбрать нужную точку выдачи можно будет непосредственно перед отправкой заявки в DPD, в форме “Доставка DPD”.
- Убедитесь, что указано корректное местоположение: город, село, деревня, а не район, область или страна: расчет стоимости доставки через АПИ DPD возможен исключительно до конкретного населенного пункта.
- Проверьте настройки свойства заказа с типом Местоположение [LOCATION]: у него должна быть обязательно отмечена галка “Использовать как местоположение для расчета стоимости доставки”.
- Проверьте какие размеры и вес указаны у товаров заказа: при тяжелых, либо крупноразмерных товарах может оказаться, что доставка данного заказа невозможна ни одним из активных тарифов.
- Проверьте, что в настройках модуля в селекторе “Укажите тарифы которые НЕ будут использоваться при расчетах” отмечены не все тарифы, попробуйте временно убрать это ограничение по тарифам.
- Попробуйте отключить тестовый режим, если он был включен.
- Убедитесь, что вы находитесь на странице просмотра заказа Битрикса (sale_order_view.php или sale_order_detail.php), а не редактирования заказа (sale_order_edit.php) или иных страницах админки.
- Проверьте в настройках модуля значение опции “Отображать кнопку “Доставка DPD””, если выбрано “Только у заказов с доставкой DPD”, убедитесь, что в Отгрузке заказа Битрикса выбран профиль обработчика службы доставки именно от модуля DPD. Как вариант, измените значение опции “Отображать кнопку “Доставка DPD”” на “Всегда”.
- Убедитесь, что на странице нет PHP ошибок: прокрутите ее до конца, не должно быть никаких сообщений об ошибках.
- Убедитесь, что в консоли браузера (F12) нет ошибок JavaScript.
- Убедитесь, что все необходимые поля формы заполены корректно, на всех вкладках.
- Проверьте в настройках модуля корректность указанных Параметров авторизации, отключите Тестовый режим, если только вы не используете полученные от сотрудников DPD тестовые учетные данные.
- Убедитесь, что в настройках модуля отключен Тестовый режим, а в Параметрах авторизации указан Клиентский номер DPD и Ключ авторизации именно от того договора DPD, с доступами от которого вы зашли в ЛК на сайте DPD.
- Проверьте, что в настройках модуля на вкладке “Статус” отмечена опция “Выставлять принятым заказам идентификатор отправления”.
- Проверьте, что в настройках модуля на вкладке “Статус” отмечена опция “Отслеживать статусы заказов в DPD”.
- Убедитесь, что на вашем сайте нет ошибок в работе технологии агентов. Для этого воспользуйтесь Проверкой системы из раздела админки Битрикса Рабочий стол -> Настройки -> Инструменты -> Проверка системы.
- Убедитесь, что агент IpolhDPDAgents::checkOrderStatus(); активен и регулярно исполняется:
Прочие вопросы
- Воспользуйтесь кнопкой “Запустить импорт” на странице настроек модуля Рабочий стол -> Настройки -> Настройки продукта -> Настройки модулей -> Интеграция с DPD. Либо, как вариант, откройте страницу /bitrix/admin/ipolh_dpd_load_external_data.php
Используйте компонент виджета точек самовывоза ipol:ipol.dpdPickup с шаблоном .default, добавив его на нужную страницу сайта через Визуальный редактор.
Виджет пунктов самовывоза это компонент. Если ваша задача не решаема за счет CSS стилей, вы можете модифицировать шаблоны компонента ipol:ipol.dpdPickup, скопировав его в пространство имен вашего сайта. Учтите, что для подключаемого в публичном оформлении заказа шаблона строго обязательно название order, оно “зашито” в модуль и модифицированный шаблон с другим названием будет проигнорирован, а подключится стандартный.
Также обращаем ваше внимание, что при обновлениях модуля кастомизированный шаблон / компонент перестанет обновляться. Вопросы поддержки и актуализации его кода лягут на разработчиков модифицированного варианта виджета.
В админке Битрикса перейдите в раздел Рабочий стол -> Marketplace -> Установленные решения и в таблице “Доступные решения” найдите “Интеграция с DPD (ipol.dpd)”. В колонке “Версия” указана установленная на вашем сайте версия модуля.
Модуль обновляется штатным способом, через Маркетплейс Битрикса. Для этого необходимо, чтобы лицензия Битрикса на вашем сайте была активна. В противном случае Битрикс не разрешает скачивать обновления из МП.
В админке Битрикса перейдите в раздел Рабочий стол -> Marketplace -> Установленные решения и в таблице “Доступные решения” найдите “Интеграция с DPD (ipol.dpd)”. Если обновления имеются, в колонке “Статус” будет надпись “Доступны обновления”, кликнув на которую можно перейти к установке обновлений для данного модуля.
Предварительное создание полной резервной копии сайта до установки каких-либо обновлений, как модуля DPD, так и других решений и в особенности самого Битрикса является хорошей практикой и дает возможность намного быстрее восстановить работоспособность сайта, если что-то пошло не по плану. Встроенное в Битрикс резервное копирование доступно в разделе админки Рабочий стол -> Настройки -> Инструменты -> Резервное копирование -> Создание резервной копии.
Используйте местоположения для правильного расчета налоговой ставки и доставки в счетах и заказах.
Допустим, вы продаете товар клиентам из разных стран. Для каждой страны, а может даже и города, налог будет отличаться. Настройте местоположения, чтобы верно рассчитать налог.
Подробнее читайте в статье Налоги в CRM.
Настроить местоположения можно в CRM > Настройки > Настройки CRM > С чего начать > Местоположения.
Вы можете импортировать места или добавить их вручную.
Как импортировать местоположение
Импортировать местоположения можно через удалённый сервер или из вашего файла.
Рассмотрим импорт через удалённый сервер. Для начала отметьте страну, которую хотите импортировать. Также можно выбрать определенные округа и регионы для импорта.
Загрузите почтовые индексы и коды Яндекс.Маркет.
Настройте параметры импорта. К примеру, можно загрузить только города или импортировать вплоть до улиц.
Если вы выбрали импорт улиц, процесс импорта займёт больше времени, чем обычно.
Выберите, какой набор местоположений хотите импортировать. Расширенный отличается тем, что включает дополнительные объекты, например, мелкие города и сёла.
Также решите, загружать округа или нет.
Остальные настройки оставьте как есть и нажмите Начать импорт.
Статус импорта отображается в верхней части страницы.
После завершения импорта вы увидите статистику загруженных местоположений.
Если у вас есть файл с местоположениями и вы хотите загрузить именно его, то воспользуйтесь инструкцией в статье Импорт местоположений для «1С-Битрикс: Управление сайтом».
Как добавить местоположение
В Битрикс24 можно создать свое местоположение. Чтобы это сделать, нажмите на кнопку Добавить.
Заполните поле Символьный код. Обратите внимание, что он должен отличаться от символьного кода других местоположений. Если добавляете новый город, то в поле Родительское местоположение выберите страну, которую импортировали заранее. Если село, то можно выбрать область или край.
В поле Название укажите наименование населенного пункта на всех языках.
Сохраните свое местоположение.
Теперь можно использовать это местоположение, чтобы создать налог для конкретного места или сформировать доставку. К примеру, когда вы работаете со счётом, просто выберите местоположение, и система автоматически рассчитает налог.
Спасибо, помогло!
Спасибо
Это не то, что я ищу
Написано очень сложно и непонятно
Есть устаревшая информация
Слишком коротко, мне не хватает информации
Мне не нравится, как это работает
Просмотров: 24291
Если нужно получить список городов из модуля «Местоположения» можно воспользоваться API Битрикс. Данные местоположения можно использовать в любом месте сайта или в любом компоненте. Например в профиле пользователя или формах обратной связи.
Получение местоположений и вывод их в select
Для примера, буду выводить города в профиле пользователя. Данные должны записаться в стандартное поле «Город» с кодом «PERSONAL_CITY»
Сначала импортируем местоположения. Для этого проходим в административную панель по пути Магазин -> Настройки -> Местоположения -> Импорт местоположений и выбираем нужные данные. Для примера, я выберу регион Россия->Центр
Дожидаемся окончания импорта. Затем идем в шаблон компонента main.profile и открываем файл template.php в нужном месте шаблона вызываем местоположения с помощью API BitrixSaleLocationLocationTable::getList пока выводим все города, просто списком
<?
$res = BitrixSaleLocationLocationTable::getList(array(
'filter' => array('=TYPE.ID' => '5', '=NAME.LANGUAGE_ID' => LANGUAGE_ID),
'select' => array('NAME_RU' => 'NAME.NAME')
));
while ($item = $res->fetch()) {
echo $item['NAME_RU'].'<br>';
}
?>
Где в массивах:
‘filter’ — передали ID типа местоположения. В моем случае это 5-ый, города. И языковые настройки. Сюда можете предать любые типы: Улицы, Села, Страны, Регионы.
‘select’ — передали нужные для вывода данные, в моем случае русские названия (городов).
В итоге, получили список всех городов импортированных в местоположения. Теперь оформляем это в список c выбором select, где первым option (по умолчанию) будет ранее выбранный и сохраненный город. Самому селекту назначаем name=»PERSONAL_CITY», что бы он сохранялся в стандартное поле пользователя- Город
<select name="PERSONAL_CITY">
<option value="<?= $arResult["arUser"]["PERSONAL_CITY"] ?>">
<?= $arResult["arUser"]["PERSONAL_CITY"] ?>
</option>
<?
$res = BitrixSaleLocationLocationTable::getList(array(
'filter' => array('=TYPE.ID' => '5', '=NAME.LANGUAGE_ID' => LANGUAGE_ID),
'select' => array('NAME_RU' => 'NAME.NAME')
));
while ($item = $res->fetch()) {?>
<option value="<? print_r($item['NAME_RU']); ?>">
<? print_r($item['NAME_RU']); ?>
</option>
<?} ?>
</select>
Все, теперь пользователь может выбрать город из списка и он сохранится в нужное поле (Город). Но если городов очень много, например вы загрузили всю Россию, выбирать из такого списка будет очень тяжело. Поэтому…
Автопоиск по первым буквам из выпадающего списка select
Реализуем удобный поиск по select, который будет подбирать значения в процессе ввода данных. выглядет например, так:
Для этого воспользуемся готовым плагином SELECT2. Просто подключаем приложенные скрипты и файлы стилей. Можно подключить их прямо в template.php, если используете данный способ только в кабинете пользователя
Скачать SELECT2
Для select задаем любой удобный id. Например id=»my_sity». И указываем плагину, какой select он должен обработать. Целиком это будет выглять так (комментарии прямо в коде):
<select name="PERSONAL_CITY" id="my_sity">
<option value="<?= $arResult["arUser"]["PERSONAL_CITY"] ?>">
<?= $arResult["arUser"]["PERSONAL_CITY"] ?>
</option>
<?
$res = BitrixSaleLocationLocationTable::getList(array(
'filter' => array('=TYPE.ID' => '5', '=NAME.LANGUAGE_ID' => LANGUAGE_ID),
'select' => array('NAME_RU' => 'NAME.NAME')
));
while ($item = $res->fetch()) {?>
<option value="<? print_r($item['NAME_RU']); ?>">
<? print_r($item['NAME_RU']); ?>
</option>
<?} ?>
</select>
<!-- ПОДКЛЮЧАЕМ ОФОРМЛЕНИЕ И JS ПЛАГИНА -->
<link href="/local/templates/.default/js/select/select2.min.css" type="text/css" rel="stylesheet"/>
<script src="/local/templates/.default/js/select/select2.full.min.js"></script>
<!-- УКАЗЫВАЕМ ID НУЖНОГО SELECT-а -->
<script>
$(document).ready(function () {
$("#my_sity").select2();
});
</script>
Само собой, стили и скрипты плагина, лучше всего подключать через API Битрикс, для оптимизации работы. В примере оставил «по старинке», что бы не усложнять объяснение.
В общем-то и все. Использовать данный плагин можно с любым select-ом. Так же и получение местоположений, можете использовать в любом месте сайта, в любом компоненте или шаблоне.
Мои видео на Boosty:
Ваш баннер вместо этой рекламы: 15 000 руб/мес. Размещается во всем блоге, форуме, видеоуроках и разделе с макетами.