Как выбрать способ доставки по умолчанию


У меня настроены различные способы доставки, и я хотел бы выбрать способ доставки по умолчанию, основанный на стране посетителя или что-то в этом роде.

Например, если пользователь из Испании (или испанского языка), то доставка по умолчанию... а если из другой страны, то международная доставка.

Кто-нибудь может мне здесь помочь? Я понятия не имею, с чего начать.

Также я хочу, чтобы он применялся по умолчанию, потому что у нас есть экспресс-заказ PayPal, и если я нажмите на него, не заходя в корзину и не выбирая способ доставки в разделе "Оценка", стоимость доставки не применяется при оплате через PayPal... Это проблема..

Спасибо,

Author: Artur Rain, 2014-11-20

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;
    }
}

Вы также можете прочитать эту статью.

 1
Author: Serhii Matrunchyk, 2014-11-20 15:37:21