public function testSetGetNumber() { $this->assertNull($this->_model->getNumber()); $this->_model->setNumber('test'); $this->assertEquals('test', $this->_model->getNumber()); $this->assertEquals('test', $this->_model->getTrackNumber()); }
/** * Adds shipment with specified tracking number * * @param Mage_Sales_Model_Order_Shipment $shipment * @param Mage_Sales_Model_Order_Shipment_Track $track */ private function _addShipmentWithTrack(Mage_Sales_Model_Order_Shipment $shipment, Mage_Sales_Model_Order_Shipment_Track $track = null) { $mageCarrierCode = $this->_getCarrierCodeFromOrder($shipment->getOrder()); $carrierCode = $this->_getConfig()->getCarrierCode($mageCarrierCode); $otherCarrierName = $carrierCode == Mage_GoogleTrustedStore_Model_Config::CARRIER_CODE_OTHER ? $this->_getConfig()->getOtherCarrierName($mageCarrierCode) : ''; $this->_addRow(array($shipment->getOrder()->getIncrementId(), trim($track ? $track->getNumber() : ''), $carrierCode, $otherCarrierName, $shipment->getCreatedAtDate()->toString('yyyy-MM-dd'))); }
public function testIsCustom() { $this->_model->setCarrierCode('ups'); $this->assertFalse($this->_model->isCustom()); $this->_model->setCarrierCode('custom'); $this->assertTrue($this->_model->isCustom()); }
public function testAddData() { $number = 123; $this->assertNull($this->_model->getTrackNumber()); $this->_model->addData(array('number' => $number, 'test' => true)); $this->assertTrue($this->_model->getTest()); $this->assertEquals($number, $this->_model->getTrackNumber()); }
/** * Retrieve tracking url with params * * @param string $key * @param Mage_Sales_Model_Order|Mage_Sales_Model_Order_Shipment|Mage_Sales_Model_Order_Shipment_Track $model * @param string $method Optional - method of a model to get id * @return string */ protected function _getTrackingUrl($key, $model, $method = 'getId') { $helper = Mage::helper('Mage_Core_Helper_Data'); $urlPart = "{$key}:{$model->{$method}()}:{$model->getProtectCode()}"; $param = array('hash' => $helper->urlEncode($urlPart)); $storeModel = Mage::app()->getStore($model->getStoreId()); return $storeModel->getUrl('shipping/tracking/popup', $param); }
/** * When creating a new label, update shipment track record with filename info * * @param Mage_Sales_Model_Order_Shipment_Track $track * @param array $labelImages */ public function updateTrack($track, $labelImages) { $fileNames = array(); $labelDir = Mage::getConfig()->getVarDir('label') . DS; foreach ((array) $labelImages as $i => $label) { $fn = $track->getNumber() . '-' . $i . '.png'; $fileNames[] = $fn; file_put_contents($labelDir . $fn, base64_decode($label)); } $track->setLabelImage(join("\n", $fileNames)); $track->setLabelFormat('PDF'); return $this; }
public function addTrack(Mage_Sales_Model_Order_Shipment_Track $track) { $track->setShipment($this)->setParentId($this->getId())->setOrderId($this->getOrderId())->setStoreId($this->getStoreId()); if (!$track->getId()) { $this->getTracksCollection()->addItem($track); } /** * Track saving is implemented in _afterSave() * This enforces Mage_Core_Model_Abstract::save() not to skip _afterSave() */ $this->_hasDataChanges = true; return $this; }
/** * @param Mage_Sales_Model_Order_Shipment_Track $magento_track * @return mixed */ private function _saveTrack(Mage_Sales_Model_Order_Shipment_Track $magento_track) { $magento_track_data = $magento_track->getData(); $magento_order_data = $magento_track->getShipment()->getOrder()->getData(); $magento_shipping_address_data = $magento_track->getShipment()->getOrder()->getShippingAddress()->getData(); $track = Mage::getModel('track/track'); $track->setTrackingNumber($this->_getTrackNo($magento_track)); $track->setShipCompCode($magento_track_data['carrier_code']); $track->setTitle($magento_order_data['increment_id']); $track->setOrderId($magento_order_data['increment_id']); if ($magento_order_data['customer_email'] && $magento_order_data['customer_email'] != '') { $track->setEmail($magento_order_data['customer_email']); } if ($magento_shipping_address_data['telephone'] && $magento_shipping_address_data['telephone'] != '') { $track->setTelephone($magento_shipping_address_data['telephone']); } $config = $this->_getWebsiteConfig($magento_track->getShipment()->getOrder()); if ($config->status) { $track->setPosted(self::POSTED_NOT_YET); } else { // mark it as disabled so that cron will not touch it $track->setPosted(self::POSTED_DISABLED); } $track->save(); return $track; }
/** * Get the shipment tracking pop-up URL * * @param EbayEnterprise_Order_Model_Detail_Process_Response_Shipment * @param Mage_Sales_Model_Order_Shipment_Track * @return string */ public function getTrackingPopupUrl(EbayEnterprise_Order_Model_Detail_Process_Response_Shipment $shipment, Mage_Sales_Model_Order_Shipment_Track $track) { return $this->getUrl('*/*/romtrackingpopup', ['order_id' => $this->getOrder()->getRealOrderId(), 'shipment_id' => $shipment->getIncrementId(), 'tracking_number' => $track->getNumber()]); }
/** * Get file name of label image for shipment tracking * * @todo make flexible enough for EPL * @param Mage_Sales_Model_Order_Shipment_Track $track * @return string */ public function getTrackLabelFileName($track) { $shipment = $track->getShipment(); return Mage::getConfig()->getVarDir('label') . DS . $track->getNumber() . '.png'; }
public function addTrack(Mage_Sales_Model_Order_Shipment_Track $track) { $track->setShipment($this)->setParentId($this->getId())->setOrderId($this->getOrderId())->setStoreId($this->getStoreId()); if (!$track->getId()) { $this->getTracksCollection()->addItem($track); } return $this; }
/** * Import tracking file * */ public function importTrackingFile($t_lines) { $importedTrackingCount = 0; $skippedTrackingCount = 0; $debug = ''; for ($i = 0; $i < count($t_lines); $i++) { //skip first line (if required) $line = $t_lines[$i]; if ($i == 0 && $this->getct_import_skip_first_record()) { continue; } $tracking = null; $shipmentReference = null; //parse fixed format line if ($this->getct_import_format() == 'fixed') { $currentPosition = 0; foreach ($this->getFields('import') as $field) { $size = $field->getctf_size(); $fieldValue = substr($line, $currentPosition, $size); switch ($field->getctf_content()) { case 'tracking': $tracking = trim($fieldValue); break; case 'shipment': $shipmentReference = trim($fieldValue); break; } $currentPosition += $size; } } //parse delimiter format line if ($this->getct_import_format() == 'delimiter') { //split fields $t_columns = explode($this->getFieldSeparator('import'), $line); foreach ($this->getFields('import') as $field) { if (isset($t_columns[$field->getctf_position()])) { $fieldValue = $t_columns[$field->getctf_position()]; if ($this->getFieldDelimiter('import') != '') { $fieldValue = str_replace($this->getFieldDelimiter('import'), '', $fieldValue); } switch ($field->getctf_content()) { case 'tracking': $tracking = $fieldValue; break; case 'shipment': $shipmentReference = $fieldValue; break; } } } } //add tracking if ($tracking != null && $shipmentReference != null) { $debug .= 'process tracking ' . $tracking . ' for shipment #' . $shipmentReference . "\n"; $shipment = mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentReference); if ($shipment->getId()) { if (!$this->shipmentContainsTracking($shipment, $tracking)) { try { $debug .= 'import tracking=' . $tracking . ' for shipment=' . $shipment->getincrement_id() . "\n"; $track = new Mage_Sales_Model_Order_Shipment_Track(); $track->setNumber($tracking)->setCarrierCode($this->getct_shipping_method())->setTitle('Tracking'); $shipment->addTrack($track)->save(); $importedTrackingCount++; } catch (Exception $ex) { $debug .= 'Error for line #' . $i . ' : ' . $ex->getMessage() . "\n"; $skippedTrackingCount++; } } else { $skippedTrackingCount++; $debug .= 'Tracking already exist for line #' . $i . "\n"; } } else { $skippedTrackingCount++; $debug .= 'Unable to retrieve shipment for line #' . $i . "\n"; } } else { $debug .= 'Unable to retrieve shipment or/and tracking for line #' . $i . "\n"; } } mage::log($debug); $msg = mage::helper('Orderpreparation')->__('Tracking import complete : %s tracking imported, %s tracking skipped', $importedTrackingCount, $skippedTrackingCount); return $msg; }
/** * * @param Mage_Sales_Model_Order_Shipment_Track $track * * @return boolean */ public function isDpdTrack(Mage_Sales_Model_Order_Shipment_Track $track) { return strpos($track->getCarrierCode(), $this->getDpdCarrierCode()) !== false; }
/** * Enregistre les modifs pour une commande * (c'est a dire commentaire & qté reservée par ligne commande) * */ public function SaveOrderAction() { try { //parcourt les data $order_id = $this->getRequest()->getParam('order_id'); $order = mage::getModel('sales/order')->load($order_id); $data = $this->getRequest()->getParams(); //shipment & invoice $shipment_id = $this->getRequest()->getParam('shipment_id'); $invoice_id = $this->getRequest()->getParam('invoice_id'); $tracking_num = $this->getRequest()->getParam('tracking_num'); if ($shipment_id || $invoice_id) { mage::getModel('Orderpreparation/ordertoprepare')->load($order_id, 'order_id')->setshipment_id($shipment_id)->setinvoice_id($invoice_id)->save(); } //Si un numéro de tracking a été saisi, on l'ajoute if ($tracking_num) { //met a jour les shipment $shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment_id); if ($shipment->getOrder()) { //$order = mage::getmodel('sales/order')->load($order_id); $Carrier = str_replace('_', '', $order->getshipping_method()); $track = new Mage_Sales_Model_Order_Shipment_Track(); $track->setNumber($tracking_num)->setCarrierCode($Carrier)->setTitle('Shipment'); $shipment->addTrack($track)->save(); } } //parcourt les champs foreach ($data as $cle => $value) { $t = explode('_', $cle); if (strpos($cle, 'omments') >= 1) { //recupere les infos $OrderItemId = $t[1]; $OrderItem = mage::getModel('sales/order_item')->load($OrderItemId); $Comments = $value; //met a jour $OrderItem->setcomments($Comments)->save(); } } //confirme Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Changes successfully saved')); } catch (Exception $ex) { Mage::getSingleton('adminhtml/session')->addError($this->__('An error occured while saving changes: ') . $ex->getMessage() . ' ' . $ex->getTraceAsString()); } //redirige $this->_redirect('adminhtml/sales_order/view', array('order_id' => $order_id)); }
/** * @dataProvider isCustomDataProvider * @param bool $expectedResult * @param string $carrierCodeToSet */ public function testIsCustom($expectedResult, $carrierCodeToSet) { $this->_model->setCarrierCode($carrierCodeToSet); $this->assertEquals($expectedResult, $this->_model->isCustom()); }
public function getMagentoOrderEntityIdForTrackingObject(Mage_Sales_Model_Order_Shipment_Track $shipmentTrackingObject) { $magento_order_id = $shipmentTrackingObject->getOrderId(); if (!empty($magento_order_id)) { // This should always be set for a tracking object which has been persisted to the database return $magento_order_id; } // Handle cases where the order_id is not set $shipmentObject = $shipmentTrackingObject->getShipment(); if (is_object($shipmentObject) && $shipmentObject->getId()) { return $shipmentObject->getOrderId(); } return null; }