партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Универсальная галерея - модуль для битрикс
Это форум по решению для битрикс «Модуль Классификатор адресов.WEB (архив)».
Страницы: 1
Ответить
RSS
Компонент "gkladr.ajax.selectzip" фильтрация по исключениям служб доставки
 
Здравствуйте.
Не могу понять как осуществить фильтрацию по полям исключения служб доставки в функции SKladrEntry::SearchZip.
В массив фильтра пробовал добавлять DELIVERY/DELIVERY_ID c EXC_TYPE "N"/"!N", не помогло.
Нужно в форме заказа с этим компонентом при выборе разных служб доставки удалять некоторые варианты выбора адреса.
В базе КЛАДР исключения добавлены, но компонент почему-то на них не реагирует.
ID службы доставки в компоненте sale.order.ajax передается в $arResult[DELIVERY] [0] [ID]
Что не так?
 
Здравствуйте!

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

Во-вторых, что касается этих исключений, модулем предоставляется только административный интерфейс и api, рассчитанный на разные доработки, например, обработчиков доставки и шаблона формы заказа. см. описание функций, в частности класс SKladrExcludes.
 
Спасибо. Почему-то сразу подумалось именно про такую систему исключений.
Ладно, будем дорабатывать)
 
Вот, собственно, и решение. Может кому-то пригодится  :)  

Код

$cnt 0;

foreach(
$arResult["CITY_LIST"]["REFERENCE_ID"] as $id_val){

   if(
strlen($id_val) < 1) continue;
   
   
$cnt++;
   
   
$rs_exclude SKladrExcludes::GetDeliveriesList($id_val);
   
$ar_exclude $rs_exclude->Fetch();
   
   if(
$ar_exclude["EXC_TYPE"] == "N" && $ar_exclude["DELIVERY_ID"] == $arResult["DELIVERY"][0][ID]){
      unset(
$arResult["CITY_LIST"]["REFERENCE_ID"][$cnt]);
      unset(
$arResult["CITY_LIST"]["REFERENCE"][$cnt]);
   }
}
Правда довольно ресурсоемкое, но времени дорабатывать нет.
Страницы: 1
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы