private function addSessionErrorMessage(Ess_M2ePro_Model_Order $order) { if ($order->isComponentModeEbay()) { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_ebay_log/order', array('order_id' => $order->getId())); } else { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_common_log/order', array('order_id' => $order->getId())); } $startLink = '<a href="' . $url . '" target="_blank">'; $endLink = '</a>'; $channel = $order->getComponentTitle(); $message = Mage::helper('M2ePro')->__('Shipping Status for %s Order was not updated. View %sorder log%s for more details.', $channel, $startLink, $endLink); Mage::getSingleton('adminhtml/session')->addError($message); }
private function addSessionErrorMessage(Ess_M2ePro_Model_Order $order) { if ($order->isComponentModeEbay()) { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_ebay_log/order', array('order_id' => $order->getId())); } else { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_common_log/order', array('order_id' => $order->getId())); } $channel = $order->getComponentTitle(); // M2ePro_TRANSLATIONS // Shipping Status for %chanel_title% Order was not updated. View <a href="%url%" target="_blank" >order log</a> for more details. $message = Mage::helper('M2ePro')->__('Shipping Status for %chanel_title% Order was not updated.' . ' View <a href="%url% target="_blank" >order log</a>' . ' for more details.', $channel, $url); Mage::getSingleton('adminhtml/session')->addError($message); }
private function addSessionErrorMessage(Ess_M2ePro_Model_Order $order) { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_ebay_order/view', array('id' => $order->getId())); $startLink = '<a href="' . $url . '" target="_blank">'; $endLink = '</a>'; $message = Mage::helper('M2ePro')->__('Payment Status for eBay Order was not updated. View %sorder log%s for more details.', $startLink, $endLink); Mage::getSingleton('adminhtml/session')->addError($message); }
private function addSessionErrorMessage(Ess_M2ePro_Model_Order $order) { $url = Mage::helper('adminhtml')->getUrl('M2ePro/adminhtml_common_log/order', array('order_id' => $order->getId())); // M2ePro_TRANSLATIONS // Cancel for Amazon Order was not performed. View <a href="%url%" target="_blank" >order log</a> for more details. $message = Mage::helper('M2ePro')->__('Cancel for Amazon Order was not performed.' . ' View <a href="%url% target="_blank" >order log</a>' . ' for more details.', $url); Mage::getSingleton('adminhtml/session')->addError($message); }
public function getOrdersContainingItemsFromOrder(Ess_M2ePro_Model_Order $order) { // Prepare item_id-transaction_id pairs for sql // ------------- $readConnection = $this->getReadConnection(); $whereSql = array(); foreach ($order->getItemsCollection()->getItems() as $orderItem) { $itemIdSql = $readConnection->quoteInto('?', $orderItem->getData('item_id')); $transactionIdSql = $readConnection->quoteInto('?', $orderItem->getData('transaction_id')); $whereSql[] = "(item_id = {$itemIdSql} AND transaction_id = {$transactionIdSql})"; } $whereSql = implode(' OR ', $whereSql); // ------------- // Find orders which contains at least one order item from current order // ------------- /** @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */ $collection = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order'); $collection->getSelect()->distinct(true)->join(array('moi' => Mage::getResourceModel('M2ePro/Order_Item')->getMainTable()), '(`moi`.`order_id` = `main_table`.`id`)', array())->join(array('meoi' => Mage::getResourceModel('M2ePro/Ebay_Order_Item')->getMainTable()), '(`meoi`.`order_item_id` = `moi`.`id`)', array())->where($whereSql)->where('`main_table`.`id` != ?', $order->getId())->where('`main_table`.`account_id` = ?', $order->getAccountId())->order(array('main_table.id ASC')); // ------------- return $collection->getItems(); }
/** * @param Ess_M2ePro_Model_Order $order * @param Mage_Sales_Model_Order_Shipment $shipment * * @return null|Ess_M2ePro_Model_Order_Item */ private function getItemToShip(Ess_M2ePro_Model_Order $order, Mage_Sales_Model_Order_Shipment $shipment) { if ($order->isSingle()) { return null; } $shipmentItems = $shipment->getAllItems(); if (count($shipmentItems) != 1) { return null; } /** @var $shipmentItem Mage_Sales_Model_Order_Shipment_Item */ $shipmentItem = reset($shipmentItems); $additionalData = $shipmentItem->getOrderItem()->getAdditionalData(); $additionalData = is_string($additionalData) ? @unserialize($additionalData) : array(); $itemId = $transactionId = null; $orderItemDataIdentifier = Ess_M2ePro_Helper_Data::CUSTOM_IDENTIFIER; if (isset($additionalData['ebay_item_id']) && isset($additionalData['ebay_transaction_id'])) { // backward compatibility with versions 5.0.4 or less $itemId = $additionalData['ebay_item_id']; $transactionId = $additionalData['ebay_transaction_id']; } elseif (isset($additionalData[$orderItemDataIdentifier]['items'])) { if (!is_array($additionalData[$orderItemDataIdentifier]['items']) || count($additionalData[$orderItemDataIdentifier]['items']) != 1) { return null; } if (isset($additionalData[$orderItemDataIdentifier]['items'][0]['item_id'])) { $itemId = $additionalData[$orderItemDataIdentifier]['items'][0]['item_id']; } if (isset($additionalData[$orderItemDataIdentifier]['items'][0]['transaction_id'])) { $transactionId = $additionalData[$orderItemDataIdentifier]['items'][0]['transaction_id']; } } if (is_null($itemId) || is_null($transactionId)) { return null; } $item = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order_Item')->addFieldToFilter('order_id', $order->getId())->addFieldToFilter('item_id', $itemId)->addFieldToFilter('transaction_id', $transactionId)->getFirstItem(); return $item->getId() ? $item : null; }
private function openUnpaidItemProcess(Ess_M2ePro_Model_Order $order) { $collection = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order_Item'); $collection->addFieldToFilter('order_id', $order->getId()); $collection->addFieldToFilter('unpaid_item_process_state', Ess_M2ePro_Model_Ebay_Order_Item::UNPAID_ITEM_PROCESS_NOT_OPENED); $items = $collection->getItems(); if (count($items) == 0) { return; } $action = Ess_M2ePro_Model_Connector_Server_Ebay_OrderItem_Dispatcher::ACTION_ADD_DISPUTE; $params = array('explanation' => Ess_M2ePro_Model_Ebay_Order_Item::DISPUTE_EXPLANATION_BUYER_HAS_NOT_PAID, 'reason' => Ess_M2ePro_Model_Ebay_Order_Item::DISPUTE_REASON_BUYER_HAS_NOT_PAID); /** @var $dispatcher Ess_M2ePro_Model_Connector_Server_Ebay_OrderItem_Dispatcher */ $dispatcher = Mage::getModel('M2ePro/Connector_Server_Ebay_OrderItem_Dispatcher'); $dispatcher->process($action, $items, $params); $this->totalOpenedUnpaidItemProcesses += count($items); }
private function getOrderItemsForUnpaidItemProcess(Ess_M2ePro_Model_Order $order) { /** @var Ess_M2ePro_Model_Mysql4_Order_Item_Collection $collection */ $collection = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order_Item'); $collection->addFieldToFilter('order_id', $order->getId()); $collection->addFieldToFilter('unpaid_item_process_state', Ess_M2ePro_Model_Ebay_Order_Item::UNPAID_ITEM_PROCESS_NOT_OPENED); return $collection->getItems(); }
private function getItemsToShip(Ess_M2ePro_Model_Order $order, Mage_Sales_Model_Order_Shipment $shipment) { $productTypesNotAllowedByDefault = array(Mage_Catalog_Model_Product_Type::TYPE_BUNDLE, Mage_Catalog_Model_Product_Type::TYPE_GROUPED); $items = array(); $allowedItems = array(); foreach ($shipment->getAllItems() as $shipmentItem) { /** @var $shipmentItem Mage_Sales_Model_Order_Shipment_Item */ $orderItem = $shipmentItem->getOrderItem(); $parentOrderItemId = $orderItem->getParentItemId(); if (!is_null($parentOrderItemId)) { !in_array($parentOrderItemId, $allowedItems) && ($allowedItems[] = $parentOrderItemId); continue; } if (!in_array($orderItem->getProductType(), $productTypesNotAllowedByDefault)) { $allowedItems[] = $orderItem->getId(); } $additionalData = $orderItem->getAdditionalData(); $additionalData = is_string($additionalData) ? @unserialize($additionalData) : array(); $itemId = $transactionId = null; $orderItemDataIdentifier = Ess_M2ePro_Helper_Data::CUSTOM_IDENTIFIER; if (isset($additionalData['ebay_item_id']) && isset($additionalData['ebay_transaction_id'])) { // backward compatibility with versions 5.0.4 or less $itemId = $additionalData['ebay_item_id']; $transactionId = $additionalData['ebay_transaction_id']; } elseif (isset($additionalData[$orderItemDataIdentifier]['items'])) { if (!is_array($additionalData[$orderItemDataIdentifier]['items']) || count($additionalData[$orderItemDataIdentifier]['items']) != 1) { return null; } if (isset($additionalData[$orderItemDataIdentifier]['items'][0]['item_id'])) { $itemId = $additionalData[$orderItemDataIdentifier]['items'][0]['item_id']; } if (isset($additionalData[$orderItemDataIdentifier]['items'][0]['transaction_id'])) { $transactionId = $additionalData[$orderItemDataIdentifier]['items'][0]['transaction_id']; } } if (is_null($itemId) || is_null($transactionId)) { continue; } $item = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order_Item')->addFieldToFilter('order_id', $order->getId())->addFieldToFilter('item_id', $itemId)->addFieldToFilter('transaction_id', $transactionId)->getFirstItem(); if (!$item->getId()) { continue; } $items[$orderItem->getId()] = $item; } $resultItems = array(); foreach ($items as $orderItemId => $item) { if (!in_array($orderItemId, $allowedItems)) { continue; } $resultItems[] = $item; } return $resultItems; }