Как получить ограничения доставки по платежным системам

26
Алексей,
Как получить ограничения доставки по платежным системам

Понадобилось вне компонента оформления заказа показать какие способы оплаты доступны для той или иной службы доставки. Пришлось лезть в код админки, смотреть как это устроено.

Получить ограничения не сложно, достаточно сделать запрос в таблицу b_sale_service_rstr, но там нет данных по платежным системам. Долго не мог понять как же их получить, пока не залез в ядро. Там нашел метод prepareParamsValues, который и возвращает список платежных систем. Готовый код ниже.

$dbRestr = \Bitrix\Sale\Delivery\Restrictions\Manager::getList(array(
	'filter' => array('SERVICE_ID' => $arDelivery['ID']) // ID службы доставки
));
while ($arRestr = $dbRestr->fetch()) {
	if(!$arRestr["PARAMS"]) { // У ограничений по платежной системе нет параметров
		$arRestr["PARAMS"] = array(); 
	}
	$params = $arRestr["CLASS_NAME"]::prepareParamsValues($arRestr["PARAMS"], $arDelivery['ID']); // Получаем платежные системы
	if ($params['PAY_SYSTEMS']) {
		var_dump($params['PAY_SYSTEMS']);
	}
}
Опубликовано 31 Июля 2020
разработчику, готовый код, костыли, примеры d7
Похожие статьи
Конвертация картинок в webp на битриксе 0
Картинки в формате WebP "весят" значительно меньше, а сам формат уже поддерживается многим...
Читать дальше »
Алексей,
Покупка в 1 клик, минимальный код 0
Частая задача для интернет-магазина на 1С-Битрикс. В примере показаны все этапы минимально необходим...
Читать дальше »
Алексей,
Комментарии