Example #1
0
 public function collectRatesByAddress(Varien_Object $address, $limitCarrier = null)
 {
     $request = Mage::getModel('shipping/rate_request');
     $request->setDestCountryId($address->getCountryId());
     $request->setDestRegionId($address->getRegionId());
     $request->setDestPostcode($address->getPostcode());
     $request->setPackageValue($address->getSubtotal());
     $request->setPackageWeight($address->getWeight());
     $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);
     return $this->collectRates($request);
 }
 /**
  * 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);
 }