Post by eddy-r3 » Tue Dec 12, 2017 6:30 pm

Hey guys, trying to setup a percentage based shipping method, based around subTotal values.

I found a thread with the following code :

Code: Select all

$sub_total = $this->cart->getSubtotal();
		if ( $sub_total <= 70 ) {
			$with_percent = 10;
		} else {
			$with_percent = $sub_total * .15;
		}

Code: Select all

'cost'         => $with_percent,
Which ive added to catalog\model\extension\shipping\flat.php but to no avail, its not working....

Any idea where i've gone wrong? I have left my flat rate values in the admin area as default (8.00) and its still showing flat rate as "£8.00" regardless of the subTotal in the cart....

Thanks in advance!

PS > Here is my flat.php file :

Code: Select all

<?php
class ModelExtensionShippingFlat extends Model {
	function getQuote($address) {
		$this->load->language('extension/shipping/flat');

		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('flat_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('flat_geo_zone_id')) {
			$status = true;
		} elseif ($query->num_rows) {
			$status = true;
		} else {
			$status = false;
		}
		
		$sub_total = $this->cart->getSubtotal();
		if ( $sub_total <= 70 ) {
			$with_percent = 10;
		} else {
			$with_percent = $sub_total * .15;
		}

		$method_data = array();

		if ($status) {
			$quote_data = array();

			$quote_data['flat'] = array(
				'code'         => 'flat.flat',
				'title'        => $this->language->get('text_description'),
				'cost'         => $with_percent,
				'tax_class_id' => $this->config->get('flat_tax_class_id'),
				'text'         => $this->currency->format($this->tax->calculate($this->config->get('flat_cost'), $this->config->get('flat_tax_class_id'), $this->config->get('config_tax')), $this->session->data['currency'])
			);

			$method_data = array(
				'code'       => 'flat',
				'title'      => $this->language->get('text_title'),
				'quote'      => $quote_data,
				'sort_order' => $this->config->get('flat_sort_order'),
				'error'      => false
			);
		}

		return $method_data;
	}
}

Active Member

Posts

Joined
Tue Jan 31, 2012 4:46 am

Post by straightlight » Tue Dec 12, 2017 9:48 pm

No OC version posted.
Which ive added to catalog\model\extension\shipping\flat.php but to no avail, its not working....
No detailed explanation provided.

The most generated errors being found on Opencart forum originates from contributed programming. The increased counters are caused by posted redundancies of the same solutions that were already provided prior.

F. Rules:

- viewtopic.php?f=176&t=200480
- viewtopic.php?f=176&t=200804


Regards,
Straightlight


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON

Post by eddy-r3 » Tue Dec 12, 2017 10:21 pm

Sorry! :)

Version 2.3.0.2

Active Member

Posts

Joined
Tue Jan 31, 2012 4:46 am

Post by eddy-r3 » Tue Dec 12, 2017 10:25 pm

Ok so, after some more testing, it does appear to work...

BUT, only when i do the following :

- Add item to cart
- Estimate shipping (The pop up shows the cost as "Flat Rate £8.00)
- Apply shipping
- Shipping cost shows as either £10.00 or 15% depending on the subTotal, which is what i want....

How do i get this shipping amount to show on the pop up and checkout?

Many thanks!

Image! :

Image
Last edited by eddy-r3 on Tue Dec 12, 2017 10:27 pm, edited 1 time in total.

Active Member

Posts

Joined
Tue Jan 31, 2012 4:46 am

Post by straightlight » Tue Dec 12, 2017 10:26 pm

How do i get this shipping amount to show on the pop up and checkout?
What popup are you referring to? Please provide my details and highlighted screenshots.

The most generated errors being found on Opencart forum originates from contributed programming. The increased counters are caused by posted redundancies of the same solutions that were already provided prior.

F. Rules:

- viewtopic.php?f=176&t=200480
- viewtopic.php?f=176&t=200804


Regards,
Straightlight


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON

Post by eddy-r3 » Tue Dec 12, 2017 10:28 pm

Screenshot above! :)

Active Member

Posts

Joined
Tue Jan 31, 2012 4:46 am

Post by straightlight » Tue Dec 12, 2017 10:32 pm

Your 'text' array key line would need to be edited in your catalog/model/extension/shipping/flat.php file.

The most generated errors being found on Opencart forum originates from contributed programming. The increased counters are caused by posted redundancies of the same solutions that were already provided prior.

F. Rules:

- viewtopic.php?f=176&t=200480
- viewtopic.php?f=176&t=200804


Regards,
Straightlight


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON

Post by straightlight » Tue Dec 12, 2017 10:38 pm

In other words, this would be the portion you'd be looking for:

Code: Select all

$quote_data['flat'] = array(
				'code'         => 'flat.flat',
				'title'        => $this->language->get('text_description'),
				'cost'         => $this->config->get('shipping_flat_cost'),
				'tax_class_id' => $this->config->get('shipping_flat_tax_class_id'),
				'text'         => $this->currency->format($this->tax->calculate($this->config->get('shipping_flat_cost'), $this->config->get('shipping_flat_tax_class_id'), $this->config->get('config_tax')), $this->session->data['currency'])
			);

			$method_data = array(
				'code'       => 'flat',
				'title'      => $this->language->get('text_title'),
				'quote'      => $quote_data,
				'sort_order' => $this->config->get('shipping_flat_sort_order'),
				'error'      => false
			);
			

The most generated errors being found on Opencart forum originates from contributed programming. The increased counters are caused by posted redundancies of the same solutions that were already provided prior.

F. Rules:

- viewtopic.php?f=176&t=200480
- viewtopic.php?f=176&t=200804


Regards,
Straightlight


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON

Post by eddy-r3 » Wed Dec 13, 2017 1:11 am

Thanks for the reply, not entirely sure of what i need to edit though :(

Anymore tips would be awesome!

Active Member

Posts

Joined
Tue Jan 31, 2012 4:46 am

Post by straightlight » Wed Dec 13, 2017 1:15 am

These two lines:

Code: Select all

'cost'         => $this->config->get('shipping_flat_cost'),
				'text'         => $this->currency->format($this->tax->calculate($this->config->get('shipping_flat_cost'), $this->config->get('shipping_flat_tax_class_id'), $this->config->get('config_tax')), $this->session->data['currency'])


The most generated errors being found on Opencart forum originates from contributed programming. The increased counters are caused by posted redundancies of the same solutions that were already provided prior.

F. Rules:

- viewtopic.php?f=176&t=200480
- viewtopic.php?f=176&t=200804


Regards,
Straightlight


Legendary Member

Posts

Joined
Mon Nov 14, 2011 11:38 pm
Location - Canada, ON
Who is online

Users browsing this forum: No registered users and 4 guests