Ejemplo n.º 1
0
 /**
  * Retrieve all methods for supplied shipping data
  *
  * @todo make it ordered
  * @param Mage_Shipping_Model_Shipping_Method_Request $data
  * @return Mage_Shipping_Model_Shipping
  */
 public function collectRates(Mage_Shipping_Model_Rate_Request $request)
 {
     if (!$request->getOrig()) {
         $request->setCountryId(Mage::getStoreConfig('shipping/origin/country_id', $request->getStore()))->setRegionId(Mage::getStoreConfig('shipping/origin/region_id', $request->getStore()))->setCity(Mage::getStoreConfig('shipping/origin/city', $request->getStore()))->setPostcode(Mage::getStoreConfig('shipping/origin/postcode', $request->getStore()));
     }
     $limitCarrier = $request->getLimitCarrier();
     if (!$limitCarrier) {
         $carriers = Mage::getStoreConfig('carriers');
         foreach ($carriers as $carrierCode => $carrierConfig) {
             $this->collectCarrierRates($carrierCode, $request);
         }
     } else {
         if (!is_array($limitCarrier)) {
             $limitCarrier = array($limitCarrier);
         }
         foreach ($limitCarrier as $carrierCode) {
             $carrierConfig = Mage::getStoreConfig('carriers/' . $carrierCode);
             if (!$carrierConfig) {
                 continue;
             }
             $this->collectCarrierRates($carrierCode, $request);
         }
     }
     return $this;
 }
 /**
  * Retrieve all methods for supplied shipping data
  *
  * @todo make it ordered
  * @param Mage_Shipping_Model_Shipping_Method_Request $data
  * @return Mage_Shipping_Model_Shipping
  */
 public function collectRatesWithAddress(Mage_Shipping_Model_Rate_Request $request, $address)
 {
     $storeId = $request->getStoreId();
     if (!$request->getOrig()) {
         $request->setCountryId(Mage::getStoreConfig(Mage_Shipping_Model_Config::XML_PATH_ORIGIN_COUNTRY_ID, $storeId))->setRegionId(Mage::getStoreConfig(Mage_Shipping_Model_Config::XML_PATH_ORIGIN_REGION_ID, $storeId))->setCity(Mage::getStoreConfig(Mage_Shipping_Model_Config::XML_PATH_ORIGIN_CITY, $storeId))->setPostcode(Mage::getStoreConfig(Mage_Shipping_Model_Config::XML_PATH_ORIGIN_POSTCODE, $storeId));
     }
     $limitCarrier = $request->getLimitCarrier();
     if (!$limitCarrier) {
         $carriers = Mage::getStoreConfig('carriers', $storeId);
         foreach ($carriers as $carrierCode => $carrierConfig) {
             $this->collectCarrierRatesWithAddress($carrierCode, $request, $address);
         }
     } else {
         if (!is_array($limitCarrier)) {
             $limitCarrier = array($limitCarrier);
         }
         foreach ($limitCarrier as $carrierCode) {
             $carrierConfig = Mage::getStoreConfig('carriers/' . $carrierCode, $storeId);
             if (!$carrierConfig) {
                 continue;
             }
             $this->collectCarrierRatesWithAddress($carrierCode, $request, $address);
         }
     }
     return $this;
 }
 public function collectRates2(Mage_Shipping_Model_Rate_Request $request)
 {
     $storeId = $request->getStoreId();
     if (!$request->getOrig()) {
         $request->setCountryId(Mage::getStoreConfig(self::XML_PATH_STORE_COUNTRY_ID, $request->getStore()))->setRegionId(Mage::getStoreConfig(self::XML_PATH_STORE_REGION_ID, $request->getStore()))->setCity(Mage::getStoreConfig(self::XML_PATH_STORE_CITY, $request->getStore()))->setPostcode(Mage::getStoreConfig(self::XML_PATH_STORE_ZIP, $request->getStore()));
     }
     $limitCarrier = $request->getLimitCarrier();
     $carriers = Mage::getStoreConfig('carriers', $storeId);
     foreach ($carriers as $carrierCode => $carrierConfig) {
         if (!in_array($carrierCode, $limitCarrier)) {
             $this->collectCarrierRates($carrierCode, $request);
         }
         //echo $carrierCode;
     }
     return $this;
 }