protected function _prepareForm() { $form = new Varien_Data_Form(); $dataObj = new Varien_Object(array('store_id' => '', 'store_name_in_store' => '', 'status_in_store' => '', 'description_in_store' => '', 'address_in_store' => '', 'city_in_store' => '')); if (Mage::getSingleton('adminhtml/session')->getStoreData()) { $data = Mage::getSingleton('adminhtml/session')->getStoreData(); Mage::getSingleton('adminhtml/session')->setStoreData(null); } elseif (Mage::registry('store_data')) { $data = Mage::registry('store_data')->getData(); } if (isset($data)) { $dataObj->addData($data); } if ($dataObj->getStoreId()) { $warehouse = Mage::getResourceModel('inventoryplus/warehouse_collection')->addFieldToFilter('storepickup_id', $dataObj->getStoreId())->getFirstItem(); $dataObj->setData('warehouse_id', $warehouse->getId()); $dataObj->setData('curr_warehouse_id', $warehouse->getId()); } $this->setForm($form); $fieldset = $form->addFieldset('store_form', array('legend' => Mage::helper('storepickup')->__('Warehouse Information'))); $fieldset->addField('warehouse_id', 'select', array('label' => Mage::helper('storepickup')->__('Linked Warehouse'), 'name' => 'warehouse_id', 'values' => $this->getWarehouseOptions(), 'onchange' => 'imStorePickup.changeWarehouse(this);', 'note' => $this->__('If you choose a warehouse, this Store information will be imported from the warehouse after saved.'))); $fieldset->addField('curr_warehouse_id', 'hidden', array('name' => 'curr_warehouse_id')); if (Mage::getSingleton('adminhtml/session')->getStoreData()) { $form->setValues(Mage::getSingleton('adminhtml/session')->getStoreData()); Mage::getSingleton('adminhtml/session')->setStoreData(null); } elseif (Mage::registry('store_data')) { $form->setValues($dataObj->getData()); } parent::_prepareForm(); }
public function load($printQuery = false, $logQuery = false) { $this->_select = $this->_read->select(); $entityTable = $this->getEntity()->getEntityTable(); $paidTable = $this->getAttribute('grand_total')->getBackend()->getTable(); $idField = $this->getEntity()->getIdFieldName(); $this->getSelect()->from(array('sales' => $entityTable), array('store_id', 'lifetime' => 'sum(sales.base_grand_total)', 'avgsale' => 'avg(sales.base_grand_total)', 'num_orders' => 'count(sales.base_grand_total)'))->where('sales.entity_type_id=?', $this->getEntity()->getTypeId())->group('sales.store_id'); if ($this->_customer instanceof Mage_Customer_Model_Customer) { $this->getSelect()->where('sales.customer_id=?', $this->_customer->getId()); } $this->printLogQuery($printQuery, $logQuery); try { $values = $this->_read->fetchAll($this->getSelect()->__toString()); } catch (Exception $e) { $this->printLogQuery(true, true, $this->getSelect()->__toString()); throw $e; } $stores = Mage::getResourceModel('core/store_collection')->setWithoutDefaultFilter()->load()->toOptionHash(); if (!empty($values)) { foreach ($values as $v) { $obj = new Varien_Object($v); $storeName = isset($stores[$obj->getStoreId()]) ? $stores[$obj->getStoreId()] : null; $this->_items[$v['store_id']] = $obj; $this->_items[$v['store_id']]->setStoreName($storeName); $this->_items[$v['store_id']]->setAvgNormalized($obj->getAvgsale() * $obj->getNumOrders()); foreach ($this->_totals as $key => $value) { $this->_totals[$key] += $obj->getData($key); } } if ($this->_totals['num_orders']) { $this->_totals['avgsale'] = $this->_totals['lifetime'] / $this->_totals['num_orders']; } } return $this; }
public function render(Varien_Object $row) { $fileName = preg_replace('/^\\//', '', $row->getSitemapPath() . $row->getSitemapFilename()); $url = $this->htmlEscape(Mage::app()->getStore($row->getStoreId())->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . $fileName); $code = Mage::app()->getStore($row->getStoreId())->getCode() == 'default' ? '' : Mage::app()->getStore($row->getStoreId())->getCode() . DS; if (file_exists(BP . DS . $code . $fileName)) { return sprintf('<a href="%1$s">%1$s</a>', $url); } return $url; }
public function render(Varien_Object $row) { $index = $this->getColumn()->getIndex(); $urlKey = $row->getData($index); $url = Mage::app()->getStore($row->getStoreId())->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . $urlKey; return '<a href="' . $url . '" title="' . $url . '" target="_blank">/' . $urlKey . '</a>'; }
public function render(Varien_Object $row) { $storeViewIds = explode(',', $row->getStoreId()); $websites = Mage::app()->getWebsites(); if ($storeViewIds[0] == 0 || count($storeViewIds) < 1) { echo Mage::helper('pointofsale')->__("No Store View"); return; } foreach ($websites as $website) { if ($this->in_array($storeViewIds, $website->getStoreIds())) { echo "<div style='float:left; padding:0 5px'><b><u>" . $website->getName() . "</u></b><br>"; $storegroups = $website->getGroupCollection(); foreach ($storegroups as $storegroup) { if ($this->in_array($storeViewIds, $storegroup->getStoreIds())) { echo "<b style='padding-left:5px;'>" . $storegroup->getName() . "</b><br>"; $storeviews = $storegroup->getStoreCollection(); foreach ($storeviews as $storeview) { if (in_array($storeview->getId(), $storeViewIds)) { echo "<span style='padding-left:10px;'>" . $storeview->getName() . "</span><br>"; } } } } echo "</div>"; } } }
public function render(Varien_Object $row) { // Create url to Flipmedia_Clickreward_IndexController $url = Mage::getUrl('click/index/reward', array('token' => $row->getRuleToken(), '_nosid' => true, '_secure' => true, '_store' => $row->getStoreId(), '_store_to_url' => false)); // Return Link return sprintf("<a href=\"#\" onclick=\"window.prompt('Copy to clipboard: Ctrl+C, Enter','%s'); return false;\">%s</a>", $url, Mage::helper('checkout')->__('Copy Link')) . "<br/>" . sprintf("<a href=\"%s\" target=\"_blank\">%s</a>", $url, Mage::helper('checkout')->__('Test Link')); }
/** * Get unique category request path * * @param Varien_Object $category * @param string $parentPath * @return string */ public function getCategoryRequestPath($category, $parentPath) { $storeId = $category->getStoreId(); $idPath = $this->generatePath('id', null, $category); $suffix = $this->getCategoryUrlSuffix($storeId); if (isset($this->_rewrites[$idPath])) { $this->_rewrite = $this->_rewrites[$idPath]; $existingRequestPath = $this->_rewrites[$idPath]->getRequestPath(); } if ($category->getUrlKey() == '') { $urlKey = $this->getCategoryModel()->formatUrlKey($category->getName()); } else { $urlKey = $this->getCategoryModel()->formatUrlKey($category->getUrlKey()); } $categoryUrlSuffix = $this->getCategoryUrlSuffix($category->getStoreId()); if (null === $parentPath) { $parentPath = $this->getResource()->getCategoryParentPath($category); } elseif ($parentPath == '/') { $parentPath = ''; } $parentPath = Mage::helper('catalog/category')->getCategoryUrlPath($parentPath, true, $category->getStoreId()); // Only filter category URL paths when not in B2B store. if (Mage::helper("mey_b2b")->getStoreId() != $storeId) { $parentPath = $this->_filterCategoriesFromRequestPath($parentPath); } $requestPath = $parentPath . $urlKey . $categoryUrlSuffix; if (isset($existingRequestPath) && $existingRequestPath == $requestPath . $suffix) { return $existingRequestPath; } if ($this->_deleteOldTargetPath($requestPath, $idPath, $storeId)) { return $requestPath; } return $this->getUnusedPath($category->getStoreId(), $requestPath, $this->generatePath('id', null, $category)); }
public function render(Varien_Object $row) { $field_id = $row->getFieldId(); $field = Mage::getModel('webforms/fields')->load($field_id); $value = $row->getData($this->getColumn()->getIndex()); $options = array(); $webform = Mage::getModel('webforms/webforms')->setStoreId($row->getStoreId())->load($field->getWebformId()); $fields_to_fieldsets = $webform->getFieldsToFieldsets(true); foreach ($fields_to_fieldsets as $fieldset_id => $fieldset) { $field_options = array(); foreach ($fieldset['fields'] as $field) { if (in_array('field_' . $field->getId(), $value)) { $field_options[] = $field->getName(); } } if ($fieldset_id) { if (in_array('fieldset_' . $fieldset_id, $value)) { $options[] = $fieldset['name'] . ' [' . Mage::helper('webforms')->__('Field Set') . ']'; } if (count($field_options)) { $options[] = '<b>' . $fieldset['name'] . '</b><br> ' . implode('<br> ', $field_options); } } else { foreach ($field_options as $opt) { $options[] = $opt; } } } return implode('<br>', $options); }
/** * @param null|Varien_Object $dataObject * @return Xcom_Xfabric_Model_Message_Request */ public function _prepareData(Varien_Object $dataObject = null) { $avroDataObject = Mage::getModel('xcom_chronicle/message_webstore_offer', array('product' => $dataObject->getProduct(), 'store_id' => $dataObject->getStoreId())); $data = array('offer' => $avroDataObject->toArray()); $this->setMessageData($data); return parent::_prepareData($dataObject); }
public function render(Varien_Object $row) { if (!$row->getData($this->getColumn()->getIndex())) { return null; } return '<a title="' . Mage::helper('core')->__('Edit Store View') . '" href="' . $this->getUrl('*/*/editStore', array('store_id' => $row->getStoreId())) . '">' . $row->getData($this->getColumn()->getIndex()) . '</a>'; }
/** * @param null|Varien_Object $dataObject * @return Xcom_Xfabric_Model_Message_Request */ public function _prepareData(Varien_Object $dataObject = null) { /** @var $avroDataObject Xcom_Chronicle_Model_Message_Webstore_Offer */ $avroDataObject = Mage::getModel('xcom_chronicle/message_webstore_offer', array('product' => $dataObject->getProduct(), 'store_id' => $dataObject->getStoreId())); $data = array('sku' => $avroDataObject->getSku(), 'quantity' => $avroDataObject->getQuantity(), 'webStoreId' => $avroDataObject->getWebStoreId()); $this->setMessageData($data); return parent::_prepareData($dataObject); }
public function validate(Varien_Object $object) { $product = Mage::getModel('catalog/product')->setStoreId($object->getStoreId())->load($object->getProductId()); $this->_entityAttributeValues[$product->getId()][$product->getStoreId()] = $product->getData($this->getAttribute()); // Required since 1.8.0.0 // Old: $this->getValue() // #var_dump($this->getAttribute(), $product->getData($this->getAttribute()), parent::validateAttribute($product)); return parent::validate($product); }
public function render(Varien_Object $row) { $fileName = preg_replace('/^\\//', '', $row->getSimplegoogleshoppingPath() . $row->getSimplegoogleshoppingFilename()); $url = $this->htmlEscape(Mage::app()->getStore($row->getStoreId())->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . $fileName); if (file_exists(BP . DS . $fileName)) { return sprintf('<a href="%1$s?r=' . time() . '" target="_blank">%1$s</a>', $url); } return $url; }
/** * @param Varien_Object $row * * @return string */ public function render(Varien_Object $row) { $store = Mage::getModel('core/store')->load($row->getStoreId()); $storeName = $store->getName(); if (!Mage::helper('bronto_email')->isEnabled('store', $store->getId())) { $storeName .= ' (Disabled)'; } return $storeName; }
public function render(Varien_Object $row) { $helper = Mage::helper('thememanager'); $storeId = $row->getStoreId(); if (!isset(self::$stores[$storeId])) { self::$stores[$storeId] = $helper->getStoreTitleNameById($storeId); } return self::$stores[$storeId] ? self::$stores[$storeId] : '<div class="removed-store">' . $helper->__('This store was removed and theme settings for this store are not available to edit. Please export or clone this subtheme to use it for another available store') . '</div>'; }
/** * @param Varien_Object $object * @return $this */ public function afterSave($object) { $generalStoreId = $object->getStoreId(); $periods = $object->getData($this->getAttribute()->getName()); Mage::getResourceSingleton('payperrentals/excludeddates')->deleteByProductId($object->getId(), $generalStoreId); if (is_null($periods)) { return $this; } if (is_array($periods)) { foreach ($periods as $k => $period) { if (!is_numeric($k)) { continue; } $storeId = @$period['use_default_value'] ? 0 : $object->getStoreId(); $ex = Mage::getModel('payperrentals/excludeddates')->setProductId($object->getId())->setStoreId($storeId)->setDisabledFrom(ITwebexperts_Payperrentals_Helper_Date::toMysqlDate($period['excludefrom']))->setDisabledType($period['repeatperiod'])->setExcludeDatesFrom($period['excludedaysfrom'])->setDisabledTo(ITwebexperts_Payperrentals_Helper_Date::toMysqlDate($period['excludeto']))->save(); } } return $this; }
public function render(Varien_Object $row) { $types = array('none', 'xml', 'txt', 'csv', 'tsv'); $ext = $types[$row->getFeed_type()]; $fileName = preg_replace('/^\\//', '', $row->getFeed_path() . $row->getFeed_name() . '.' . $ext); $url = $this->htmlEscape(Mage::app()->getStore($row->getStoreId())->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . $fileName); if (file_exists(BP . DS . $fileName)) { return sprintf('<a href="%1$s?r=' . time() . '" target="_blank">%1$s</a>', $url); } return $url; }
/** * Get attribute value * * @param Varien_Object $object * @return mixed */ protected function _getAttributeValue($object) { $storeId = $object->getStoreId(); $defaultStoreId = Mage_Core_Model_App::ADMIN_STORE_ID; $productValues = isset($this->_entityAttributeValues[$object->getId()]) ? $this->_entityAttributeValues[$object->getId()] : array(); $defaultValue = isset($productValues[$defaultStoreId]) ? $productValues[$defaultStoreId] : null; $value = isset($productValues[$storeId]) ? $productValues[$storeId] : $defaultValue; $value = $this->_prepareDatetimeValue($value, $object); $value = $this->_prepareMultiselectValue($value, $object); return $value; }
/** * Before save * * @param Varien_Object $object * @return Mage_Customer_Model_Customer_Attribute_Backend_Store */ public function beforeSave($object) { if ($object->getId()) { return $this; } if (!$object->hasStoreId()) { $object->setStoreId(Mage::app()->getStore()->getId()); } if (!$object->hasData('created_in')) { $object->setData('created_in', Mage::app()->getStore($object->getStoreId())->getName()); } return $this; }
public function render(Varien_Object $row) { if (is_null($row->getCustomerId())) { if ($row->getStoreId() == Mage_Core_Model_App::ADMIN_STORE_ID) { return Mage::helper('review')->__('Administrator'); } else { return Mage::helper('review')->__('Guest'); } } elseif ($row->getCustomerId() > 0) { return Mage::helper('review')->__('Customer'); } // return ($row->getCustomerId() ? Mage::helper('review')->__('Customer') : Mage::helper('review')->__('Guest')); }
/** * @param Varien_Object $dataObject */ public function runConverter(Varien_Object $dataObject) { $stylaField = $this->getStylaField(); $environmentInfo = $this->_emulateFrontend(); //we need to temporarily set the same store id to the object, or else we won't get a rewritten url $oldId = $dataObject->getStoreId(); $dataObject->setStoreId($this->_getDefaultStoreViewId()); $productUrl = $dataObject->getProductUrl(); if ($this->_useRelativeUrls()) { $productUrl = str_replace(Mage::getBaseUrl(), "/", $productUrl); } $dataObject->setStoreId($oldId); $this->_stopEmulation($environmentInfo); $dataObject->setData($stylaField, $productUrl); }
/** * Retrives rendered column * @param Varien_Object $row * @return string */ public function render(Varien_Object $row) { $actions = $this->getColumn()->getActions(); $actions = $this->_transformData($actions[$row->getStoreId()], $this->getColumn()->getProps()); $out = '<select class="action-select" onchange="varienGridAction.execute(this);">' . '<option value=""></option>'; $i = 0; foreach ($actions as $action) { $i++; if (is_array($action)) { $out .= $this->_toOptionHtml($action, $row); } } $out .= '</select>'; return $out; }
/** * Prepare html output * * @return string */ protected function _toHtml() { $previewModel = Mage::getModel('hackathon_emailpreview/emailPreview'); $storeId = $this->getRequest()->getParam('storeId'); $templateId = $this->getRequest()->getParam('templateId'); $templateType = $this->getRequest()->getParam('templateType'); $templateParams = new Varien_Object(); $templateParams->setRequestParams($this->getRequest()->getParams()); $templateParams->setStoreId($storeId); $eventData = array('templateParams' => $templateParams, 'templateType' => $templateType); Mage::dispatchEvent('hackathon_emailpreview_render_email_before', $eventData); $storeId = $templateParams->getStoreId(); $templateParams->setStore(Mage::app()->getStore($storeId)); $html = $previewModel->renderEmail($templateId, $templateParams->getData()); return $html; }
public function saveAction() { $data = $this->getRequest()->getParams(); $uploader = new Mage_Core_Model_File_Uploader('file'); $uploader->setAllowedExtensions(array('csv')); $uploader->setAllowRenameFiles(true); $path = Mage::getBaseDir('var') . DS . 'import'; if (!file_exists($path)) { mkdir($path, 0777); } try { $result = $uploader->save($path); $fullPath = $result['path'] . DS . $result['file']; $csv = new Varien_File_Csv(); $data = $csv->getData($fullPath); $items = array(); if (count($data) > 1) { for ($i = 1; $i < count($data); $i++) { $item = array(); for ($j = 0; $j < count($data[0]); $j++) { if (isset($data[$i][$j]) && trim($data[$i][$j]) != '') { $item[strtolower($data[0][$j])] = $data[$i][$j]; } } $items[] = $item; } } $resource = Mage::getSingleton('core/resource'); $writeConnection = $resource->getConnection('core_write'); $table = $resource->getTableName('seoautolink/link'); $table2 = $resource->getTableName('seoautolink/link_store'); $i = 0; foreach ($items as $item) { if (!isset($item['keyword'])) { continue; } $item = new Varien_Object($item); $query = "REPLACE {$table} SET\n keyword = '" . addslashes($item->getKeyword()) . "',\n url = '" . addslashes($item->getUrl()) . "',\n url_title = '" . addslashes($item->getUrlTitle()) . "',\n url_target = '" . addslashes($item->getUrlTarget()) . "',\n is_nofollow = '" . (int) $item->getIsNofollow() . "',\n max_replacements = '" . (int) $item->getMaxReplacements() . "',\n sort_order = '" . (int) $item->getSortOrder() . "',\n occurence = '" . (int) $item->getOccurence() . "',\n is_active = '" . (int) $item->getIsActive() . "',\n created_at = '" . now() . "',\n updated_at = '" . now() . "';\n REPLACE {$table2} SET\n store_id = '" . (int) $item->getStoreId() . "',\n link_id = LAST_INSERT_ID();\n "; $writeConnection->query($query); $i++; } Mage::getSingleton('adminhtml/session')->addSuccess('' . $i . ' records were inserted or updated'); } catch (Exception $e) { Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); } $this->_redirect('*/*/'); }
public function render(Varien_Object $row) { /* @var $row CueBlocks_SitemapEnhanced_Model_SitemapEnhanced */ $html = ''; $pathmap = $row->getHelper()->getGeneralConf($row->storeId, true)->getPathMap(); $collection = $row->getFilesCollection(); foreach ($collection as $item) { $fileName = preg_replace('/^\\//', '', $row->getSitemapPath() . $item->getSitemapFileFilename()); $url = $this->htmlEscape(Mage::app()->getStore($row->getStoreId())->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB) . $fileName); if (file_exists(BP . DS . $pathmap . $fileName)) { $html .= sprintf('<div><a target="_blank" href="%1$s">%2$s</a></div>', $url, $item->getSitemapFileFilename()); } else { $html .= sprintf('<div>%1$s</div>', $item->getSitemapFileFilename()); } } return $html; }
/** * Retrieve select object for loading entity attributes values * Join attribute store value * * @param Varien_Object $object * @param string $table * @return Varien_Db_Select */ protected function _getLoadAttributesSelect($object, $table) { /** * This condition is applicable for all cases when we was work in not single * store mode, customize some value per specific store view and than back * to single store mode. We should load correct values */ if (Mage::app()->isSingleStoreMode()) { $storeId = (int) Mage::app()->getStore(true)->getId(); } else { $storeId = (int) $object->getStoreId(); } $storeIds = array($this->getDefaultStoreId()); if ($storeId != $this->getDefaultStoreId()) { $storeIds[] = $storeId; } $select = $this->_getReadAdapter()->select()->from(array('attr_table' => $table), array())->where("attr_table.{$this->getEntityIdField()} = ?", $object->getId())->where('attr_table.store_id IN (?)', $storeIds); return $select; }
/** * Delete entity attribute values * * @param Varien_Object $object * @param string $table * @param array $info * @return Mage_Catalog_Model_Resource_Abstract */ protected function _deleteAttributes($object, $table, $info) { $adapter = $this->_getWriteAdapter(); $entityIdField = $this->getEntityIdField(); $globalValues = array(); $websiteAttributes = array(); $storeAttributes = array(); /** * Separate attributes by scope */ foreach ($info as $itemData) { $attribute = $this->getAttribute($itemData['attribute_id']); if ($attribute->isScopeStore()) { $storeAttributes[] = (int) $itemData['attribute_id']; } elseif ($attribute->isScopeWebsite()) { $websiteAttributes[] = (int) $itemData['attribute_id']; } else { $globalValues[] = (int) $itemData['value_id']; } } /** * Delete global scope attributes */ if (!empty($globalValues)) { $adapter->delete($table, array('value_id IN (?)' => $globalValues)); } $condition = array($entityIdField . ' = ?' => $object->getId(), 'entity_type_id = ?' => $object->getEntityTypeId()); /** * Delete website scope attributes */ if (!empty($websiteAttributes)) { $storeIds = $object->getWebsiteStoreIds(); if (!empty($storeIds)) { $delCondition = $condition; $delCondition['attribute_id IN(?)'] = $websiteAttributes; $delCondition['store_id IN(?)'] = $storeIds; $adapter->delete($table, $delCondition); } } /** * Delete store scope attributes */ if (!empty($storeAttributes)) { $delCondition = $condition; $delCondition['attribute_id IN(?)'] = $storeAttributes; $delCondition['store_id = ?'] = (int) $object->getStoreId(); $adapter->delete($table, $delCondition); } return $this; }
/** * Form array with appropriate structure for shipment request * * @param Varien_Object $request * @return array */ protected function _formShipmentRequest(Varien_Object $request) { if ($request->getReferenceData()) { $referenceData = $request->getReferenceData() . $request->getPackageId(); } else { $referenceData = 'Order #' . $request->getOrderShipment()->getOrder()->getIncrementId() . ' P' . $request->getPackageId(); } $packageParams = $request->getPackageParams(); $customsValue = $packageParams->getCustomsValue(); $height = $packageParams->getHeight(); $width = $packageParams->getWidth(); $length = $packageParams->getLength(); $weightUnits = $packageParams->getWeightUnits() == Zend_Measure_Weight::POUND ? 'LB' : 'KG'; $dimensionsUnits = $packageParams->getDimensionUnits() == Zend_Measure_Length::INCH ? 'IN' : 'CM'; $unitPrice = 0; $itemsQty = 0; $itemsDesc = array(); $countriesOfManufacture = array(); $productIds = array(); $packageItems = $request->getPackageItems(); foreach ($packageItems as $itemShipment) { $item = new Varien_Object(); $item->setData($itemShipment); $unitPrice += $item->getPrice(); $itemsQty += $item->getQty(); $itemsDesc[] = $item->getName(); $productIds[] = $item->getProductId(); } // get countries of manufacture $productCollection = Mage::getResourceModel('catalog/product_collection')->addStoreFilter($request->getStoreId())->addFieldToFilter('entity_id', array('in' => $productIds))->addAttributeToSelect('country_of_manufacture'); foreach ($productCollection as $product) { $countriesOfManufacture[] = $product->getCountryOfManufacture(); } $paymentType = $request->getIsReturn() ? 'RECIPIENT' : 'SENDER'; $requestClient = array('RequestedShipment' => array('ShipTimestamp' => time(), 'DropoffType' => $this->getConfigData('dropoff'), 'PackagingType' => $request->getPackagingType(), 'ServiceType' => $request->getShippingMethod(), 'Shipper' => array('Contact' => array('PersonName' => $request->getShipperContactPersonName(), 'CompanyName' => $request->getShipperContactCompanyName(), 'PhoneNumber' => $request->getShipperContactPhoneNumber()), 'Address' => array('StreetLines' => array($request->getShipperAddressStreet1(), $request->getShipperAddressStreet2()), 'City' => $request->getShipperAddressCity(), 'StateOrProvinceCode' => $request->getShipperAddressStateOrProvinceCode(), 'PostalCode' => $request->getShipperAddressPostalCode(), 'CountryCode' => $request->getShipperAddressCountryCode())), 'Recipient' => array('Contact' => array('PersonName' => $request->getRecipientContactPersonName(), 'CompanyName' => $request->getRecipientContactCompanyName(), 'PhoneNumber' => $request->getRecipientContactPhoneNumber()), 'Address' => array('StreetLines' => array($request->getRecipientAddressStreet1(), $request->getRecipientAddressStreet2()), 'City' => $request->getRecipientAddressCity(), 'StateOrProvinceCode' => $request->getRecipientAddressStateOrProvinceCode(), 'PostalCode' => $request->getRecipientAddressPostalCode(), 'CountryCode' => $request->getRecipientAddressCountryCode(), 'Residential' => (bool) $this->getConfigData('residence_delivery'))), 'ShippingChargesPayment' => array('PaymentType' => $paymentType, 'Payor' => array('AccountNumber' => $this->getConfigData('account'), 'CountryCode' => Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $request->getStoreId()))), 'LabelSpecification' => array('LabelFormatType' => 'COMMON2D', 'ImageType' => 'PNG', 'LabelStockType' => 'PAPER_8.5X11_TOP_HALF_LABEL'), 'RateRequestTypes' => array('ACCOUNT'), 'PackageCount' => 1, 'RequestedPackageLineItems' => array('SequenceNumber' => '1', 'Weight' => array('Units' => $weightUnits, 'Value' => $request->getPackageWeight()), 'CustomerReferences' => array('CustomerReferenceType' => 'CUSTOMER_REFERENCE', 'Value' => $referenceData), 'SpecialServicesRequested' => array('SpecialServiceTypes' => 'SIGNATURE_OPTION', 'SignatureOptionDetail' => array('OptionType' => $packageParams->getDeliveryConfirmation()))))); // for international shipping if ($request->getShipperAddressCountryCode() != $request->getRecipientAddressCountryCode()) { $requestClient['RequestedShipment']['CustomsClearanceDetail'] = array('CustomsValue' => array('Currency' => $request->getBaseCurrencyCode(), 'Amount' => $customsValue), 'DutiesPayment' => array('PaymentType' => $paymentType, 'Payor' => array('AccountNumber' => $this->getConfigData('account'), 'CountryCode' => Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $request->getStoreId()))), 'Commodities' => array('Weight' => array('Units' => $weightUnits, 'Value' => $request->getPackageWeight()), 'NumberOfPieces' => 1, 'CountryOfManufacture' => implode(',', array_unique($countriesOfManufacture)), 'Description' => implode(', ', $itemsDesc), 'Quantity' => ceil($itemsQty), 'QuantityUnits' => 'pcs', 'UnitPrice' => array('Currency' => $request->getBaseCurrencyCode(), 'Amount' => $unitPrice), 'CustomsValue' => array('Currency' => $request->getBaseCurrencyCode(), 'Amount' => $customsValue))); } if ($request->getMasterTrackingId()) { $requestClient['RequestedShipment']['MasterTrackingId'] = $request->getMasterTrackingId(); } // set dimensions if ($length || $width || $height) { $requestClient['RequestedShipment']['RequestedPackageLineItems']['Dimensions'] = array(); $dimenssions =& $requestClient['RequestedShipment']['RequestedPackageLineItems']['Dimensions']; $dimenssions['Length'] = $length; $dimenssions['Width'] = $width; $dimenssions['Height'] = $height; $dimenssions['Units'] = $dimensionsUnits; } return $this->_getAuthDetails() + $requestClient; }
/** * Prepare and set request in property of current instance * * @param Varien_Object $request * @return Mage_Usa_Model_Shipping_Carrier_Dhl */ public function setRequest(Varien_Object $request) { $this->_request = $request; $r = new Varien_Object(); if ($request->getAction() == 'GenerateLabel') { $r->setAction('GenerateLabel'); } else { $r->setAction('RateEstimate'); } $r->setIsGenerateLabelReturn($request->getIsGenerateLabelReturn()); $r->setStoreId($request->getStoreId()); if ($request->getLimitMethod()) { $r->setService($request->getLimitMethod()); } if ($request->getDhlId()) { $id = $request->getDhlId(); } else { $id = $this->getConfigData('id'); } $r->setId($id); if ($request->getDhlPassword()) { $password = $request->getDhlPassword(); } else { $password = $this->getConfigData('password'); } $r->setPassword($password); if ($request->getDhlAccount()) { $accountNbr = $request->getDhlAccount(); } else { $accountNbr = $this->getConfigData('account'); } $r->setAccountNbr($accountNbr); if ($request->getDhlShippingKey()) { $shippingKey = $request->getDhlShippingKey(); } else { $shippingKey = $this->getConfigData('shipping_key'); } $r->setShippingKey($shippingKey); if ($request->getDhlShippingIntlKey()) { $shippingKey = $request->getDhlShippingIntlKey(); } else { $shippingKey = $this->getConfigData('shipping_intlkey'); } $r->setShippingIntlKey($shippingKey); if ($request->getDhlShipmentType()) { $shipmentType = $request->getDhlShipmentType(); } else { $shipmentType = $this->getConfigData('shipment_type'); } $r->setShipmentType($shipmentType); if ($request->getDhlDutiable()) { $shipmentDutible = $request->getDhlDutiable(); } else { $shipmentDutible = $this->getConfigData('dutiable'); } $r->setDutiable($shipmentDutible); if ($request->getDhlDutyPaymentType()) { $dutypaytype = $request->getDhlDutyPaymentType(); } else { $dutypaytype = $this->getConfigData('dutypaymenttype'); } $r->setDutyPaymentType($dutypaytype); if ($request->getDhlContentDesc()) { $contentdesc = $request->getDhlContentDesc(); } else { $contentdesc = $this->getConfigData('contentdesc'); } $r->setContentDesc($contentdesc); if ($request->getDestPostcode()) { $r->setDestPostal($request->getDestPostcode()); } if ($request->getOrigCountry()) { $origCountry = $request->getOrigCountry(); } else { $origCountry = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $r->getStoreId()); } $r->setOrigCountry($origCountry); if ($request->getOrigCountryId()) { $origCountryId = $request->getOrigCountryId(); } else { $origCountryId = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $r->getStoreId()); } $r->setOrigCountryId($origCountryId); if ($request->getAction() == 'GenerateLabel') { $packageParams = $request->getPackageParams(); $shippingWeight = $request->getPackageWeight(); if ($packageParams->getWeightUnits() != Zend_Measure_Weight::POUND) { $shippingWeight = round(Mage::helper('usa')->convertMeasureWeight($request->getPackageWeight(), $packageParams->getWeightUnits(), Zend_Measure_Weight::POUND)); } if ($packageParams->getDimensionUnits() != Zend_Measure_Length::INCH) { $packageParams->setLength(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getLength(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH))); $packageParams->setWidth(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getWidth(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH))); $packageParams->setHeight(round(Mage::helper('usa')->convertMeasureDimension($packageParams->getHeight(), $packageParams->getDimensionUnits(), Zend_Measure_Length::INCH))); } $r->setPackageParams($packageParams); } else { /* * DHL only accepts weight as a whole number. Maximum length is 3 digits. */ $shippingWeight = $request->getPackageWeight(); if ($shipmentType != 'L') { $weight = $this->getTotalNumOfBoxes($shippingWeight); $shippingWeight = round(max(1, $weight), 0); } } $r->setValue(round($request->getPackageValue(), 2)); $r->setValueWithDiscount($request->getPackageValueWithDiscount()); $r->setCustomsValue($request->getPackageCustomsValue()); $r->setDestStreet(Mage::helper('core/string')->substr(str_replace("\n", '', $request->getDestStreet()), 0, 35)); $r->setDestStreetLine2($request->getDestStreetLine2()); $r->setDestCity($request->getDestCity()); $r->setOrigCompanyName($request->getOrigCompanyName()); $r->setOrigCity($request->getOrigCity()); $r->setOrigPhoneNumber($request->getOrigPhoneNumber()); $r->setOrigPersonName($request->getOrigPersonName()); $r->setOrigEmail(Mage::getStoreConfig('trans_email/ident_general/email', $r->getStoreId())); $r->setOrigCity($request->getOrigCity()); $r->setOrigPostal($request->getOrigPostal()); $originStreet1 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS1, $r->getStoreId()); $originStreet2 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS2, $r->getStoreId()); $r->setOrigStreet($request->getOrigStreet() ? $request->getOrigStreet() : $originStreet2); $r->setOrigStreetLine2($request->getOrigStreetLine2()); $r->setDestPhoneNumber($request->getDestPhoneNumber()); $r->setDestPersonName($request->getDestPersonName()); $r->setDestCompanyName($request->getDestCompanyName()); if (is_numeric($request->getOrigState())) { $r->setOrigState(Mage::getModel('directory/region')->load($request->getOrigState())->getCode()); } else { $r->setOrigState($request->getOrigState()); } if ($request->getDestCountryId()) { $destCountry = $request->getDestCountryId(); } else { $destCountry = self::USA_COUNTRY_ID; } //for DHL, puero rico state for US will assume as puerto rico country //for puerto rico, dhl will ship as international if ($destCountry == self::USA_COUNTRY_ID && ($request->getDestPostcode() == '00912' || $request->getDestRegionCode() == self::PUERTORICO_COUNTRY_ID)) { $destCountry = self::PUERTORICO_COUNTRY_ID; } $r->setDestCountryId($destCountry); $r->setDestState($request->getDestRegionCode()); $r->setWeight($shippingWeight); $r->setFreeMethodWeight($request->getFreeMethodWeight()); $r->setOrderShipment($request->getOrderShipment()); if ($request->getPackageId()) { $r->setPackageId($request->getPackageId()); } $r->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax()); $this->_rawRequest = $r; return $this; }
/** * Set new increment id to object * * @param Varien_Object $object * @return Mage_Eav_Model_Entity_Abstract */ public function setNewIncrementId(Varien_Object $object) { if ($object->getIncrementId()) { return $this; } $incrementId = $this->getEntityType()->fetchNewIncrementId($object->getStoreId()); if ($incrementId !== false) { $object->setIncrementId($incrementId); } return $this; }