/** * 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); }