Jump to content

Konfigurasi berat pada shipping error


Recommended Posts

Mohon bantuan untuk solusi nya dari teman-teman, para ahli presta shop dan para senior presta shop.

Saat ini saya sedang mencoba membuat toko online menggunakan prestahop 1.6

 

Ada sedikit permasalahan pada konfigurasi shipping.

Saya sudah input semua Zona, State, Kurir. Dan juga berat setiap product.

 

Misal untuk tujuan Bekasi biaya JNE Rp 8000,- per 1 kg.

Tetapi saat saya test dengan mencoba proses pembelian, Pembelian 3 kg dgn tujuan Bekasi masih tetap biaya Rp 8000,-, sharusnya Rp 8000,- x 3 = Rp 24.000,-

 

Mohon bantuan dari rekan-rekan ... Terimakasih banyak sebelumnya..

Link to comment
Share on other sites

kelemahan pakai manual shipping ya itu dia, ga bisa menggunakan kelipatan. jadi harus dibuat sendiri kelipatannya, misal 0-1kg 8000 / 1,1-2kg 16000 / 2,1-3kg 24000.... dan seterusnya.

 

kenapa prestashop ga pakai sistem kelipatan? analisa sederhana ane karna ekspedisi di eropa ga serumit ekspedisi di indonesia dalam hal ongkos kirim. disini beda kecamatan bisa beda harga, di eropa mau jauh deket selama satu negara bisa jadi masih sama harganya. CMIIW

 

kalau mau yang otomatis bisa beli module JNE nya para master disini, ada beberapa module sejenis, tapi kebetulan ane dari dulu pakai ini ~> www.prestanesia.com

Link to comment
Share on other sites

Om Jarkem,

sebelumnya terimkasih banyak atas informasinya..Nais Inpo..

 

Setelah baca soni (sono sini) ditambah bongkar-bongkar dikit.

kemarin saya temukan caranya.

 

Masuk ke folder Classes, buka file Carrier.php.

 

Ubah code  return self::$price_by_weight[$cache_key];

menjadi return self::$price_by_weight[$cache_key]*$total_weight;

pada function berikut ini :

 

public function getDeliveryPriceByWeight($total_weight, $id_zone)
    {
        $cache_key = $this->id.'_'.$total_weight.'_'.$id_zone;
        if (!isset(self::$price_by_weight[$cache_key]))
        {
            $sql = 'SELECT d.`price`
                    FROM `'._DB_PREFIX_.'delivery` d
                    LEFT JOIN `'._DB_PREFIX_.'range_weight` w ON (d.`id_range_weight` = w.`id_range_weight`)
                    WHERE d.`id_zone` = '.(int)$id_zone.'
                        AND '.(float)$total_weight.' >= w.`delimiter1`
                        AND '.(float)$total_weight.' < w.`delimiter2`
                        AND d.`id_carrier` = '.(int)$this->id.'
                        '.Carrier::sqlDeliveryRangeShop('range_weight').'
                    ORDER BY w.`delimiter1` ASC';
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql);
            if (!isset($result['price']))
                self::$price_by_weight[$cache_key] = $this->getMaxDeliveryPriceByWeight($id_zone);
            else
                self::$price_by_weight[$cache_key] = $result['price'];
        }
        return self::$price_by_weight[$cache_key];

        // ubah ke return self::$price_by_weight[$cache_key]*$total_weight;
    }
 

Bener sekali yang di bilang Om Jarkem. Dalam database nya. Weight yang dipakai berlaku dalam satuan Zone.

Makanya dipakai Zone ID. Makanya didalam source codenya ada conditional perbandingan harga. apabila nilai beda

makanya dimasukkan nilai max nya (getMaxDeliveryPriceByWeight($id_zone)). Ini tandanya sudah beda Zone.

 

Setelah cek Soni, total weight ini sebenarnya total berat barang yang diorder. Jadi langsung saja aku kalikan dengan Harga barang.

 

Semoga bisa membantu teman-teman yang masih mengalami permasalahan ini..

dan bila ternyata solusi ini masih memiliki masalah , mohon info nya yah. meskipun so par belum ada permasalahan dari sekian kali test........tengyu..tengyu..tengyu

  • Like 1
Link to comment
Share on other sites

Mohon maaf sebelumnya.

Ternyata source code masih kurang.

 

Sebelumnya : return self::$price_by_weight[$cache_key]*$total_weight;

Dirubah menjadi : return self::$price_by_weight[$cache_key]*ceil($total_weight);

 

KESALAHAN :Misal onkir jabotedetabek Rp 8000,- kalo berat barang hanya 0.4 kg, maka biaya shiping menjadi Rp 2000.

SOUSI : perlu pembulatan keatas untuk berat barang, misal 0.4kg dibulatkan ke 1 kg. Baru dikalikan dengan biaya kirim.

KENAPA : karena dalam JNE sendiri untuk Ongkir, berat dibulatkan keatas baru kali biaya. seperti berat 0,4kg, oleh JNE dianggap 1kg, maka biaya tetap Rp.8000,-

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...