Создать новый модуль.Создайте новый класс модели, унаследованный от Mage_Shipping_Model_Carrier_Abstract
, fx
class MyCompany_MyModule_Model_Flatrate extends Mage_Shipping_Model_Carrier_Abstract
{
protected $_code = 'mycompany_flatrate'; // some unique shipping code
public function collectRates(Mage_Shipping_Model_Rate_Request $data)
{
if(!$this->isActive())
return false;
/* @var $method Mage_Shipping_Model_Rate_Result_Method */
/* @var $result Mage_Shipping_Model_Rate_Result */
$method = Mage::getModel('shipping/rate_result_method');
$result = Mage::getModel('shipping/rate_result');
$method->setCarrier($this->_code);
$method->setCarrierTitle($this->getConfigData('name'));
$method->setMethod($this->_code);
$method->setMethodTitle($this->getConfigData('name'));
if($data->getDestCountryId() == '...')
$method->setPrice(...);
else if (...)
...
$result->append($method);
return $result;
}
}
и добавьте следующее в ваш config.xml
<default>
<carriers>
<mycompany_flatrate>
<active>1</active>
<model>mycompany_mymodule/flatrate</model>
<name>Flatrate</name>
<title>Flatrate</title>
<sallowspecific>0</sallowspecific>
</mycompany_flatrate>
</carriers>
</default>
под тегом <config>
.