/** * actionAfterLogin */ public function actionAfterLogin() { //update basket if ($_SESSION['basket']['id'] > 0 && is_numeric($_SESSION['basket']['id'])) { require_once 'models/ecommerce/ecommerce_basket.php'; $Basket = new ecommerce_basket(); $Basket->setCacheable(false); $basket_data = $Basket->detail($_SESSION['basket']['id']); $basket_data['customer_id'] = $_SESSION['client']['customer']['id']; if (!$Basket->update($basket_data)) { msg('Basket updated failed', 'error'); } } msg('you are successfully in', 'ok', 2); /** * forward */ $this->forwardAfterLogin(); }
/** * main action */ public function mainAction() { /** * get input */ if (is_array($_POST['order'])) { $order_data = $_POST['order']; } else { $order_data = array(); } /** * get node configuration */ require_once 'models/common/common_node.php'; $node_conf = common_node::initConfiguration(); $this->tpl->assign('NODE_CONF', $node_conf); /** * init basket */ require_once 'models/ecommerce/ecommerce_order.php'; require_once 'models/ecommerce/ecommerce_basket.php'; $Order = new ecommerce_order(); $Basket = new ecommerce_basket(); $Order->setCacheable(false); $Basket->setCacheable(false); //temp if ($_POST['client']['customer']['currency_code']) { $currency_code = $_POST['client']['customer']['currency_code']; } else { $currency_code = $_SESSION['client']['customer']['currency_code']; } if ($_SESSION['client']['customer']['id'] > 0) { if (is_numeric($basket_id = $_SESSION['basket']['id'])) { //update basket $basket_detail = $Basket->detail($basket_id); $basket_detail['customer_id'] = $_SESSION['client']['customer']['id']; $Basket->update($basket_detail); //insert order if (isset($_POST['confirm'])) { if ($_POST['order_terms_agreed'] == 'on') { //insert only orders with some items in the basket :) $basket_content = $Basket->getFullDetail($basket_id); if (count($basket_content['items']) > 0) { $order_data = $_POST['order']; $order_data['basket_id'] = $_SESSION['basket']['id']; $order_data['invoices_address_id'] = $_SESSION['client']['customer']['invoices_address_id']; $order_data['delivery_address_id'] = $_SESSION['client']['customer']['delivery_address_id']; $order_data['other_data']['delivery_options'] = $_SESSION['delivery_options']; $order_data['other_data']['promotion_code'] = $_SESSION['promotion_code']; $order_data['php_session_id'] = session_id(); if ($inserted_order_id = $Order->insertOrder($order_data)) { $_SESSION['promotion_code'] = null; $_SESSION['basket']['id'] = null; //forward to payment page with pre-selected payment method //onxshopGoTo("page/" . $node_conf['id_map-payment'] . "?order_id=$inserted_order_id&selected_poyment_type={$order_data['payment_type']}"); onxshopGoTo("page/" . $node_conf['id_map-payment'] . "?order_id={$inserted_order_id}"); } } else { msg("Can't insert an empty order.", 'error'); } } else { msg("You must agree with our Terms & Conditions", 'error'); } } } /** * prepare list of payment options */ require_once 'models/ecommerce/ecommerce_transaction.php'; $Transaction = new ecommerce_transaction(); $transaction_type_allowed = $Transaction->conf['allowed_types']; foreach ($transaction_type_allowed as $type) { $this->tpl->parse("content.{$type}"); } /** * gift option */ if ($_SESSION['gift'] == 1) { $this->tpl->assign("GIFT", 1); $this->tpl->parse('content.gift'); } else { $this->tpl->assign('GIFT', 0); } /** * gift message */ if ($_SESSION['gift_message'] != '') { $this->tpl->assign("GIFT_MESSAGE", $_SESSION['gift_message']); $this->tpl->parse('content.gift_message'); } else { $this->tpl->assign("GIFT_MESSAGE", ''); } } else { //msg('You must be logged in first.', 'error'); $_SESSION['to'] = "page/" . $node_conf['id_map-checkout']; onxshopGoTo("page/" . $node_conf['id_map-login']); } $this->tpl->assign("ORDER", $_POST['order']); /** * display virtual product option */ if ($this->isBasketVirtualProductOnly()) { $this->tpl->parse('content.virtual_product'); } return true; }