Modul Shipping Ongkir Indonesia untuk Magento 2

July 10, 2019 by Badwi

Selama mempelajari1 Magento, saya sudah membuat modul/extension ongkir (ongkos kirim) Indonesia untuk Magento 2. Modul ini mengambil data dari RajaOngkir yang menyediakan API cek ongkir dan tracking jasa kurir dan ekspedisi yang ada di Indonesia, termasuk JNE, J&T, Tiki, Pos, SiCepat, dll. Dengan modul ongkir ini, website Magento kita dapat menghitung ongkir barang berdasarkan kurir yang dipilih.

Modul ini mirip dengan kode awal project yang saya kerjakan di tempat kerja saya –dulu. Kodenya tidak bisa saya share secara gratis publik. Tapi cuplikan kodenya sudah saya share di Github2.

Cuplikan:

/**
     * @param RateRequest $request
     * @return \Magento\Shipping\Model\Rate\Result|bool
     */
    public function collectRates(RateRequest $request)
    {
        if (!$this->getConfigFlag('active')) {
            return false;
        }
        /** @var \Magento\Shipping\Model\Rate\Result $result */
        $result = $this->_rateResultFactory->create();
        $method = $this->generateMethods('REG', 10000, 'JNE');
        $result->append($method);
        return $result;
    }
    /**
     * @return array
     */
    public function getAllowedMethods()
    {
        return [$this->_code => $this->getConfigData('name')];
    }
    /**
     * @return \Magento\Quote\Model\Quote\Address\RateResult\Method
     */
    public function generateMethods($service, $price, $courier)
    {
        $method = $this->_rateMethodFactory->create();
        $method->setCarrier($this->_code);
        $method->setCarrierTitle($courier);
        $method->setMethod($this->_code);
        $method->setMethodTitle($service);
        $method->setPrice($price);
        $method->setCost($price);
        return $method;
    }
}

Kode modul tersebut merupakan hasil generate dari sini.

Contoh live di website:

screenshot ongkir

Untuk mendapatkan kode yang lebih fungsional dan disesuaikan dengan project e-commerce yang Anda bikin, silakan hubungi saya. (link akun medsos ada di atas blog) :)

© 2017 | Hucore theme & Hugo