Часто требуется сделать так, чтобы в оформлении заказа какие-то платежные системы показывались только для определенных служб доставки. Например, для доставки Почта РФ может быть только банковский перевод, либо наличный расчет.
В этом может помочь нам свойство DELIVERY2PAY_SYSTEM компонента bitrix:sale.order.ajax .
Значение свойства должно представляет собой массив вида:
Array(
Array(
ID_службы_доставки=>array(ID_платежной_системы, ID_платежной_системы, …),
ID_службы_доставки=>array(ID_платежной_системы, ID_платежной_системы, …)
)
)
ID служб доставки можно взять из списков на страницах настройки служб доставки настраиваемых /bitrix/admin/sale_delivery.php?lang=ru и автоматизированных /bitrix/admin/sale_delivery_handlers.php?lang=ru .
Причем у настраиваемых служб доставки цифровой идентификатор, а у автоматизированных — символьный и определяется он как SID:»ID_профиля доставки».
Например, если SID = russianpost, а название профиля — light, то идентификатор будет — russianpost:light .
Идентификаторы платежных систем всегда цифровые и их можно узнать на странице /bitrix/admin/sale_pay_system.php?lang=ru
Приведу напоследок пример как может выглядеть заданное свойство DELIVERY2PAY_SYSTEM в компоненте bitrix:sale.order.ajax:
«DELIVERY2PAY_SYSTEM» =>
Array(
Array(
«russianpost:light»=>array(1, 2),
«1»=>array(2)
)
),
Надеюсь, что это краткая заметка помогла вам.