/**
  * 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;
 }
Beispiel #2
0
 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;
 }