Валидация проверки статуса оплаты
Если заказ оформлен способом оплаты, который не является наложенным платежом (в настройках интеграционного модуля не стоит галка возле способа оплаты "Наложенный платеж"), то заказ можно выгрузить со статусом оплаты "Не оплачен". В этом случае вы рискуете не получить оплату за заказ. Это могут быть способы оплаты:
оплата картой;
на расчетный счет и другие.
Чтобы исключить подобные ситуации, добавьте валидацию в 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 - символьный код способ оплаты для проверки статуса оплаты (Настройки → Справочники → Типы оплат)
Валидация проверки способа оплаты в заказе
Бывают ситуации, когда в заказе не указано ни одного способа оплаты. Чтобы избежать выгрузки без оплаты, можно добавить валидацию на проверку наличия способа оплаты.
Пример валидации:
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')