public function collectRates(Mage_Shipping_Model_Rate_Request $request) { parent::collectRates($request); $result = $this->getResult(); Mage::dispatchEvent('am_restrict_rates', array('request' => $request, 'result' => $result)); 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 collectRates(Mage_Shipping_Model_Rate_Request $request) { if (!Mage::getStoreConfig('carriers/wsaupsfreight/active')) { return parent::collectRates($request); } $restrictRates = Mage::getStoreConfig('carriers/wsaupsfreight/restrict_rates'); $forceFreight = Mage::getStoreConfig('carriers/wsaupsfreight/force_freight'); $hasFreightItems = $this->hasFreightItems($request); $limitCarrier = $request->getLimitCarrier(); if ($restrictRates && Mage::getStoreConfig('carriers/wsaupsfreight/weight_apply') == 'Order' && $request->getPackageWeight() >= Mage::getStoreConfig('carriers/wsaupsfreight/min_weight') || $forceFreight && $hasFreightItems) { if (!$limitCarrier) { $limitCarrier = array(); } else { if (!is_array($limitCarrier)) { $limitCarrier = array($limitCarrier); } } $limitCarrier[] = 'wsaupsfreight'; $request->setLimitCarrier($limitCarrier); } else { if ($request->getPackageWeight() < Mage::getStoreConfig('carriers/wsaupsfreight/min_weight') && !$hasFreightItems) { if (!$limitCarrier) { $carriers = Mage::getStoreConfig('carriers', $request->getStoreId()); foreach ($carriers as $carrierCode => $carrierConfig) { if ($carrierCode == 'wsaupsfreight') { continue; } $limitCarrier[] = $carrierCode; } } else { if (!is_array($limitCarrier)) { $limitCarrier = array($limitCarrier); } foreach ($limitCarrier as $carrierCode => $carrierConfig) { if ($carrierCode == 'wsaupsfreight') { continue; } $limitCarrier[] = $carrierCode; } } $request->setLimitCarrier($limitCarrier); } } return parent::collectRates($request); }
public function collectRates(Mage_Shipping_Model_Rate_Request $request) { parent::collectRates($request); //var_dump($request); $parametros = array('email' => Mage::getStoreConfig('squidfacil/squidfacil_group/squidfacil_email', Mage::app()->getStore()), 'token' => Mage::getStoreConfig('squidfacil/squidfacil_group/squidfacil_token', Mage::app()->getStore()), 'cep' => $request->getDestPostcode()); $items = $request->getData('all_items'); foreach ($items as $item) { $parametros['products'][] = array('sku' => $item->getSku(), 'quantity' => $item->getQty()); } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.squidfacil.com.br/webservice/freight/freight.php"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($parametros)); $response = curl_exec($ch); curl_close($ch); $xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA); if ($xml) { $root = $xml->children(); foreach ($root->carrier as $externalCarrier) { $carrier = new SquidFacil_Shipping_Model_Carrier_Abstract(); $carrier->setCode('squidfacil_' . strtolower($externalCarrier->name)); foreach ($externalCarrier->service as $service) { $method = new Mage_Shipping_Model_Rate_Result_Method(); $method->setCarrier((string) $externalCarrier->name); $method->setCarrierTitle((string) $externalCarrier->name); $method->setMethod(strtolower((string) $service->name)); $method->setMethodTitle((string) $service->name); $method->setPrice((double) $service->value); $carrier->setRate($method); } $this->getResult()->append($carrier->collectRates($request)); } } return $this; }
/** * Retrieve all methods for supplied shipping data * * @param Mage_Shipping_Model_Shipping_Method_Request $data * @return Mage_Shipping_Model_Shipping */ public function collectRates(Mage_Shipping_Model_Rate_Request $request) { parent::collectRates($request); $result = $this->getResult(); Mage::dispatchEvent('am_restrict_rates', array('request' => $request, 'result' => $result)); $oldRates = $result->getAllRates(); $oldPrices = $this->_getPrices($oldRates); $newRates = array(); $validator = Mage::getSingleton('amshiprules/validator'); $validator->init($request); if (!$validator->canApplyFor($oldRates)) { return $this; } $validator->applyRulesTo($oldRates); foreach ($oldRates as $rate) { if ($validator->needNewRequest($rate)) { $newRequest = $validator->getNewRequest($rate); if (count($newRequest->getAllItems())) { $result->reset(); parent::collectRates($newRequest); $rate = $validator->findRate($result->getAllRates(), $rate); } else { $rate->setPrice(0); } } $rate->setPrice($rate->getPrice() + $validator->getFee($rate)); $newRates[] = $rate; } $result->reset(); foreach ($newRates as $rate) { $rate->setOldPrice($oldPrices[$rate->getMethod()]); $rate->setPrice(max(0, $rate->getPrice())); $result->append($rate); } return $this; }
public function _collectRates(Mage_Shipping_Model_Rate_Request $request) { return parent::collectRates($request); }
/** * 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 (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Dropship')) { if (!Mage::registry('dropship_shipmodel')) { $model = Mage::getModel('dropship/shipping_shipping'); Mage::register('dropship_shipmodel', $model); } Mage::registry('dropship_shipmodel')->resetResult(); return Mage::registry('dropship_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Rgshipping')) { if (!Mage::registry('rgshipping_shipmodel')) { $model = Mage::getModel('rgshipping/shipping_shipping'); Mage::register('rgshipping_shipmodel', $model); } Mage::registry('rgshipping_shipmodel')->resetResult(); return Mage::registry('rgshipping_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Freightrate')) { if (!Mage::registry('freightrate_shipmodel')) { $model = Mage::getModel('freightrate/shipping_shipping'); Mage::register('freightrate_shipmodel', $model); } Mage::registry('freightrate_shipmodel')->resetResult(); return Mage::registry('freightrate_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shippingoverride2')) { if (!Mage::registry('override2_shipmodel')) { $model = Mage::getModel('shippingoverride2/shipping_shipping'); Mage::register('override2_shipmodel', $model); } Mage::registry('override2_shipmodel')->resetResult(); return Mage::registry('override2_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Conwayfreight')) { if (!Mage::registry('conway_shipmodel')) { $model = Mage::getModel('conwayfreight/shipping_shipping'); Mage::register('conway_shipmodel', $model); } Mage::registry('conway_shipmodel')->resetResult(); return Mage::registry('conway_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Abffreight')) { if (!Mage::registry('abffreight_shipmodel')) { $model = Mage::getModel('abffreight/shipping_shipping'); Mage::register('abffreight_shipmodel', $model); } Mage::registry('abffreight_shipmodel')->resetResult(); return Mage::registry('abffreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Wsaupsfreight')) { if (!Mage::registry('wsaupfreight_shipmodel')) { $model = Mage::getModel('wsaupsfreight/shipping_shipping'); Mage::register('wsaupfreight_shipmodel', $model); } Mage::registry('wsaupfreight_shipmodel')->resetResult(); return Mage::registry('wsaupfreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Yrcfreight')) { if (!Mage::registry('yrc_shipmodel')) { $model = Mage::getModel('yrcfreight/shipping_shipping'); Mage::register('yrc_shipmodel', $model); } Mage::registry('yrc_shipmodel')->resetResult(); return Mage::registry('yrc_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Rlfreight')) { if (!Mage::registry('rlfreight_shipmodel')) { $model = Mage::getModel('rlfreight/shipping_shipping'); Mage::register('rlfreight_shipmodel', $model); } Mage::registry('rlfreight_shipmodel')->resetResult(); return Mage::registry('rlfreight_shipmodel')->collectRates($request); } return parent::collectRates($request); }
/** * 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) { Mage::dispatchEvent(self::$_eventPrefix . '_collectRates_before', array(self::$_eventObject => $this)); if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Dropship', 'carriers/dropship/active')) { if (!Mage::registry('dropship_shipmodel')) { $model = Mage::getModel('dropship/shipping_shipping'); Mage::register('dropship_shipmodel', $model); } Mage::registry('dropship_shipmodel')->resetResult(); return Mage::registry('dropship_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Rgshipping', 'shipping/rgshipping/active')) { if (!Mage::registry('rgshipping_shipmodel')) { $model = Mage::getModel('rgshipping/shipping_shipping'); Mage::register('rgshipping_shipmodel', $model); } Mage::registry('rgshipping_shipmodel')->resetResult(); return Mage::registry('rgshipping_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shipmanager', 'carriers/shipmanager/active')) { if (!Mage::registry('shipmanager_shipmodel')) { $model = Mage::getModel('shipmanager/shipping_shipping'); Mage::register('shipmanager_shipmodel', $model); } Mage::registry('shipmanager_shipmodel')->resetResult(); return Mage::registry('shipmanager_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shippingoverride2', 'shipping/shippingoverride2/active')) { if (!Mage::registry('override2_shipmodel')) { $model = Mage::getModel('shippingoverride2/shipping_shipping'); Mage::register('override2_shipmodel', $model); } Mage::registry('override2_shipmodel')->resetResult(); return Mage::registry('override2_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Freightrate', 'carriers/freightrate/active')) { if (!Mage::registry('freightrate_shipmodel')) { $model = Mage::getModel('freightrate/shipping_shipping'); Mage::register('freightrate_shipmodel', $model); } Mage::registry('freightrate_shipmodel')->resetResult(); return Mage::registry('freightrate_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Wsafreightcommon', 'shipping/wsafreightcommon/active')) { if (!Mage::registry('wsafreightcommon_shipmodel')) { $model = Mage::getModel('wsafreightcommon/shipping_shipping'); Mage::register('wsafreightcommon_shipmodel', $model); } Mage::registry('wsafreightcommon_shipmodel')->resetResult(); return Mage::registry('wsafreightcommon_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Estesfreight', 'carriers/estesfreight/active')) { if (!Mage::registry('estes_shipmodel')) { $model = Mage::getModel('estesfreight/shipping_shipping'); Mage::register('estes_shipmodel', $model); } Mage::registry('estes_shipmodel')->resetResult(); return Mage::registry('estes_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Conwayfreight', 'carriers/conwayfreight/active')) { if (!Mage::registry('conway_shipmodel')) { $model = Mage::getModel('conwayfreight/shipping_shipping'); Mage::register('conway_shipmodel', $model); } Mage::registry('conway_shipmodel')->resetResult(); return Mage::registry('conway_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Wsafedexfreight', 'carriers/wsafedexfreight/active')) { if (!Mage::registry('wsafedexfreight_shipmodel')) { $model = Mage::getModel('wsafedexfreight/shipping_shipping'); Mage::register('wsafedexfreight_shipmodel', $model); } Mage::registry('wsafedexfreight_shipmodel')->resetResult(); return Mage::registry('wsafedexfreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Usslogistics', 'carriers/usslogistics/active')) { if (!Mage::registry('usslogistics_shipmodel')) { $model = Mage::getModel('usslogistics/shipping_shipping'); Mage::register('usslogistics_shipmodel', $model); } Mage::registry('usslogistics_shipmodel')->resetResult(); return Mage::registry('usslogistics_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Abffreight', 'carriers/abffreight/active')) { if (!Mage::registry('abffreight_shipmodel')) { $model = Mage::getModel('abffreight/shipping_shipping'); Mage::register('abffreight_shipmodel', $model); } Mage::registry('abffreight_shipmodel')->resetResult(); return Mage::registry('abffreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Wsaupsfreight', 'carriers/wsaupsfreight/active')) { if (!Mage::registry('wsaupfreight_shipmodel')) { $model = Mage::getModel('wsaupsfreight/shipping_shipping'); Mage::register('wsaupfreight_shipmodel', $model); } Mage::registry('wsaupfreight_shipmodel')->resetResult(); return Mage::registry('wsaupfreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Yrcfreight', 'carriers/yrcfreight/active')) { if (!Mage::registry('yrc_shipmodel')) { $model = Mage::getModel('yrcfreight/shipping_shipping'); Mage::register('yrc_shipmodel', $model); } Mage::registry('yrc_shipmodel')->resetResult(); return Mage::registry('yrc_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Rlfreight', 'carriers/rlfreight/active')) { if (!Mage::registry('rlfreight_shipmodel')) { $model = Mage::getModel('rlfreight/shipping_shipping'); Mage::register('rlfreight_shipmodel', $model); } Mage::registry('rlfreight_shipmodel')->resetResult(); return Mage::registry('rlfreight_shipmodel')->collectRates($request); } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Handlingproduct', 'shipping/handlingproduct/active')) { if (!Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Shipusa', 'shipping/shipusa/active')) { if (Mage::registry('handlingproduct_shipmodel')) { Mage::registry('handlingproduct_shipmodel')->resetResult(); } } } // This method of handling rewrites is now deprecated in favour of using event logic for handling matrix // Only remains in case Handling Matrix code has not been updated if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Handlingmatrix', 'shipping/handlingmatrix/active') && Mage::helper('wsacommon')->getNumericExtensionVersion('handlingmatrix') < 100) { if (Mage::registry('handlingmatrix_shipmodel')) { Mage::registry('handlingmatrix_shipmodel')->resetResult(); } } if (Mage::helper('wsacommon')->isModuleEnabled('Webshopapps_Insurance', 'shipping/insurance/active')) { if (Mage::registry('insurance_shipmodel')) { Mage::registry('insurance_shipmodel')->resetResult(); } } parent::collectRates($request); Mage::dispatchEvent(self::$_eventPrefix . '_collectRates_after', array(self::$_eventObject => $this, 'request' => $request)); return $this; }