Post by thinkingforward » Fri Aug 22, 2014 5:02 am

Hey all.

How would I change the free shipping model to be based on total weight rather than total price?

I know you can do it in weight based shipping but I'm using that for something else. Bit complicated to explain.

Ideally, after setting the value to "1000" in Free shipping Module, I want it to check if the total weight is "1000" not the total price.

Here is the codel from catalog/shipping/free.php

Code: Select all

<?php
class ModelShippingFree extends Model {
	function getQuote($address) {
		$this->language->load('shipping/free');
		
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('free_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");
	
		if (!$this->config->get('free_geo_zone_id')) {
			$status = true;
		} elseif ($query->num_rows) {
			$status = true;
		} else {
			$status = false;
		}

		if ($this->cart->getSubTotal() < $this->config->get('free_total')) {
			$status = false;
		}
		
		$method_data = array();
	
		if ($status) {
			$quote_data = array();
			
      		$quote_data['free'] = array(
        		'code'         => 'free.free',
        		'title'        => $this->language->get('text_description'),
        		'cost'         => 0.00,
        		'tax_class_id' => 0,
				'text'         => $this->currency->format(0.00)
      		);

      		$method_data = array(
        		'code'       => 'free',
        		'title'      => $this->language->get('text_title'),
        		'quote'      => $quote_data,
				'sort_order' => $this->config->get('free_sort_order'),
        		'error'      => false
      		);
		}
	
		return $method_data;
	}
}
?>
Thanks in advance!

Active Member

Posts

Joined
Wed Nov 25, 2009 2:55 am


Post by Johnathan » Sat Aug 23, 2014 12:38 am

Use the built-in Weight Based Shipping -- set the rate to 1000:0.00, and you have weight-based free shipping. :)

Image
Image Image Image Image


User avatar
Global Moderator

Posts

Joined
Fri Dec 18, 2009 3:08 am


Post by thinkingforward » Mon Aug 25, 2014 9:05 pm

Thanks for the reply, I solved it. I couldn't use weight based shipping as that was set for something else. I was using a mod "if free shipping available then hide others" hence why I couldn't use it :)

Active Member

Posts

Joined
Wed Nov 25, 2009 2:55 am

Who is online

Users browsing this forum: No registered users and 27 guests