/** * Check if Cart is Valid for Condition * * @param Cart $cart * @param PriceRule $priceRule * @param bool|false $throwException * @return bool * @throws \Exception */ public function checkCondition(Cart $cart, PriceRule $priceRule, $throwException = false) { $session = Tool::getSession(); if ($cart->getUser() instanceof CoreShopUser && $session->user instanceof CoreShopUser) { if (!$cart->getUser()->getId() == $session->user->getId()) { if ($throwException) { throw new \Exception("You cannot use this voucher"); } else { return false; } } } return true; }
/** * This Action can be called via Frontend * @throws \CoreShop\Exception * @throws \CoreShop\Exception\ObjectUnsupportedException */ public function paymentReturnAction() { $requestData = $this->parseRequestData(); $this->disableLayout(); $this->disableViewAutoRender(); \Pimcore\Logger::notice('OmniPay paymentReturn [Postfinance]. TransactionID: ' . $requestData['transaction'] . ', Status: ' . $requestData['status']); $redirectUrl = ''; if ($requestData['status'] === 5) { if (!empty($requestData['transaction'])) { $cart = \CoreShop\Model\Cart::findByCustomIdentifier($requestData['transaction']); if ($cart instanceof \CoreShop\Model\Cart) { \Pimcore\Logger::notice('OmniPay paymentReturn [Postfinance]: create order with: ' . $requestData['transaction']); $order = $cart->createOrder(\CoreShop\Model\Order\State::getById(\CoreShop\Model\Configuration::get("SYSTEM.ORDERSTATE.PAYMENT")), $this->getModule(), $cart->getTotal(), $this->view->language); $payments = $order->getPayments(); foreach ($payments as $p) { $dataBrick = new \Pimcore\Model\Object\Objectbrick\Data\CoreShopPaymentOmnipay($p); $dataBrick->setTransactionId($requestData['transaction']); $p->save(); } $redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getConfirmationUrl($order); } else { \Pimcore\Logger::notice('OmniPay paymentReturn [Postfinance]: Cart with identifier' . $requestData['transaction'] . 'not found'); $redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl('cart with identifier' . $requestData['transaction'] . 'not found'); } } else { \Pimcore\Logger::notice('OmniPay paymentReturn [Postfinance]: No valid transaction id given'); $redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl('no valid transaction id given'); } } else { \Pimcore\Logger::notice('OmniPay paymentReturn [Postfinance]: Error Status: ' . $requestData['status']); $redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl('Postfinance returned with an error. Error Status: ' . $requestData['status']); } $this->redirect($redirectUrl); exit; }
public function paymentReturnAction() { $returnvalue = $_REQUEST['PROCESSING_RESULT']; if ($returnvalue) { $transactionIdentification = $_REQUEST['IDENTIFICATION_TRANSACTIONID']; $cart = \CoreShop\Model\Cart::findByCustomIdentifier($transactionIdentification); if ($cart instanceof \CoreShop\Model\Cart) { if (strstr($returnvalue, "ACK")) { $order = $cart->createOrder(\CoreShop\Model\Order\State::getById(\CoreShop\Model\Configuration::get("SYSTEM.ORDERSTATE.PAYMENT")), $this->getModule(), $cart->getTotal(), $this->view->language); $payments = $order->getPayments(); foreach ($payments as $p) { $dataBrick = new CoreShopPaymentPayunity($p); $dataBrick->setIdentificationUniqeId($_POST['IDENTIFICATION_UNIQUEID']); $dataBrick->setIdentificationShortId($_POST['IDENTIFICATION_SHORTID']); $p->save(); } echo Pimcore\Tool::getHostUrl() . $this->getModule()->getConfirmationUrl($order); } else { echo Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } } else { echo Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } } else { echo Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } exit; //We only need to output a URL for Payunity }
public function paymentReturnAction() { $transaction = $_REQUEST['reference']; $status = $_REQUEST['transStatus']; if ($status === 'Y') { if ($transaction) { $cart = \CoreShop\Model\Cart::findByCustomIdentifier($transaction); if ($cart instanceof \CoreShop\Model\Cart) { $order = $cart->createOrder(\CoreShop\Model\Order\State::getById(\CoreShop\Model\Configuration::get("SYSTEM.ORDERSTATE.PAYMENT")), $this->getModule(), $this->cart->getTotal(), $this->view->language); $payments = $order->getPayments(); foreach ($payments as $p) { $dataBrick = new \Pimcore\Model\Object\Objectbrick\Data\CoreShopPaymentOmnipay($p); $dataBrick->setTransactionId($transaction); $p->save(); } $this->view->redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getConfirmationUrl($order); } else { $this->view->redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } } else { $this->view->redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } } else { $this->view->redirectUrl = Pimcore\Tool::getHostUrl() . $this->getModule()->getErrorUrl(); } $this->disableLayout(); }
/** * Check if Cart is Valid for Condition * * @param Cart $cart * @param PriceRule $priceRule * @param bool|false $throwException * @return bool * @throws \Exception */ public function checkCondition(Cart $cart, PriceRule $priceRule, $throwException = false) { //Check Cart Amount if ($this->getMinAmount() > 0) { $minAmount = $this->getMinAmount(); $minAmount = Tool::convertToCurrency($minAmount, $this->getCurrency(), Tool::getCurrency()); $cartTotal = $cart->getSubtotal(); if ($minAmount > $cartTotal) { if ($throwException) { throw new \Exception("You have not reached the minimum amount required to use this voucher"); } else { return false; } } } return true; }
/** * Check if Cart is Valid for Condition * * @param Cart $cart * @param PriceRule $priceRule * @param bool|false $throwException * @return bool * @throws \Exception */ public function checkCondition(Cart $cart, PriceRule $priceRule, $throwException = false) { $found = false; if ($this->getCategory() instanceof CoreShopCategory) { foreach ($cart->getItems() as $i) { if ($i->getProduct()->inCategory($this->getCategory())) { $found = true; } } } if (!$found) { if ($throwException) { throw new \Exception("You cannot use this voucher with these products"); } else { return false; } } return true; }
/** * get payment fee * * @param Cart $cart * @return float */ private function getPaymentFeeForCart(Cart $cart) { $carrier = $cart->getCarrier(); if (Configuration::get("COD.CARRIER.PRICE." . $carrier->getId())) { return Configuration::get("COD.CARRIER.PRICE." . $carrier->getId()); } return 0; }