Переход на оплату мимо корзины
        Здравствуйте. 
Подскажите пожалуйста.
Обычно работал с shopkeeper, тут решил попробовать minishop
Возможно ли в minishop сделать такое:
На странице товара есть кнопка «Купить», при нажатии на которую человек перейдет не в корзину, а сразу на страницу оплаты дополнения mspRobokassa
При этом сам заказ формируется и сохраняется.
В SHK такого не удается достичь, может у minishop лучше с этим делом?
    
    
                                                                                
            Подскажите пожалуйста.
Обычно работал с shopkeeper, тут решил попробовать minishop
Возможно ли в minishop сделать такое:
На странице товара есть кнопка «Купить», при нажатии на которую человек перейдет не в корзину, а сразу на страницу оплаты дополнения mspRobokassa
При этом сам заказ формируется и сохраняется.
В SHK такого не удается достичь, может у minishop лучше с этим делом?
Комментарии: 5
                Теоретически это возможно, только для осуществления заказа обязательно нужен email, соответственно для неавторизированных пользователей необходимо придумать, чем его заменить :)            
                    
                Вообще у меня так идет:
товар
под ним поле email и телефон человека, которые он заполняет и кнопка купить
и при кнопке купить — надо чтоб перешло к оплате.
            
                    товар
под ним поле email и телефон человека, которые он заполняет и кнопка купить
и при кнопке купить — надо чтоб перешло к оплате.
                Набросал схематический вариант, посмотреть можно здесь: 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')));            
                Да. Вроде как надо. В примере просто переход на оплату не включен?            
                    
                Да, там не настроены методы для оплаты online, по идее редирект будет отрабатывать как надо.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.