Example #1
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);
 }