/**
  * Collect rates by address
  *
  * @param Varien_Object $address
  * @param null|bool|array $limitCarrier
  * @return Mage_Shipping_Model_Shipping
  */
 public function collectRatesByAddress(Varien_Object $address, $limitCarrier = null)
 {
     /** @var $request Mage_Shipping_Model_Rate_Request */
     $request = Mage::getModel('shipping/rate_request');
     $request->setAllItems($address->getAllItems());
     $request->setDestCountryId($address->getCountryId());
     $request->setDestRegionId($address->getRegionId());
     $request->setDestPostcode($address->getPostcode());
     $request->setPackageValue($address->getBaseSubtotal());
     $request->setPackageValueWithDiscount($address->getBaseSubtotalWithDiscount());
     $request->setPackageWeight($address->getWeight());
     $request->setFreeMethodWeight($address->getFreeMethodWeight());
     $request->setPackageQty($address->getItemQty());
     $request->setStoreId(Mage::app()->getStore()->getId());
     $request->setWebsiteId(Mage::app()->getStore()->getWebsiteId());
     $request->setBaseCurrency(Mage::app()->getStore()->getBaseCurrency());
     $request->setPackageCurrency(Mage::app()->getStore()->getCurrentCurrency());
     $request->setLimitCarrier($limitCarrier);
     $request->setBaseSubtotalInclTax($address->getBaseSubtotalInclTax() + $address->getBaseExtraTaxAmount());
     return $this->collectRates($request);
 }
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
 /**
  * Prepare and set request in property of current instance
  *
  * @param Varien_Object $request
  * @return Mage_Usa_Model_Shipping_Carrier_Dhl
  */
 public function setRequest(Varien_Object $request)
 {
     $this->_request = $request;
     $this->setStore($request->getStoreId());
     $requestObject = new Varien_Object();
     $requestObject->setIsGenerateLabelReturn($request->getIsGenerateLabelReturn());
     $requestObject->setStoreId($request->getStoreId());
     if ($request->getLimitMethod()) {
         $requestObject->setService($request->getLimitMethod());
     }
     $requestObject = $this->_addParams($requestObject);
     if ($request->getDestPostcode()) {
         $requestObject->setDestPostal($request->getDestPostcode());
     }
     $requestObject->setOrigCountry($this->_getDefaultValue($request->getOrigCountry(), Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID))->setOrigCountryId($this->_getDefaultValue($request->getOrigCountryId(), Mage_Shipping_Model_Shipping::XML_PATH_STORE_COUNTRY_ID));
     $shippingWeight = $request->getPackageWeight();
     $requestObject->setValue(round($request->getPackageValue(), 2))->setValueWithDiscount($request->getPackageValueWithDiscount())->setCustomsValue($request->getPackageCustomsValue())->setDestStreet(Mage::helper('core/string')->substr(str_replace("\n", '', $request->getDestStreet()), 0, 35))->setDestStreetLine2($request->getDestStreetLine2())->setDestCity($request->getDestCity())->setOrigCompanyName($request->getOrigCompanyName())->setOrigCity($request->getOrigCity())->setOrigPhoneNumber($request->getOrigPhoneNumber())->setOrigPersonName($request->getOrigPersonName())->setOrigEmail(Mage::getStoreConfig('trans_email/ident_general/email', $requestObject->getStoreId()))->setOrigCity($request->getOrigCity())->setOrigPostal($request->getOrigPostal())->setOrigStreetLine2($request->getOrigStreetLine2())->setDestPhoneNumber($request->getDestPhoneNumber())->setDestPersonName($request->getDestPersonName())->setDestCompanyName($request->getDestCompanyName());
     $originStreet2 = Mage::getStoreConfig(Mage_Shipping_Model_Shipping::XML_PATH_STORE_ADDRESS2, $requestObject->getStoreId());
     $requestObject->setOrigStreet($request->getOrigStreet() ? $request->getOrigStreet() : $originStreet2);
     if (is_numeric($request->getOrigState())) {
         $requestObject->setOrigState(Mage::getModel('directory/region')->load($request->getOrigState())->getCode());
     } else {
         $requestObject->setOrigState($request->getOrigState());
     }
     if ($request->getDestCountryId()) {
         $destCountry = $request->getDestCountryId();
     } else {
         $destCountry = self::USA_COUNTRY_ID;
     }
     // for DHL, Puerto Rico state for US will assume as Puerto Rico country
     // for Puerto Rico, dhl will ship as international
     if ($destCountry == self::USA_COUNTRY_ID && ($request->getDestPostcode() == '00912' || $request->getDestRegionCode() == self::PUERTORICO_COUNTRY_ID)) {
         $destCountry = self::PUERTORICO_COUNTRY_ID;
     }
     $requestObject->setDestCountryId($destCountry)->setDestState($request->getDestRegionCode())->setWeight($shippingWeight)->setFreeMethodWeight($request->getFreeMethodWeight())->setOrderShipment($request->getOrderShipment());
     if ($request->getPackageId()) {
         $requestObject->setPackageId($request->getPackageId());
     }
     $requestObject->setBaseSubtotalInclTax($request->getBaseSubtotalInclTax());
     $this->_rawRequest = $requestObject;
     return $this;
 }