public function addJson() { $cart = new CartModel(); $cart->loadCurrent(); $entity = Ajde::app()->getRequest()->getPostParam('entity'); $entity_id = Ajde::app()->getRequest()->getPostParam('entity_id'); $qty = Ajde::app()->getRequest()->getPostParam('qty'); $cart->addItem($entity, $entity_id, $qty); return ['success' => true]; }
public function addJson() { Ajde_Model::register($this); $cart = new CartModel(); $cart->loadCurrent(); $entity = Ajde::app()->getRequest()->getPostParam('entity'); $entity_id = Ajde::app()->getRequest()->getPostParam('entity_id'); $qty = Ajde::app()->getRequest()->getPostParam('qty'); $cart->addItem($entity, $entity_id, $qty); return array('success' => true); }
public function checkout() { Ajde_Model::register($this); // Get existing transaction $transaction = new TransactionModel(); $session = new Ajde_Session('AC.Shop'); $session->has('currentTransaction') && $transaction->loadByPK($session->get('currentTransaction')); $cart = new CartModel(); $cart->loadCurrent(); $this->getView()->assign('cart', $cart); $this->getView()->assign('user', $this->getLoggedInUser()); $this->getView()->assign('transaction', $transaction); return $this->render(); }
public function complete() { $cart = new CartModel(); $cart->loadCurrent(); $cart->emptyItems(); // Get existing transaction $transaction = new TransactionModel(); $session = new Ajde_Session('AC.Shop'); if ($session->has('currentTransaction')) { $transaction->loadByPK($session->get('currentTransaction')); } $session->destroy(); $this->getView()->assign('transaction', $transaction); return $this->render(); }
public function checkout() { // Get existing transaction $transaction = new TransactionModel(); $session = new Ajde_Session('AC.Shop'); $session->has('currentTransaction') && $transaction->loadByPK($session->get('currentTransaction')); $cart = new CartModel(); $cart->loadCurrent(); // Can we skip this step? if (!$transaction->hasLoaded() && !config('shop.offerLogin') && $cart->hasItems()) { $this->redirect('shop/transaction:setup'); } $this->getView()->assign('cart', $cart); $this->getView()->assign('user', $this->getLoggedInUser()); $this->getView()->assign('transaction', $transaction); return $this->render(); }
public function paymentJson() { $request = Ajde::app()->getRequest(); $provider = $request->getPostParam('provider', false); if (empty($provider)) { return array('success' => false, 'message' => __('Please choose a payment provider')); } // Check for current transaction Ajde_Model::register($this); $transaction = new TransactionModel(); $session = new Ajde_Session('AC.Shop'); if ($session->has('currentTransaction') && $transaction->loadByPK($session->get('currentTransaction'))) { if ($transaction->payment_status !== 'pending') { return array('success' => false, 'message' => __('Payment already initiated, please refresh this page')); } } else { return array('success' => false, 'message' => __('No current transaction found')); } $transaction->payment_provider = $provider; $provider = $transaction->getProvider(); $redirectUrl = $provider->getRedirectUrl(); if ($redirectUrl !== false) { $transaction->payment_status = 'requested'; $transaction->save(); $cart = new CartModel(); $cart->loadCurrent(); $cart->emptyItems(); if ($provider->usePostProxy()) { $this->setAction('postproxy'); $proxy = $this->getView(); $proxy->assign('provider', $provider); return array('success' => true, 'postproxy' => $proxy->render()); } return array('success' => true, 'redirect' => $redirectUrl); } return array('success' => false, 'message' => 'Could not contact the payment provider, please try again'); }