как добавить параметры способа доставки
Я написал модуль с помощью этой ссылки , и я не знаю, что делать, если я хочу показать варианты способа доставки, я имею в виду, что у меня есть одна доставка (одно название перевозчика), но разные названия методов
Связано ли это с созданием другой модели? если да, то должен ли я изменить свой config.xml ?или другой файл? Я не мог решить свою проблему, я много искал в Интернете
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setMethod($this->_code);
$method->setCarrierTitle($this->getConfigData('title'));
$method->setMethodTitle($this->getConfigData('name'));
$method->setPrice($price);
$method->setCost($price);
$result->append($method);
1 answers
Взгляните на Mage_Shipping_Model_Rate_Request. Если у вас есть несколько методов, в методе collectRates() класса, который расширяет Mage_Shipping_Model_Carrier_Abstract, вы можете создать массив с подробными сведениями о методе. Затем вы можете выполнить цикл по массиву:
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
{
if (!Mage::getStoreConfig('carriers/'.$carrierCode.'/enabled')) {
return false;
}
$methods = array('method_one'=>array('price'=>some_val,'title'=>some_title,'cost'=>some_cost)...add more methods);
$finalMethods = Mage::getModel('shipping/rate_result');
foreach($methods as $item){
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($carrierCode);
$method->setMethod($item['code']);
$method->setCarrierTitle($carrierTitle);
$method->setMethodTitle($item['title']);
$method->setPrice($item['price']);
$method->setCost($item['cost']);
$finalMethods->append($method);
}
return $finalMethods;
}
Также взгляните на эту статью: http://coding.smashingmagazine.com/2014/01/15/create-custom-shipping-methods-magento / (есть раздел под названием "Использование нескольких способов доставки").