/** * Returns tax rates for request and when US only uses five digit zip code lookups * * @param Varien_Object $request * @return array */ protected function _getRates($request) { // Grab each current value $countryId = $request->getCountryId(); $currentPostcode = $request->getPostcode(); if ($countryId == 'US') { // Trim whitespace $newPostcode = preg_replace('/\\s+/', '', $request->getPostcode()); // Snatch only the first five characters $newPostcode = substr($newPostcode, 0, 5); // Replace the request's zip code with one that now has 5 digits $request->setPostcode($newPostcode); // Find rates by the new 5-digit zip $rates = parent::_getRates($request); // Reset the request's postcode to what it was $request->setPostcode($currentPostcode); } else { // Non-US should just work normally $rates = parent::_getRates($request); } return $rates; }
/** * Copy address * * @param Varien_Object $srcAddress * @param Varien_Object $dstAddress * @return Innoexts_Warehouse_Helper_Data */ public function copy($srcAddress, $dstAddress) { $dstAddress->setCountryId($srcAddress->getCountryId()); $dstAddress->setRegionId($srcAddress->getRegionId()); $dstAddress->setRegion($srcAddress->getRegion()); $dstAddress->setCity($srcAddress->getCity()); $dstAddress->setPostcode($srcAddress->getPostcode()); $dstAddress->setStreet($srcAddress->getStreet()); return $this; }