Как создать единые тарифные зоны доставки в Magento? - PullRequest
0 голосов
/ 15 февраля 2011

У меня есть клиент, у которого есть три зоны доставки: - Великобритания - Европа - Мир

Стоимость доставки для каждого продукта будет рассчитываться автоматически по единой ставке, исходя из того, что клиент попадает в одну из трехзоны.Это возможно в Magento?

Rich

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Вы можете попробовать расширение Webshopapps Matrixrate.У него есть много способов настроить доставку.

0 голосов
/ 15 февраля 2011

Создать новый модуль.Создайте новый класс модели, унаследованный от 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>.

...