/** * Create the VM order with the saved cart, and the users infos from klarna * @param $klarna_order return data from Klarna * @param $cartData cart json_decoded saved in the table * @param $method * @param $cartId pkey of the cart saved in the table * */ function createVmOrder($klarna_order, $cartData, $cartId) { if (!class_exists('VirtueMartCart')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'; } if (!class_exists('shopFunctionsF')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'shopfunctionsf.php'; } if (!class_exists('VirtueMartModelOrders')) { require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php'; } $cartData->_confirmDone = true; $cartData->_dataValidated = true; if (!class_exists('VirtueMartCart')) { require JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'; } $cart = VirtueMartCart::getCart(false, array(), serialize($cartData)); $this->updateBTSTAddressInCart($cart, $klarna_order); $orderId = $cart->confirmedOrder(); $this->debugLog($orderId, 'createVmOrder', 'debug'); if (!class_exists('VirtueMartModelOrders')) { require JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php'; } $modelOrder = VmModel::getModel('orders'); $order_number = VirtueMartModelOrders::getOrderNumber($orderId); $history = array(); $history['customer_notified'] = 1; $history['order_status'] = $this->method->status_checkout_complete; $history['comments'] = vmText::sprintf('VMPAYMENT_KLARNACHECKOUT_PAYMENT_STATUS_CHECKOUT_COMPLETE', $order_number); $modelOrder->updateStatusForOneOrder($orderId, $history, TRUE); $this->debugLog('', 'AFTER updateStatusForOneOrder', 'debug'); $klarna_data = $this->getKlarnaData($klarna_order); //$this->debugLog('plgVmOnPaymentNotification KLARNA DATA ' . var_export($klarna_data, true), 'message'); $order_number = VirtueMartModelOrders::getOrderNumber($orderId); $dbValues = array('virtuemart_order_id' => $orderId, 'order_number' => $order_number, 'virtuemart_paymentmethod_id' => $this->method->virtuemart_paymentmethod_id, 'payment_name' => $this->renderPluginName($this->method, 'create_order'), 'action' => 'createOrder', 'klarna_status' => $klarna_order['status'], 'format' => 'json', 'data' => json_encode($klarna_data)); $this->debugLog($dbValues, 'storePSPluginInternalData createVmOrder', 'debug'); $this->storePSPluginInternalData($dbValues); $dbValues = array('virtuemart_order_id' => $orderId, 'order_number' => VirtueMartModelOrders::getOrderNumber($orderId), 'virtuemart_paymentmethod_id' => $this->method->virtuemart_paymentmethod_id, 'payment_name' => 'Klarna Checkout', 'action' => 'storeCart', 'format' => 'json', 'klarna_status' => 'pre-purchase'); $this->storeCartInTable($cartData, $cartId, $dbValues); return $order_number; }
private function _getPaypalInternalData($virtuemart_order_id, $order_number = '') { if (empty($order_number)) { $order_number = VirtueMartModelOrders::getOrderNumber($virtuemart_order_id); } $db = JFactory::getDBO(); $q = 'SELECT * FROM `' . $this->_tablename . '` WHERE '; $q .= " `order_number` = '" . $order_number . "'"; $db->setQuery($q); if (!($payments = $db->loadObjectList())) { // JError::raiseWarning(500, $db->getErrorMsg()); return ''; } return $payments; }