Переход на оплату мимо корзины

Здравствуйте.

Подскажите пожалуйста.

Обычно работал с shopkeeper, тут решил попробовать minishop

Возможно ли в minishop сделать такое:

На странице товара есть кнопка «Купить», при нажатии на которую человек перейдет не в корзину, а сразу на страницу оплаты дополнения mspRobokassa
При этом сам заказ формируется и сохраняется.

В SHK такого не удается достичь, может у minishop лучше с этим делом?
Alex
03 июня 2014, 18:50
modx.pro
4
1 787
+1

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

Andrey Grachov
04 июня 2014, 00:32
0
Теоретически это возможно, только для осуществления заказа обязательно нужен email, соответственно для неавторизированных пользователей необходимо придумать, чем его заменить :)
    Alex
    04 июня 2014, 00:44
    0
    Вообще у меня так идет:
    товар
    под ним поле email и телефон человека, которые он заполняет и кнопка купить
    и при кнопке купить — надо чтоб перешло к оплате.
      Andrey Grachov
      04 июня 2014, 17:07
      1
      0
      Набросал схематический вариант, посмотреть можно здесь: s5885.test.modx.pro/index.php?id=5 (доступ s5885/VPdm-g7Y6zKf), плагин QuickOrder.
      Код плагина:
      <?php
      $context = $modx->context->get('key');
      if ($context == 'mgr' || empty($_POST['quick_order']) || empty($_POST['id']) || empty($_POST['customer'])) {
      	return;
      }
      /**
       * @var miniShop2 $miniShop2
       */
      $miniShop2 = $modx->getService('minishop2');
      $miniShop2->initialize($context, array(
      	'json_response' => false,
      ));
      if (!($miniShop2 instanceof miniShop2)) {
      	return;
      }
      $_POST['customer'] = array_merge(array(
      	'delivery' => 1,
      	'payment' => 1,
      ), $_POST['customer']);
      foreach (array('email', 'phone', 'delivery', 'payment') as $field) {
      	$response = $miniShop2->order->add($field, $modx->getOption($field, $_POST['customer'], ''));
      	if (empty($response['success'])) {
      		return;
      	}
      }
      $response = $miniShop2->cart->clean();
      if (empty($response['success'])) {
      	return;
      }
      $response = $miniShop2->cart->add($_POST['id'], $modx->getOption('count', $_POST, 1), $modx->getOption('options', $_POST, array()));
      if (empty($response['success'])) {
      	return;
      }
      $miniShop2->order->submit();
      $modx->sendRedirect($modx->makeUrl($modx->resource->get('id')));
        Alex
        04 июня 2014, 17:28
        0
        Да. Вроде как надо. В примере просто переход на оплату не включен?
          Andrey Grachov
          04 июня 2014, 17:35
          0
          Да, там не настроены методы для оплаты online, по идее редирект будет отрабатывать как надо.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5