Оплата заполненной формы как товара minishop2

Всем привет!
Реализую что-то вроде сервиса онлайн-заполнения анкет.
Есть форма и логика, взятая отчасти из этой заметки.
Добавил в hooks хук makeOrder, который делает программно заказ minishop2
&hooks=`pdf,makeOrder,email`
Код makeOrder:
<?php
$pdf_link = $hook->getValue('pdf_link'); 
// инициализируем miniShop2
$scriptProperties = array(
  'json_response' => true,
  'max_count' => 1000,
  'allow_deleted' => false,
  'allow_unpublished' => false
);

$miniShop2 = $modx->getService('minishop2','miniShop2', MODX_CORE_PATH . 'components/minishop2/model/minishop2/', $scriptProperties);

// опции товара, если они необходимы
$option = array();
/*$option = array(
  "option1" => "value1",
  "option2" => "value2",
);*/
// инициализируем miniShop2 в текущем контексте
$miniShop2->initialize($modx->context->key, $scriptProperties);
// чистим корзину
$miniShop2->cart->clean();
// добавляем товар в корзину
$arr = json_decode($miniShop2->cart->add($_REQUEST["id"],1,$option), true);

// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));

// формируем заказ
$miniShop2->order->add('receiver', 'Иван Иванов');
$miniShop2->order->add('email', 'ilyagureshidze90@mail.ru');
$miniShop2->order->add('phone', '89616999999');
$miniShop2->order->add('comment', $pdf_link);
$miniShop2->order->add('payment', 3); // Робокасса по умолчанию
$miniShop2->order->add( 'delivery', 1);
$orderfeed = $miniShop2->order->submit();

$arr = json_decode($orderfeed,true);

// логируем каждый шаг
$modx->log(E_ERROR, print_r($arr,1));

if($arr['success']==true&&$arr["data"]["msorder"]){
    $url = $modx->makeUrl(21);
    //$output["location"] = $url.'?msorder='.$arr["data"]["msorder"];
    $modx->sendRedirect($url.'?msorder='.$arr["data"]["msorder"]);
}
return true;
Заказ формируется и приходит уведомление о новом заказе со ссылкой, на сгенеренный файл, который является результатом заполнения формы и собственно тем, что я и хочу продавать. Помимо этого там есть стандартная строка о том, что «Если вы прервали процесс оплаты перейдите по ссылке ссылка_на_платежный_сервис»
Оплата будет через Робокассу или Яндекс.Кассу.

Думаю, что достаточно будет сохранить ссылку на документ в сессию, достать ссылку на оплату аггрегатором и сделать редирект на данную страницу оплаты, чтобы пользователь оплатил заказ. После успешной оплаты, чел попадает на страницу Спасибо, где я буду доставать из сессии ссылку на документ и отправлю клиенту письмо с этой ссылкой (или сделать это через встроенный минишоп-плагин, пока не понимаю, если честно).

Подскажите, пожалуйста, верно ли двигаюсь и если да, то как достать ссылку на оплату? $payment_link, который в письме приходит
Ilya Gureshidze
01 октября 2018, 14:52
modx.pro
901
0

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0