Minishop2. Возможность онлайн-оплаты заказа после подтверждения менеджером

Приветствую.
Нужно, чтобы при оформлении заказа, покупатель не мог оплатить заказ онлайн. А возможность оплатить онлайн появлялась, после того, как менеджер поставит определенный статус в админке. Для оплаты онлайн используется Robokassa.

Так-то алгоритм у меня есть:
1)Сделать обычную доставку
2)После заказа, менеджер заходит в админку, меняет статус на «Ожидает оплаты»
3)В ЛК у покупателя в списке заказов условие на этот статус и появляется ссылка «Оплатить», которая ведет на страницу оплаты.
4)После оплаты возвращается success и меняется статус заказа на «Оплачен»
И проблем реализовать его нет. Единственное, придется разобраться с API Робокассы и сделать свою страницу оплаты
— Но может кто подскажет быстрее способ с использованием готового модуля? В частности интересует modstore.pro/packages/payment-system/msprobokassa
Или в Minishop2 где-нибудь настройка есть — оплаты после подтверждения менеджером?
Павел
10 сентября 2020, 20:51
modx.pro
1 015
0

Комментарии: 3

Артем
13 сентября 2020, 19:58
0
Платежный модуль робокассы — это ничто иное, как кастомный класс оплаты. Соответственно, тебе не нужно даже разбираться с ним, достаточно просто при нажатии на кнопку «Оплатить» отправлять запрос на сервер и дергать метод msPaymentInterface::send() у класса робокассы. Он тебе вернет ссылку, ты переходишь по ней с помощью js, ну и дальше все как обычно.
    Павел
    14 сентября 2020, 10:37
    0
    Это я понимаю, но с модулем — он встраивается в само оформление заказа.
    А мне нужно убрать возможность оплаты из оформления заказа. Чтобы она появлялась в лк после подтверждения менеджером.
      Артем
      14 сентября 2020, 15:58
      0
      он встраивается в само оформление заказа.
      В том то и дело, что он никуда не встраивается. Это обычный класс, который ты можешь привязать к любому объекту оплаты (msPayment) в настройках: miniShop2 -> Настройки -> Способы оплаты.
      Во время оформления заказа miniShop2 смотрит на объект оплаты, который привязан к оформляемому заказу, ну и дергает оттуда метод send, передавая заказ в качестве единственного параметра.

      Соответственно, тебе нужно по умолчанию поставить самую обычную оплату, без всяких классов-обработчиков, клиент будет оформлять заказ и сразу же видеть окошко, что заказ оформлен. Когда заказ получит статус «Ожидает оплаты» и клиент нажмет на кнопку «Оплатить», ты просто получаешь другой заранее подготовленный объект оплаты, у которого указан класс-обработчик робокассы, и точно так же дергаешь метод send, передавая выбранный заказ.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3