Валидации для проверки способов оплаты

Последние изменения: 01.07.2021

Валидация проверки статуса оплаты

Если заказ оформлен способом оплаты, который не является наложенным платежом (в настройках интеграционного модуля не стоит галка возле способа оплаты "Наложенный платеж"), то заказ можно выгрузить со статусом оплаты "Не оплачен". В этом случае вы рискуете не получить оплату за заказ. Это могут быть способы оплаты:

  • оплата картой;

  • на расчетный счет и другие.

_______________________________________________________________RetailCRM_2019-12-30_22-10-25.jpg

Чтобы исключить подобные ситуации, добавьте валидацию в RetailCRM.

Валидация не даст сохранить заказ, если способ доставки Почта России (связанная с интеграционным модулем) и заказ не оплачен.

Пример валидации:

order.getDeliveryType().getCode() == 'rs-russian-post' and
order.getPayments() | contains(
p => (p.getType().getCode() == 'cloud-payments' or
p.getType().getCode() == 'bank-card' or
p.getType().getCode() == 'bank-transfer' or
p.getType().getCode() == 'beznalik') and (not p.getStatus().isPaymentComplete()))

В описанном примере: 

  • rs-russian-post - символьный код доставки Почты России, которая связана с интеграционным модулем (Настройки → Справочники → Типы доставок)

  • cloud-payments - символьный код способ оплаты для проверки статуса оплаты (Настройки → Справочники → Типы оплат)

_____________________________________________________________________________________RetailCRM_2019-12-30_22-09-21.jpg

Валидация проверки способа оплаты в заказе

Бывают ситуации, когда в заказе не указано ни одного способа оплаты. Чтобы избежать выгрузки без оплаты, можно добавить валидацию на проверку наличия способа оплаты.

Пример валидации: 

changeSet.hasChangesWithSource('user') and
(order.payments | length) == 0 and
(order.getDeliveryType().getCode() == 'rs-russian-post' or
order.getDeliveryType().getCode() == 'peshkariki-new' or
order.getDeliveryType().getCode() == 'rs-yandex-delivery')

Screenshot_5.png

Помогла ли вам статья?