Example #1
0
 /**
  * Prepare and set request to this instance
  *
  * @param Mage_Shipping_Model_Rate_Request $request
  * @return Mage_Usa_Model_Shipping_Carrier_Usps
  */
 public function setRequest(Mage_Shipping_Model_Rate_Request $request)
 {
     $this->_request = $request;
     $r = new Varien_Object();
     if ($request->getLimitMethod()) {
         $r->setService($request->getLimitMethod());
     } else {
         $r->setService('ALL');
     }
     if ($request->getUspsUserid()) {
         $userId = $request->getUspsUserid();
     } else {
         $userId = $this->getConfigData('userid');
     }
     $r->setUserId($userId);
     if ($request->getUspsContainer()) {
         $container = $request->getUspsContainer();
     } else {
         $container = $this->getConfigData('container');
     }
     $r->setContainer($container);
     if ($request->getUspsSize()) {
         $size = $request->getUspsSize();
     } else {
         $size = $this->getConfigData('size');
     }
     $r->setSize($size);
     if ($request->getGirth()) {
         $girth = $request->getGirth();
     } else {
         $girth = $this->getConfigData('girth');
     }
     $r->setGirth($girth);
     if ($request->getHeight()) {
         $height = $request->getHeight();
     } else {
         $height = $this->getConfigData('height');
     }
     $r->setHeight($height);
     if ($request->getLength()) {
         $length = $request->getLength();
     } else {
         $length = $this->getConfigData('length');
     }
     $r->setLength($length);
     if ($request->getWidth()) {
         $width = $request->getWidth();
     } else {
         $width = $this->getConfigData('width');
     }
     $r->setWidth($width);
     if ($request->getUspsMachinable()) {
         $machinable = $request->getUspsMachinable();
     } else {
         $machinable = $this->getConfigData('machinable');
     }
     $r->setMachinable($machinable);
     if ($request->getOrigPostcode()) {
         $r->setOrigPostal($request->getOrigPostcode());
     } else {
         $r->setOrigPostal(Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ZIP, $request->getStoreId()));
     }
     if ($request->getOrigCountryId()) {
         $r->setOrigCountryId($request->getOrigCountryId());
     } else {
         $r->setOrigCountryId(Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID, $request->getStoreId()));
     }
     if ($request->getDestCountryId()) {
         $destCountry = $request->getDestCountryId();
     } else {
         $destCountry = self::USA_COUNTRY_ID;
     }
     $r->setDestCountryId($destCountry);
     if (!$this->_isUSCountry($destCountry)) {
         $r->setDestCountryName($this->_getCountryName($destCountry));
     }
     if ($request->getDestPostcode()) {
         $r->setDestPostal($request->getDestPostcode());
     }
     $weight = $this->getTotalNumOfBoxes($request->getPackageWeight());
     $r->setWeightPounds(floor($weight));
     $r->setWeightOunces(round(($weight - floor($weight)) * self::OUNCES_POUND, 1));
     if ($request->getFreeMethodWeight() != $request->getPackageWeight()) {
         $r->setFreeMethodWeight($request->getFreeMethodWeight());
     }
     $r->setValue($request->getPackageValue());
     $r->setValueWithDiscount($request->getPackageValueWithDiscount());
     $r->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax());
     $this->_rawRequest = $r;
     return $this;
 }
Example #2
0
 /**
  * Map request to shipment
  *
  * @param Varien_Object $request
  * @return null
  */
 protected function _mapRequestToShipment(Varien_Object $request)
 {
     $customsValue = $request->getPackageParams()->getCustomsValue();
     $request->setOrigPersonName($request->getShipperContactPersonName());
     $request->setOrigPostal($request->getShipperAddressPostalCode());
     $request->setOrigPhoneNumber($request->getShipperContactPhoneNumber());
     $request->setOrigCompanyName($request->getShipperContactCompanyName());
     $request->setOrigCountryId($request->getShipperAddressCountryCode());
     $request->setOrigState($request->getShipperAddressStateOrProvinceCode());
     $request->setOrigCity($request->getShipperAddressCity());
     $request->setOrigStreet($request->getShipperAddressStreet1() . ' ' . $request->getShipperAddressStreet2());
     $request->setOrigStreetLine2($request->getShipperAddressStreet2());
     $request->setDestPersonName($request->getRecipientContactPersonName());
     $request->setDestPostcode($request->getRecipientAddressPostalCode());
     $request->setDestPhoneNumber($request->getRecipientContactPhoneNumber());
     $request->setDestCompanyName($request->getRecipientContactCompanyName());
     $request->setDestCountryId($request->getRecipientAddressCountryCode());
     $request->setDestRegionCode($request->getRecipientAddressStateOrProvinceCode());
     $request->setDestCity($request->getRecipientAddressCity());
     $request->setDestStreet($request->getRecipientAddressStreet1());
     $request->setDestStreetLine2($request->getRecipientAddressStreet2());
     $request->setLimitMethod($request->getShippingMethod());
     $request->setPackageValue($customsValue);
     $request->setValueWithDiscount($customsValue);
     $request->setPackageCustomsValue($customsValue);
     $request->setFreeMethodWeight(0);
     $request->setDhlShipmentType($request->getPackagingType());
     $request->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax());
 }
Example #3
0
 /**
  * Map request to shipment
  *
  * @param Varien_Object $request
  * @return null
  */
 protected function _mapRequestToShipment(Varien_Object $request)
 {
     $request->setOrigCountryId($request->getShipperAddressCountryCode());
     $this->_rawRequest = $request;
     $customsValue = 0;
     $packageWeight = 0;
     $packages = $request->getPackages();
     foreach ($packages as &$piece) {
         $params = $piece['params'];
         if ($params['width'] || $params['length'] || $params['height']) {
             $minValue = $this->_getMinDimension($params['dimension_units']);
             if ($params['width'] < $minValue || $params['length'] < $minValue || $params['height'] < $minValue) {
                 $message = Mage::helper('usa')->__('Height, width and length should be equal or greater than %s', $minValue);
                 Mage::throwException($message);
             }
         }
         $weightUnits = $piece['params']['weight_units'];
         $piece['params']['height'] = $this->_getDimension($piece['params']['height'], $weightUnits);
         $piece['params']['length'] = $this->_getDimension($piece['params']['length'], $weightUnits);
         $piece['params']['width'] = $this->_getDimension($piece['params']['width'], $weightUnits);
         $piece['params']['dimension_units'] = $this->_getDimensionUnit();
         $piece['params']['weight'] = $this->_getWeight($piece['params']['weight'], false, $weightUnits);
         $piece['params']['weight_units'] = $this->_getWeightUnit();
         $customsValue += $piece['params']['customs_value'];
         $packageWeight += $piece['params']['weight'];
     }
     $request->setPackages($packages)->setPackageWeight($packageWeight)->setPackageValue($customsValue)->setValueWithDiscount($customsValue)->setPackageCustomsValue($customsValue)->setFreeMethodWeight(0);
 }