Переход на оплату мимо корзины
Здравствуйте.
Подскажите пожалуйста.
Обычно работал с 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, по идее редирект будет отрабатывать как надо.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.