public function setRequest(Mage_Shipping_Model_Rate_Request $request) { $accArray = array(); $this->_request = $request; $r = new Varien_Object(); if ($request->getLimitMethod()) { //TODO is this reqd? $r->setService($request->getLimitMethod()); } else { $r->setService('ALL'); } $r->setUserId($this->getConfigData('userid')); $r->setPassword($this->getConfigData('password')); $r->setBusRole('Shipper'); $r->setPaymentTerms($this->getConfigData('payment_terms')); $r->setContainer($this->getConfigData('container')); $r->setAllowedMethods($this->getConfigData('allowed_methods')); $r->setOriginLiftgateReqd($this->getConfigData('liftgate_origin')); $r->setOriginResidential($this->getConfigData('residential_origin')); /* if ($this->getConfigData('hazardous')) { $r->setHazmatInd('Y'); $accArray[]="ZHM"; } else { $r->setHazmatInd('N'); }*/ if ($request->getOrigCountry()) { $origCountry = $request->getOrigCountry(); } else { $origCountry = Mage::getStoreConfig('shipping/origin/country_id', $this->getStore()); } $r->setOrigCountry(Mage::getModel('directory/country')->load($origCountry)->getIso2Code()); if ($request->getOrigRegionCode()) { $origRegionCode = $request->getOrigRegionCode(); } else { $origRegionCode = Mage::getStoreConfig('shipping/origin/region_id', $this->getStore()); if (is_numeric($origRegionCode)) { $origRegionCode = Mage::getModel('directory/region')->load($origRegionCode)->getCode(); } } $r->setOrigRegionCode($origRegionCode); if ($request->getOrigPostcode()) { $r->setOrigPostal($request->getOrigPostcode()); } else { $r->setOrigPostal(Mage::getStoreConfig('shipping/origin/postcode', $this->getStore())); } if ($request->getOrigCity()) { $r->setOrigCity($request->getOrigCity()); } else { $r->setOrigCity(Mage::getStoreConfig('shipping/origin/city', $this->getStore())); } if ($request->getDestCountryId()) { $destCountry = $request->getDestCountryId(); } else { $destCountry = self::USA_COUNTRY_ID; } //for UPS, puero rico state for US will assume as puerto rico country if ($destCountry == self::USA_COUNTRY_ID && ($request->getDestPostcode() == '00912' || $request->getDestRegionCode() == self::PUERTORICO_COUNTRY_ID)) { $destCountry = self::PUERTORICO_COUNTRY_ID; } // For UPS, Guam state of the USA will be represented by Guam country if ($destCountry == self::USA_COUNTRY_ID && $request->getDestRegionCode() == self::GUAM_REGION_CODE) { $destCountry = self::GUAM_COUNTRY_ID; } $r->setDestCountry(Mage::getModel('directory/country')->load($destCountry)->getIso2Code()); $r->setDestRegionCode($request->getDestRegionCode()); if ($request->getDestPostcode()) { $r->setDestPostal('US' == $r->getDestCountry() ? substr($request->getDestPostcode(), 0, 5) : $request->getDestPostcode()); } else { } $r->setPayorName($this->getConfigData('payor_name')); if ($request->getPayorCountry()) { $payorCountry = $request->getPayorCountry(); } else { $payorCountry = $this->getConfigData('payor_country_id'); } $r->setPayorCountry(Mage::getModel('directory/country')->load($payorCountry)->getIso2Code()); if ($request->getPayorRegionCode()) { $payorRegionCode = $request->getPayorRegionCode(); } else { $payorRegionCode = $this->getConfigData('payor_region_id'); if (is_numeric($payorRegionCode)) { $payorRegionCode = Mage::getModel('directory/region')->load($payorRegionCode)->getCode(); } } $r->setPayorRegionCode($payorRegionCode); if ($request->getPayorPostcode()) { $r->setPayorPostal($request->getPayorPostcode()); } else { $r->setPayorPostal($this->getConfigData('payor_postcode')); } if ($request->getPayorCity()) { $r->setPayorCity($request->getPayorCity()); } else { $r->setPayorCity($this->getConfigData('payor_city')); } if ($request->getPayorStreetAddress()) { $r->setPayorStreetAddress($request->getPayorStreetAddress()); } else { $r->setPayorStreetAddress($this->getConfigData('payor_street_address')); } $r->setValue($request->getPackageValue()); $r->setValueWithDiscount($request->getPackageValueWithDiscount()); $r->setLiftgateRequired($request->getLiftgateRequired()); $r->setShiptoType($request->getShiptoType()); $this->_topUpPrice = 0; if ($request->getLiftgateRequired() || Mage::helper('wsaupsfreight')->isFixedLiftgateFee()) { $fee = $this->getConfigData('liftgate_fee'); if (is_numeric($fee) && $fee > 0) { $this->_topUpPrice = $fee; } $accArray[] = "LIFT"; } if (!is_null($request->getShiptoType() && !Mage::helper('wsaupsfreight')->isFixedDeliveryType())) { $shipToType = $request->getShiptoType(); if ($shipToType == '0' || $shipToType == 'Residential') { $fee = $this->getConfigData('residential_fee'); if (is_numeric($fee) && $fee > 0) { $this->_topUpPrice += $fee; } $accArray[] = "RES"; } } if ($request->getUpsUnitMeasure()) { $unit = $request->getUpsUnitMeasure(); } else { $unit = $this->getConfigData('unit_of_measure'); } $r->setUnitMeasure($unit); $r->setAccessories($accArray); $r->setIgnoreFreeItems(false); $this->_rawRequest = $r; return $this; }