Как выбрать способ доставки по умолчанию
У меня настроены различные способы доставки, и я хотел бы выбрать способ доставки по умолчанию, основанный на стране посетителя или что-то в этом роде.
Например, если пользователь из Испании (или испанского языка), то доставка по умолчанию... а если из другой страны, то международная доставка.
Кто-нибудь может мне здесь помочь? Я понятия не имею, с чего начать.
Также я хочу, чтобы он применялся по умолчанию, потому что у нас есть экспресс-заказ PayPal, и если я нажмите на него, не заходя в корзину и не выбирая способ доставки в разделе "Оценка", стоимость доставки не применяется при оплате через PayPal... Это проблема..
Спасибо,
1 answers
Вам необходимо создать свой собственный способ доставки.
Для этого создайте пользовательский класс, расширенный из Mage_Shipping_Model_Carrier_Abstract
, и начните писать код бизнес-логики внутри перегруженного метода collectRates
.
class Arturas_CountryBasedShipping_Model_Shipping_Carrier_ShippingMethod extends Mage_Shipping_Model_Carrier_Abstract {
protected $_code = 'countrybasedshipping';
public function collectRates(Mage_Shipping_Model_Rate_Request $request) {
// skip if not enabled
if( !Mage::getStoreConfig( 'carriers/' . $this->_code . '/active' ) ) {
return false;
}
// Fetching a country based price
$cb_price = $this->getCountryShippingPrice( $request->getDestCountryId() );
$result = Mage::getModel('shipping/rate_result');
$method = Mage::getModel('shipping/rate_result_method');
$method->setCarrier($this->_code);
$method->setMethod($this->_code);
$method->setMethodTitle('Contry Based Shipping');
$method->setCost($cb_price);
$method->setPrice($cb_price);
$result->append($method);
return $result;
}
}
Вы также можете прочитать эту статью.