партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Классификатор адресов.WEB (архив)».
Страницы: 1
Ответить
RSS
Выбор местоположения из справочника местоположений Интернет-магазина, как выбрать не только регион, но и город?
 
Проверил работу компоненты grain:gkladr.ajax.locations ... Вот видео процесса.

На самом нижнем уровне почтовый индекс. Так никто вводить не будет. Но это еще не все. В итоге, для магазина я имею местоположение, которое я привязал к первому уровню КЛАДР! Для автоматизированных методом доставки - это пустота. Доставка по Красноярскому краю сильно разнится между Абаканом, самим Красноярском и Норильском.

В странице ИД местоположения можно получить в скрытом поле:
Код

<input name="LOCATION" value="2652" type="hidden">

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

Да, при этом эксперименте у меня была включена настройка "Возвращать ID местоположения (в противном случае - города)". Хорошо, снимаю эту галочку. Смотрю, что есть из городов в выбранном регионе (я пробовал Адыгею). В справочнике местоположений есть только два города - Майкоп и Адыгейск. Выбираю Майкоп и при завершении выбора (когда выбрал индекс) не получаю в LOCATION вообще ничего. Город компонента не нашла!

А что задумано то здесь?
 
Цитата
Анатолий Кирсанов пишет:
На самом нижнем уровне почтовый индекс. Так никто вводить не будет. Но это еще не все. В итоге, для магазина я имею местоположение, которое я привязал к первому уровню КЛАДР ! Для автоматизированных методом доставки - это пустота. Доставка по Красноярскому краю сильно разнится между Абаканом, самим Красноярском и Норильском.
Анатолий, я, к сожалению, сейчас не могу вам подсказать по магазинам, т.к. от разработки магазинов отказался достаточно давно.

Цитата
Анатолий Кирсанов пишет:
Да, при этом эксперименте у меня была включена настройка "Возвращать ID местоположения (в противном случае - города)"
Он должен возвращать в этом случае (если галочка снята) ID города (CITY_ID). Я не знаю, имеет ли сейчас значение и существует ли вообще это поле в стандартных местоположениях, т.к. api изменился у битрикс (а модуль специально не дорабатывался после этого, устранялись только выидимые ошибки).
 
Цитата
Сергей Эстрин пишет:
Я не знаю, имеет ли сейчас значение и существует ли вообще это поле в стандартных местоположениях, т.к. api изменился у битрикс (а модуль специально не дорабатывался после этого, устранялись только выидимые ошибки).
В таблице b_sale_location такое поле есть. API тоже это поле выдает:
Код

\Bitrix\Main\Loader::includeModule('sale');

$db CSaleLocation::GetList(
 array(
"SORT"=>"ASC""COUNTRY_NAME_LANG"=>"ASC""CITY_NAME_LANG"=>"ASC"),
 array(
'COUNTRY_LID' => 'ru''REGION_LID' => 'ru''CITY_LID' => 'ru''CITY_NAME' => 'Москва'), // array arFilter = 
 
false// array arGroupBy = 
 
array('nTopCount' => 3), // array arNavStartParams = 
 
array() // array arSelectFields = 
);
while (
$ar=$db->Fetch())
{
   print 
'<pre>'print_r($ar); print '</pre>';
}

Код

Array

(
    [
ID] => 3303
    
[COUNTRY_ID] => 35
    
[REGION_ID] => 213
    
[CITY_ID] => 3057
    
[SORT] => 100
    
[COUNTRY_NAME_ORIG] => Russia
    
[COUNTRY_SHORT_NAME] => 
    [
REGION_NAME_ORIG] => Moskovskaya obl
    
[CITY_NAME_ORIG] => Moskva
    
[REGION_SHORT_NAME] => 
    [
CITY_SHORT_NAME] => 
    [
COUNTRY_LID] => ru
    
[COUNTRY_NAME] => Россия
    
[REGION_LID] => ru
    
[CITY_LID] => ru
    
[REGION_NAME] => Московская обл
    
[CITY_NAME] => Москва
    
[LOC_DEFAULT] => N
)
Похоже, что в модуль закралась пакостная ошибка ...
 
Вот из справки цитата про дополнительные отличия компонента от стандартного sale.ajax.locations:
Цитата
  • Если страна не Россия, и список городов пуст, и отмечена опция "Возвращать ID местоположения", то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)", будет находиться ID местоположения страны.
  • Если поиск с помощью КЛАДР завершен, то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)" будет находиться ID местоположения (или города, в зависимости от опции "Возвращать ID местоположения"), привязанного к региону КЛАДР. Если привязки нет, и отмечена опция "Возвращать ID местоположения", то в этом поле будет содержаться ID местоположения страны.
т.е. если выбор производится с помощью кладра, то ID города и не будет, будет видимо в том случае если выбрана страна не Россия.
 
Цитата
Сергей Эстрин пишет:
Вот из справки цитата про дополнительные отличия компонента от стандартного sale.ajax.locations:
Цитата
Если страна не Россия, и список городов пуст, и отмечена опция "Возвращать ID местоположения", то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)", будет находиться ID местоположения страны. Если поиск с помощью КЛАДР завершен, то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)" будет находиться ID местоположения (или города, в зависимости от опции "Возвращать ID местоположения"  ;)  , привязанного к региону КЛАДР. Если привязки нет, и отмечена опция "Возвращать ID местоположения", то в этом поле будет содержаться ID местоположения страны.
т.е. если выбор производится с помощью кладра, то ID города и не будет, будет видимо в том случае если выбрана страна не Россия.
Это я читал и мало что понял. Последнее уточнение тоже не уточняет ничего.

Цитата
т.е. если выбор производится с помощью кладра, то ID города и не будет
Вот это новое.

Цитата
будет видимо в том случае если выбрана страна не Россия
Это, видимо, когда не используется КЛАДР используются местоположения магазина?

Вот это меня смутило
Цитата
Если поиск с помощью КЛАДР завершен, то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)" будет находиться ID местоположения (или города, в зависимости от опции "Возвращать ID местоположения" ) , привязанного к региону КЛАДР.
Этот тест допускает поиск в России си спользованием КЛАДР и возврат ИД города. Возможно, именно ИД города там и будет, тогда предстоит еще найти по нему ИД местоположения (это сейчас тройка - страна-регион-город). Вы же сейчас пишете, что и не должен город возвращаться ни в каком виде (ни местоположением, ни городом).
 
Цитата
Анатолий Кирсанов пишет:
Вот это меня смутило
Цитата
Если поиск с помощью КЛАДР завершен, то в скрытом поле с названием, содержащимся в параметре "Имя поля формы для города (местоположения)" будет находиться ID местоположения (или города, в зависимости от опции "Возвращать ID местоположения" ) , привязанного к региону КЛАДР.
Этот тест допускает поиск в России с использованием КЛАДР и возврат ИД города. Возможно, именно ИД города там и будет, тогда предстоит еще найти по нему ИД местоположения (это сейчас тройка - страна-регион-город). Вы же сейчас пишете, что и не должен город возвращаться ни в каком виде (ни местоположением, ни городом).
ID города будет возвращаться, если регион является городом (когда он на втором уровне, а первый - это страны)
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы