public function __construct() { $orderId = $this->getRequest()->getParam('order_id'); $this->_order = Mage::getModel('sales/order')->load($orderId); $this->_helper = Mage::helper('tig_myparcel'); $this->_myParcelShipments = Mage::getModel('tig_myparcel/shipment')->getCollection()->addFieldToFilter('order_id', $this->_order->getId()); }
/** * @param Varien_Event_Observer $observer * @return $this */ public function salesOrderSaveAfter($observer) { $event = $observer->getEvent(); /** @noinspection PhpUndefinedMethodInspection */ /** @var Mage_Sales_Model_Order $order_after */ $order_after = $event->getOrder(); if ($order_after && $this->_temp_order_before && $order_after->getId() == $this->_temp_order_before->getId()) { $order_before = $this->_temp_order_before; if ($order_after && $order_before) { $status_before = $order_before->getStatus(); $status_after = $order_after->getStatus(); $state_before = $order_before->getState(); $state_after = $order_after->getState(); $state_changed = $status_before != $status_after || $state_before != $state_after; /** @var Payin7_Payments_Model_Payin7orderhistory $mh */ $mh = Mage::getModel('payin7payments/payin7orderhistory'); if ($state_changed) { $mh->markOrderStateChanged($order_after); } else { $mh->markOrderUpdated($order_after); } $this->_flushFastOrderHistory(); } $this->_temp_order_before = null; } return $this; }
/** * Check order view availability * * @param Mage_Sales_Model_Order $order * @return bool */ protected function _canViewOrder($order) { $currentOrder = Mage::registry('current_order'); if ($order->getId() && $order->getId() === $currentOrder->getId()) { return true; } return false; }
/** * Checks that there's an valid transaction id for the requested order. * * @return TRUE if transaction id was found and validated * @return FALSE if transaction id was not found or could not be validated */ protected function _checkOrderInformation() { if (!$this->_order->getId()) { Mage::helper('barzahlen')->bzLog('controller/ipn: Unable to find the given order', $this->_receivedData); return false; } $transactionId = isset($this->_receivedData['origin_transaction_id']) ? $this->_receivedData['origin_transaction_id'] : $this->_receivedData['transaction_id']; if ($transactionId != $this->_order->getPayment()->getAdditionalInformation('transaction_id')) { Mage::helper('barzahlen')->bzLog('controller/ipn: Unable to find the transaction id in the given order', $this->_receivedData); return false; } return true; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ public function appendPaymentInfoToOrder(Mage_Sales_Model_Order &$order) { if (!$order->getId()) { return $this; } $bind = array(':order_id' => $order->getId()); /** @var Magento_Db_Adapter_Pdo_Mysql $read */ $read = $this->_getReadAdapter(); $select = $read->select()->from($this->getMainTable(), array('rede_payment_id' => 'payment_id', 'rede_transaction_id' => 'transaction_id'))->where('order_id = :order_id'); $result = $read->fetchRow($select, $bind); if (!$result) { return $this; } $order->addData($result); return $this; }
public function processPaymentCaptureResponse(array $request) { $this->_request = $request; $orderId = Mage::getSingleton('checkout/session')->getLastRealOrderId(); $purchase_id = $this->getRequestData('purchase_id'); Mage::getSingleton('checkout/session')->setPurchaseId($purchase_id); // Load appropriate order $this->_order = Mage::getModel('sales/order')->loadByIncrementId($orderId); if (!$this->_order->getId()) { throw new Exception('Requested order with id ' . $orderId . ' does not exists.'); } $result = array(); if ($this->_verifyResponse($purchase_id)) { // Payment was successful, so update the order's state // and send order email and move to the success page $result['status'] = 'success'; $result['redirect_to'] = Mage::getBaseUrl() . 'sign2pay/payment/success'; $result['params'] = array('purchase_id' => $purchaseId); Mage::getSingleton('checkout/session')->setPurchaseId($purchase_id); // Register the payment capture $this->_registerPaymentCapture(); } else { // Register the payment failure $this->_registerPaymentFailure(); } if (!$result) { // There is a problem in the response we got $result['status'] = 'failure'; $result['redirect_to'] = Mage::getBaseUrl() . 'sign2pay/payment/failure'; $result['params'] = array('ref_id' => $orderId, 'message' => Mage::helper('sign2pay')->__('Sorry, but we could not process your payment at this time.')); } return $result; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ protected function _redirectByOrder(Mage_Sales_Model_Order $order) { if (!$order->getId()) { $this->_redirectCart(); return $this; } if ($order->isCanceled()) { $this->_redirectPaymentError(); return $this; } switch ($order->getState()) { case Mage_Sales_Model_Order::STATE_NEW: $this->_redirectOrderPending(); break; case Mage_Sales_Model_Order::STATE_CANCELED: $this->_redirectPaymentError(); break; case Mage_Sales_Model_Order::STATE_PROCESSING: case Mage_Sales_Model_Order::STATE_COMPLETE: case Mage_Sales_Model_Order::STATE_CLOSED: case Mage_Sales_Model_Order::STATE_HOLDED: case Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW: default: $this->_redirectOrderState(); break; } return $this; }
/** * @param Mage_Sales_Model_Order $order * @param array $result * * @return string */ public function processOrderConsultStatus(Mage_Sales_Model_Order $order, $status = null, $result = array(), $processType = null) { $transactionId = isset($result['id']) ? $result['id'] : null; if ($result && $transactionId && $order->getId()) { /** @var Rede_ClickPag_Model_Payments $payments */ $payments = Mage::getModel('rede_clickpag/payments')->loadByOrderId($order->getId()); $payments->setTransactionId($transactionId)->setAdditionalInformation($result)->save(); } if (empty($processType)) { $processType = self::PROCESS_TYPE_CONSULT; } if (!empty($status)) { return $this->processOrderStatus($order, $status, $transactionId, $processType); } return self::REDIRECT_STATE; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ public function setOrder(Mage_Sales_Model_Order $order) { if ($order && $order->getId()) { $this->_order = $order; } return $this; }
/** * @param Mage_Sales_Model_Order $order * @param Payone_Api_Response_Interface $response * @param Payone_Api_Request_Interface $request * @throws Payone_Core_Exception_TransactionAlreadyExists * @return null|Payone_Core_Model_Domain_Transaction */ public function createByApiResponse(Mage_Sales_Model_Order $order, Payone_Api_Response_Interface $response, Payone_Api_Request_Interface $request) { $transaction = $this->getFactory()->getModelTransaction(); $transaction->load($response->getTxid(), 'txid'); // should not exist but to be sure load by txid if ($transaction->hasData()) { throw new Payone_Core_Exception_TransactionAlreadyExists($response->getTxid()); } $transaction->setTxid($response->getTxid()); $transaction->setLastTxaction($response->getStatus()); $transaction->setUserid($response->getUserid()); $transaction->setStoreId($order->getStoreId()); $transaction->setOrderId($order->getId()); $transaction->setReference($order->getIncrementId()); $transaction->setCurrency($order->getOrderCurrencyCode()); $transaction->setCustomerId($order->getCustomerId()); $transaction->setClearingtype($request->getClearingtype()); $transaction->setMode($request->getMode()); $transaction->setMid($request->getMid()); $transaction->setAid($request->getAid()); $transaction->setPortalid($request->getPortalid()); $transaction->setLastSequencenumber(0); $data = $response->toArray(); $transaction->addData($data); $transaction->save(); return $transaction; }
public function applyOrder(Mage_Sales_Model_Order $order, $sendEmail = false) { $this->_order = $order; $timestamp = new Zend_Date(); $this->setOrderId($order->getId())->setIsNotified($sendEmail ? 1 : 0)->setAssignTime($timestamp->toString(Zend_Date::ISO_8601))->save(); return $this; }
protected function _getButtonsHtml(SM_Vendors_Model_Order $vendorOrder, Mage_Sales_Model_Order $order, $vendorId) { $buttonGroups = array(); $urlParams = array('order_id' => $order->getId(), 'do_as_vendor' => $vendorId); if ($vendorOrder->canCancel()) { $message = Mage::helper('sales')->__('Are you sure you want to cancel this order?'); $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_cancel_' . $vendorId, 'label' => Mage::helper('sales')->__('Cancel'), 'onclick' => 'deleteConfirm(\'' . $message . '\', \'' . $this->getUrl('*/vendors_order/cancel', $urlParams) . '\')')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canInvoice()) { $_label = $order->getForcedDoShipmentWithInvoice() ? Mage::helper('sales')->__('Invoice and Ship') : Mage::helper('sales')->__('Invoice'); $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_invoice_' . $vendorId, 'label' => $_label, 'onclick' => 'setLocation(\'' . $this->getUrl('*/vendors_order_invoice/start', $urlParams) . '\')', 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canShip() && !$order->getForcedDoShipmentWithInvoice()) { $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_ship_' . $vendorId, 'label' => Mage::helper('sales')->__('Ship'), 'onclick' => 'setLocation(\'' . $this->getUrl('*/vendors_order_shipment/new', $urlParams) . '\')', 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if ($vendorOrder->canCreditmemo()) { $message = Mage::helper('sales')->__('This will create an offline refund. To create an online refund, open an invoice and create credit memo for it. Do you wish to proceed?'); $urlParams['_current'] = true; $creditMemoUrl = $this->getUrl('*/vendors_order_creditmemo/new', $urlParams); $onClick = "setLocation('{$creditMemoUrl}')"; if ($order->getPayment()->getMethodInstance()->isGateway()) { $onClick = "confirmSetLocation('{$message}', '{$creditMemoUrl}')"; } $button = $this->getLayout()->createBlock('adminhtml/widget_button')->setData(array('id' => 'order_creditmemo_' . $vendorId, 'label' => Mage::helper('sales')->__('Credit Memo'), 'onclick' => $onClick, 'class' => 'go')); $buttonGroups[] = $button->toHtml(); } if (!empty($buttonGroups)) { return '<p class="form-buttons">' . implode("\n", $buttonGroups) . '</p>'; } else { return ''; } }
/** * @magentoDataFixture Mage/Sales/_files/order.php */ public function testOrderViewAction() { $order = new Mage_Sales_Model_Order(); $order->load('100000001', 'increment_id'); $this->dispatch('admin/sales_order/view/order_id/' . $order->getId()); $this->assertContains('Los Angeles', $this->getResponse()->getBody()); }
/** * Check order view availability * * @param Mage_Sales_Model_Order $order * @return bool */ protected function _canViewOrder($order) { $customerId = Mage::getSingleton('customer/session')->getCustomerId(); if ($order->getId() && $order->getCustomerId() && $order->getCustomerId() == $customerId) { return true; } return false; }
/** * @param Mage_Sales_Model_Order $order * * @return $this */ public function setOrder(Mage_Sales_Model_Order $order) { if (!$order || !$order->getId()) { return $this; } $this->_order = $order; return $this; }
/** * Send Payment Decline email */ protected function _sendPaymentDeclineEmail(Mage_Sales_Model_Order $order, $type = 'soft') { $emailTemplate = Mage::getModel('core/email_template')->loadDefault('amazon_payments_async_decline_' . $type); $orderUrl = Mage::getUrl('sales/order/view', array('order_id' => $order->getId(), '_store' => $order->getStoreId(), '_forced_secure' => true)); $templateParams = array('order_url' => $orderUrl, 'store' => Mage::app()->getStore($order->getStoreId()), 'customer' => Mage::getModel('customer/customer')->load($order->getCustomerId())); $sender = array('name' => Mage::getStoreConfig('trans_email/ident_general/email', $order->getStoreId()), 'email' => Mage::getStoreConfig('trans_email/ident_general/name', $order->getStoreId())); $emailTemplate->sendTransactional($emailTemplate->getId(), $sender, $order->getCustomerEmail(), $order->getCustomerName(), $templateParams, $order->getStoreId()); }
/** * Converting order object to quote object * * @param Mage_Sales_Model_Order $order * @return Mage_Sales_Model_Quote */ public function toQuote(Mage_Sales_Model_Order $order, $quote = null) { if (!$quote instanceof Mage_Sales_Model_Quote) { $quote = Mage::getModel('sales/quote'); } $quote->setStoreId($order->getStoreId())->setOrderId($order->getId())->setCustomerId($order->getCustomerId())->setCustomerEmail($order->getCustomerEmail())->setCustomerGroupId($order->getCustomerGroupId())->setCustomerTaxClassId($order->getCustomerTaxClassId())->setCustomerIsGuest($order->getCustomerIsGuest())->setBaseCurrencyCode($order->getBaseCurrencyCode())->setStoreCurrencyCode($order->getStoreCurrencyCode())->setQuoteCurrencyCode($order->getOrderCurrencyCode())->setStoreToBaseRate($order->getStoreToBaseRate())->setStoreToQuoteRate($order->getStoreToOrderRate())->setGrandTotal($order->getGrandTotal())->setBaseGrandTotal($order->getBaseGrandTotal())->setCouponCode($order->getCouponCode())->setGiftcertCode($order->getGiftcertCode())->setAppliedRuleIds($order->getAppliedRuleIds())->collectTotals(); Mage::dispatchEvent('sales_convert_order_to_quote', array('order' => $order, 'quote' => $quote)); return $quote; }
/** * * @param Mage_Sales_Model_Order $order * @return Customweb_Subscription_Model_Subscription|null */ public function getSubscriptionByOrder(Mage_Sales_Model_Order $order) { $link = Mage::getModel('customweb_subscription/order')->load($order->getId(), 'order_id'); if ($link->getId()) { return Mage::getModel('customweb_subscription/subscription')->load($link->getSubscriptionId()); } else { return null; } }
/** * Checking returned parameters * Thorws Mage_Core_Exception if error * @param bool $fullCheck Whether to make additional validations such as payment status, transaction signature etc. * * @return array $params request params */ protected function _validateEventData($fullCheck = true) { // get request variables $params = $this->_eventData; if (empty($params)) { Mage::throwException('Request does not contain any elements.'); } // check order ID if (empty($params['transaction_id']) || $fullCheck == false && $this->_getCheckout()->getMoneybookersRealOrderId() != $params['transaction_id']) { Mage::throwException('Missing or invalid order ID.'); } // load order for further validation $this->_order = Mage::getModel('sales/order')->loadByIncrementId($params['transaction_id']); if (!$this->_order->getId()) { Mage::throwException('Order not found.'); } if (0 !== strpos($this->_order->getPayment()->getMethodInstance()->getCode(), 'moneybookers_')) { Mage::throwException('Unknown payment method.'); } // make additional validation if ($fullCheck) { // check payment status if (empty($params['status'])) { Mage::throwException('Unknown payment status.'); } // check transaction signature if (empty($params['md5sig'])) { Mage::throwException('Invalid transaction signature.'); } $checkParams = array('merchant_id', 'transaction_id', 'secret', 'mb_amount', 'mb_currency', 'status'); $md5String = ''; foreach ($checkParams as $key) { if ($key == 'merchant_id') { $md5String .= Mage::getStoreConfig(Phoenix_Moneybookers_Helper_Data::XML_PATH_CUSTOMER_ID, $this->_order->getStoreId()); } elseif ($key == 'secret') { $secretKey = Mage::getStoreConfig(Phoenix_Moneybookers_Helper_Data::XML_PATH_SECRET_KEY, $this->_order->getStoreId()); if (empty($secretKey)) { Mage::throwException('Secret key is empty.'); } $md5String .= strtoupper(md5($secretKey)); } elseif (isset($params[$key])) { $md5String .= $params[$key]; } } $md5String = strtoupper(md5($md5String)); if ($md5String != $params['md5sig']) { Mage::throwException('Hash is not valid.'); } // check transaction amount if currency matches if ($this->_order->getOrderCurrencyCode() == $params['mb_currency']) { if (round($this->_order->getGrandTotal(), 2) != $params['mb_amount']) { Mage::throwException('Transaction amount does not match.'); } } } return $params; }
public function loadByOrder(Adyen_Subscription_Model_Subscription $object, Mage_Sales_Model_Order $order) { $orderSelect = Mage::getResourceModel('adyen_subscription/subscription_order_collection')->addFieldToFilter('order_id', $order->getId())->getSelect(); $orderSelect->reset($orderSelect::COLUMNS); $orderSelect->columns('subscription_id'); $subscriptionId = $this->_getConnection('read')->fetchOne($orderSelect); $this->load($object, $subscriptionId); return $this; }
/** * Set order object and grab some metadata from it * * @param Mage_Sales_Model_Order $order * @return Mage_Sales_Model_Order_Status_History */ public function setOrder(Mage_Sales_Model_Order $order) { $this->_order = $order; $id = $order->getId(); if (!$id) { $this->_shouldSetOrderBeforeSave = true; } return $this->setParentId($id)->setStoreId($order->getStoreId()); }
/** * Check order view availability * * @param Mage_Sales_Model_Order $order * @return bool */ protected function _canViewOrder($order) { $customerId = Mage::getSingleton('customer/session')->getCustomerId(); $availableStates = Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates(); if ($order->getId() && $order->getCustomerId() && $order->getCustomerId() == $customerId && in_array($order->getState(), $availableStates, $strict = true)) { return true; } return false; }
/** * Get Order by quoteId * * @return Mage_Sales_Model_Order */ protected function _getOrder() { if (is_null($this->_order)) { $this->_order = Mage::getModel('quote/order')->load($this->getOnepage()->getQuote()->getId(), 'quote_id'); if (!$this->_order->getId()) { throw new Mage_Payment_Model_Info_Exception(Mage::helper('core')->__("Can not create invoice. Order was not found.")); } } return $this->_order; }
/** * Send Payment Decline email */ protected function _sendPaymentDeclineEmail(Mage_Sales_Model_Order $order) { $emailTemplate = Mage::getModel('core/email_template')->loadDefault('amazon_payments_async_decline'); $orderUrl = Mage::getUrl('sales/order/view', array('order_id' => $order->getId(), '_store' => $order->getStoreId(), '_forced_secure' => true)); $templateParams = array('order_url' => $orderUrl, 'store' => Mage::app()->getStore($order->getStoreId()), 'customer' => Mage::getModel('customer/customer')->load($order->getCustomerId())); $processedTemplate = $emailTemplate->getProcessedTemplate($templateParams); // Test template: //var_dump($emailTemplate->debug()); echo $processedTemplate; $emailTemplate->setSenderEmail(Mage::getStoreConfig('trans_email/ident_general/email', $order->getStoreId()))->setSenderName(Mage::getStoreConfig('trans_email/ident_general/name', $order->getStoreId()))->send($order->getCustomerEmail(), $order->getCustomerName(), $templateParams); }
/** * Converting order object to quote object * * @param Mage_Sales_Model_Order $order * @return Mage_Sales_Model_Quote */ public function toQuote(Mage_Sales_Model_Order $order, $quote = null) { if (!$quote instanceof Mage_Sales_Model_Quote) { $quote = Mage::getModel('sales/quote'); } $quote->setStoreId($order->getStoreId())->setOrderId($order->getId()); Mage::helper('core')->copyFieldset('sales_convert_order', 'to_quote', $order, $quote); Mage::dispatchEvent('sales_convert_order_to_quote', array('order' => $order, 'quote' => $quote)); return $quote; }
/** * @throws Payone_Core_Exception_OrderCannotInvoice|Payone_Core_Exception_OrderNotFound * @param Mage_Sales_Model_Order $order * @param array $itemsQty * @param string $invoiceIncrementId * @return Mage_Sales_Model_Order_Invoice */ public function createByOrder(Mage_Sales_Model_Order $order, array $itemsQty = array(), $invoiceIncrementId = null) { $orderIncrementId = $order->getIncrementId(); if (!$order->getId()) { throw new Payone_Core_Exception_OrderNotFound($orderIncrementId); } if (!$order->canInvoice()) { throw new Payone_Core_Exception_OrderCannotInvoice($orderIncrementId); } return $this->create($order, $itemsQty, $invoiceIncrementId); }
/** * Cancel the order if is in the current Magento store, otherwise, simply * set the state of the order to a state of canceled. * * @return self */ protected function _cancelOrder() { if ($this->_order->getId()) { // Only save order that's in this magento store $this->_order->cancel()->save(); } else { // The order is not in this magento store, simply set state of this empty order to cancel $this->_order->setState(Mage_Sales_Model_Order::STATE_CANCELED); } return $this; }
protected function _saveOrderHistory(Mage_Sales_Model_Order $order, $change_type, $data = null) { $uid = $order->getData('payin7_order_identifier'); $order_sent = $order->getData('payin7_order_sent'); if (!$uid || !$order_sent) { return false; } $m = Mage::getModel('payin7payments/payin7orderhistory'); $m->setData(array('order_id' => $order->getId(), 'order_unique_id' => $uid, 'created_on' => date('Y-m-d H:i:s'), 'change_type' => $change_type, 'data' => $data ? @serialize($data) : null)); $m->save(); return $this; }
/** * Retrieve points earned for order * * @param Mage_Sales_Model_Order $order * @return int */ public function getPointsForOrder($order) { $websiteId = Mage::app()->getWebsite()->getId(); $collection = Mage::getModel('enterprise_reward/reward_history')->getCollection()->addCustomerFilter(Mage::getSingleton('customer/session')->getCustomerId())->addWebsiteFilter($websiteId)->setExpiryConfig(Mage::helper('enterprise_reward')->getExpiryConfig())->addExpirationDate($websiteId)->skipExpiredDuplicates()->addFieldToFilter('action', Enterprise_Reward_Model_Reward::REWARD_ACTION_ORDER_EXTRA)->addFieldToFilter('entity', $order->getId())->setDefaultOrder(); if (0 == $collection->getSize()) { return 0; } $count = 0; foreach ($collection as $item) { $count += $item->getPointsDelta(); } return $count; }
/** * @param Mage_Sales_Model_Order $order */ protected function _sendAutoShootingRequest(Mage_Sales_Model_Order $order) { if (!$this->_autoShootingIsEnabled()) { return; } /** * It's required to have a valid order to go on with the request. */ if (!$order || !$order->getId()) { return; } $this->_getConnection()->postSaleDispatch($order); }