Получилось решить следующим образом:
1. Зная ID местоположения пользователя, воспользовавшись методом CSaleDelivery::GetLocationList получаю все службы доставки, которые покрывают это местоположение.
Код |
---|
$allDeliveries = CSaleDelivery::GetLocationList(
array(
'LOCATION_ID' => $location['ID'],
'LOCATION_TYPE' => 'L'
)
);
while($location = $allDeliveries->Fetch())
$locations[] = $location['DELIVERY_ID']; //Формирую массив из ID найденных служб доставок |
2. Затем методом CSaleDelivery::GetList в фильтре по ID передаю этот сформированный из ID служб доставок массив + с доп-ми условиями фильтрации:
Код |
---|
$allDeliveries = CSaleDelivery::GetList(
$arOrder = array(
'SORT' => 'ASC'
),
$arFilter = array(
'ID' => $locations,
'ACTIVE' => 'Y',
...
...
),
$arGroupBy = false,
$arNavStartParams = false,
$arSelectFields = array()
);
while($location = $allDeliveries->Fetch()){
print_r($location);
} |