партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Простой адаптивный форум - модуль для битрикс
Страницы: 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
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Ничего не найдено
Загрузить файлы
Отправить Отменить
 
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru